Q&A

  • 바탕화면의 그림을 변경하려면???
안녕하세요~...

질문이 있습니다.

바탕화면에 있는 그림있잖아요.

그걸 바꾸고 싶거든요. 어떻게 해야 하는지요?

Win.ini안에있는 desktop의 Wallpaper부분을 고쳐보기도 했는데

안되더군요...

값도 바뀌지 않구요.

방법을 알려주시면 감사하겠습니다.

1  COMMENTS
  • Profile
    김영대 1999.10.19 05:38
    지승용 wrote:

    > 안녕하세요~...

    > 질문이 있습니다.

    > 바탕화면에 있는 그림있잖아요.

    > 그걸 바꾸고 싶거든요. 어떻게 해야 하는지요?

    > Win.ini안에있는 desktop의 Wallpaper부분을 고쳐보기도 했는데

    > 안되더군요...

    > 값도 바뀌지 않구요.

    > 방법을 알려주시면 감사하겠습니다.



    unit Unit1;



    interface



    uses

    SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

    Forms, Dialogs, StdCtrls, Buttons, FileCtrl, Registry;



    type

    TForm1 = class(TForm)

    FileListBox1: TFileListBox;

    DirectoryListBox1: TDirectoryListBox;

    DriveComboBox1: TDriveComboBox;

    BitBtn1: TBitBtn;

    BitBtn3: TBitBtn;

    CheckBox1: TCheckBox;

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn3Click(Sender: TObject);

    private

    { Private-Deklarationen }

    public

    { Public-Deklarationen }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    // BmpFileName - 배경화면으로 사용할 bmp파일명(디렉토리 포함)

    // Tile - bmp의 크기가 적으면 tile로 채움

    procedure ChangeWallpaper(BmpFileName: String; Tile: Boolean);

    var

    Reg: TRegIniFile;

    begin

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

    Reg.WriteString('desktop', 'Wallpaper', BmpFileName);

    if tile then

    Reg.WriteString('desktop', 'TileWallpaper', '1')

    else

    Reg.WriteString('desktop', 'TileWallpaper', '0');

    Reg.Free;

    // desktop의 wallpaper를 set하고 다은 window에 알린다

    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);

    end;



    procedure TForm1.BitBtn1Click(Sender: TObject);

    begin

    // 배경화면 지정

    if FileListBox1.FileName <> '' Then

    ChangeWallpaper(FileListBox1.FileName, CheckBox1.Checked);

    end;



    procedure TForm1.BitBtn3Click(Sender: TObject);

    begin

    // 배경화면 없애기

    ChangeWallpaper('', False);

    end;



    end.