Q&A

  • 바탕화면 바꾸기
바탕화면이 바뀌는 걸 해보려고 하는데 처음에는 바뀌다가 그 다음부터는 바뀌질 않습니다.

혹시 아시는 분들 부탁합니다.

수고하세요.

unit Unit1;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls,registry;



type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.DFM}

procedure ChangeWallPaper(FileName:String; Tile:Boolean);

var

Reg : TRegIniFile;

begin

Reg:= TRegIniFile.Create('Control Panel');

Reg.WriteString('Desktop', 'Wallpaper',

'c:Windows11.bmp');

if Tile then Reg.WriteString('Desktop', 'TileWallpaper',

'1')

Else Reg.WriteString('Desktop', 'TileWallpaper', '0');

Reg.Free;

SystemParametersInfo(SPI_SETDESKWALLPAPER,0, Nil,

SPIF_SENDWININICHANGE);

end;





procedure SetWallPaper(FileName:String);

begin

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,

PChar(FileName), 0);

end;



procedure TForm1.Button1Click(Sender: TObject);

begin

SetWallPaper('c:windows11.bmp');

end;



1  COMMENTS
  • Profile
    조규춘 2000.07.06 02:59
    조헌철 wrote:

    > 바탕화면이 바뀌는 걸 해보려고 하는데 처음에는 바뀌다가 그 다음부터는 바뀌질 않습니다.



    조헌철님 반갑습니다.

    cafe.daum.net 초보델파이에 가입하셨더군요! 하여간 반갑습니다.



    이 방법으로 해보셔요.. 이게 잘 되더군요.

    uses

    Registry, WinProcs, SysUtils;



    const

    WPS_Tile = 0; //바둑식 배열

    WPS_Center = 1; //가운데

    WPS_SizeToFit = 2; //늘리기

    WPS_XY = 3; //x, y위치에 그리기



    procedure SetWallpaperExt(sWallpaperBMPPath : string; nStyle, nX, nY :

    integer );

    var

    reg : TRegIniFile;

    s1 : string;

    X, Y : integer;

    begin

    reg := TRegIniFile.Create('Control PanelDesktop' );



    with reg do

    begin

    s1 := '0';

    X := 0;

    Y := 0;



    case nStyle of

    WPS_Tile : s1 := '1';

    WPS_Center: nStyle := WPS_Tile;

    WPS_XY :

    begin

    nStyle := WPS_Tile;

    X := nX;

    Y := nY;

    end;

    end;



    WriteString( '', 'Wallpaper', sWallpaperBMPPath );

    WriteString( '', 'TileWallpaper',s1 );

    WriteString( '', 'WallpaperStyle', IntToStr( nStyle ) );

    WriteString( '', 'WallpaperOriginX', IntToStr( X ) );

    WriteString( '', 'WallpaperOriginY', IntToStr( Y ) );

    end;

    reg.Free;



    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Nil, SPIF_SENDWININICHANGE );

    end;







    사용예)

    //사이즈 늘려서 그리기

    SetWallpaperExt('c:winntwinnt.bmp', WPS_SizeToFit, 0, 0 );

    //10, 200에 그리기

    SetWallpaperExt('c:winntwinnt.bmp',WPS_XY, 10, 200 );





    그럼 행복하셔요.. 규춘올림.















    > 혹시 아시는 분들 부탁합니다.

    > 수고하세요.

    > unit Unit1;

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > StdCtrls,registry;

    >

    > type

    > TForm1 = class(TForm)

    > Button1: TButton;

    > procedure Button1Click(Sender: TObject);

    > private

    > { Private declarations }

    > public

    > { Public declarations }

    > end;

    >

    > var

    > Form1: TForm1;

    >

    > implementation

    >

    > {$R *.DFM}

    > procedure ChangeWallPaper(FileName:String; Tile:Boolean);

    > var

    > Reg : TRegIniFile;

    > begin

    > Reg:= TRegIniFile.Create('Control Panel');

    > Reg.WriteString('Desktop', 'Wallpaper',

    > 'c:Windows11.bmp');

    > if Tile then Reg.WriteString('Desktop', 'TileWallpaper',

    > '1')

    > Else Reg.WriteString('Desktop', 'TileWallpaper', '0');

    > Reg.Free;

    > SystemParametersInfo(SPI_SETDESKWALLPAPER,0, Nil,

    > SPIF_SENDWININICHANGE);

    > end;

    >

    >

    > procedure SetWallPaper(FileName:String);

    > begin

    > SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,

    > PChar(FileName), 0);

    > end;

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > SetWallPaper('c:windows11.bmp');

    > end;

    >

    • 골든락
    • 2000.07.06 06:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.07.06 08:57
      안녕하세요. 최용일입니다. sample.exe /install - sample.exe 서비스 프로그램 설치하기 sample.exe /...
    • 이성훈
    • 2000.07.06 06:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2000.07.06 08:10
      이성훈 wrote: > 제가 오라클은 처음이거든요... > 오라클 8.0.5을 델5.0에 붙이려고 하는데 잘 안되네요...
    • 조규춘
      2000.07.06 08:52
    • 델파이초짜.
      2000.07.06 09:08
    • 조규춘
      2000.07.06 09:27
    • 델파이초짜.
      2000.07.06 10:35
    • 조규춘
      2000.07.06 14:22
    • 델파이초짜.
      2000.07.06 23:14
    • 최용일
      2000.07.06 09:34
    • • • •
    • 궁금
    • 2000.07.06 06:04
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김병훈
    • 2000.07.06 05:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • k
      2000.07.06 05:26
      김병훈 wrote: > 델파이에 있는 코드 자동완성기능이 있잖아요.. > > 알파벳 계속 해서 치면 근접한 문...
    • 김병훈
      2000.07.06 06:41
      k wrote: > 김병훈 wrote: > > 델파이에 있는 코드 자동완성기능이 있잖아요.. > > > > 알파벳 계속 ...
    • 최용일
      2000.07.06 09:21
      안녕하세요. 최용일입니다. 전체행을 선택하실려면 RowSelect속성을 True로 해주시면 되구, 삭제는 아래...
    • 김병훈
    • 2000.07.06 04:14
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 유레카
      2000.07.06 04:51
      List등의 itemIndex는 0부터 시작하고 count는 1부터 되기 때문이죠. 김병훈 wrote: > 알고싶어서요......
    • 김병훈
      2000.07.06 05:04
      유레카 wrote: > List등의 itemIndex는 0부터 시작하고 count는 1부터 되기 때문이죠. > > 김병훈 wrot...
    • nilriri
      2000.07.06 03:27
      procedure TForm1.FormCreate(Sender: TObject); begin PANEL1.OnClick := IMAGE1.OnClick; P...
    • 쩌비
    • 2000.07.06 02:40
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.07.06 09:26
      안녕하세요. 최용일입니다. 기존의 TAnimated컴포넌트와 새로 설치한 TAnimated컴포넌트가 이름만 같을...
    • 호야
    • 2000.07.06 02:30
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 무명
      2000.07.06 02:44
      호야 wrote: > SaveDialog에서 확인이나 취소 버튼을 눌렀을 때 > 어떤버튼이 눌려졌는지를 알려면 어떻...
    • 호야
      2000.07.06 03:13
      무명 wrote: > 호야 wrote: > > SaveDialog에서 확인이나 취소 버튼을 눌렀을 때 > > 어떤버튼이 눌려...
    • azure
    • 2000.07.06 02:13
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이상우
      2000.07.06 05:43
      azure wrote: > richedit 에서 커서가 위치한 곳의 폰트 속성과 글자 크기를 > 알아내서 edit 박스에 나...
    • azure
      2000.07.06 20:38
      이상우 wrote: > > RichEdit의 KeyPressDown 에 > > Edit1.Text := RichEdit1.SelAttributes.Name...
    • 이성훈
    • 2000.07.06 02:10
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 유상민
      2000.07.07 02:10
      이성훈 wrote: > 오라클 8.0을 델5.0에 붙이려고 하는데 잘 안되네요... > 책에 있는대로 BDE를 맞추어 ...
    • 이경배
      2000.07.06 03:05
      제 생각에 클라이언트에 오라클 클라이언트가 설치되지 않아 필요한 DLL들이 없어서 그런것 같습니다. 설...
    • 이성훈
      2000.07.06 03:23
      이경배 wrote: > 제 생각에 클라이언트에 오라클 클라이언트가 > 설치되지 않아 필요한 DLL들이 없어서 ...
    • 이경배
      2000.07.06 05:35
      제가 알고 있는 바로는 그게 다인것 같은데... 참으로 답변이 부실하여 죄송합니다. 일단 연결시에 SQL L...
    • 선해석
      2000.07.06 06:12
      이경배 wrote: > 제가 알고 있는 바로는 그게 다인것 같은데... > 참으로 답변이 부실하여 죄송합니다. ...
    • 조헌철
    • 2000.07.06 02:09
    • 1 COMMENTS
    • /
    • 1 LIKES
    • 조규춘
      2000.07.06 02:59
      조헌철 wrote: > 바탕화면이 바뀌는 걸 해보려고 하는데 처음에는 바뀌다가 그 다음부터는 바뀌질 않습니...
    • 유레카
    • 2000.07.06 02:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 성호종
      2000.07.07 03:23
      유레카 wrote: 으하하. 제가 고생쬐끔했던 내용이군요... Quickrep 콤포넌트의 page속성에 보면요 용지...
    • 유레카
      2000.07.08 00:48
      갖은 머리를 다써가면서 고생하던 중이었습니다.. 알려주신 비법이 잘 돼야할텐데 안되면 다시 질문 올릴...