Q&A

  • 프린터 관리자의 아이콘 가져오기
안녕하십니까?



프린터관리자를 실행시키면 여러개의 프린터 아이콘이 보이는데

이 아이콘을 가져올 수 있는 방법은 없는지요???



고수님의 조언을 부탁드립니다.





감사합니다.

1  COMMENTS
  • Profile
    김영대 1999.11.18 23:25
    류한규 wrote:

    > 안녕하십니까?

    >

    > 프린터관리자를 실행시키면 여러개의 프린터 아이콘이 보이는데

    > 이 아이콘을 가져올 수 있는 방법은 없는지요???

    >

    > 고수님의 조언을 부탁드립니다.

    >

    > 감사합니다.



    찾아보니 해당하는 아이콘은 Windowsexplorer.exe에 들어 있었습니다

    아래 소스에서 아이콘 번호를 0 ~ 6 번까지 바꿔가면서 실행해 보세요



    unit Unit1;



    interface



    uses

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

    ExtCtrls, StdCtrls, Buttons, FileCtrl, ShellAPI;



    type

    TForm1 = class(TForm)

    FileListBox1: TFileListBox;

    DirectoryListBox1: TDirectoryListBox;

    DriveComboBox1: TDriveComboBox;

    BitBtn1: TBitBtn;

    Image1: TImage;

    procedure FileListBox1DblClick(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    procedure TForm1.FileListBox1DblClick(Sender: TObject);

    var

    IcoFileName: String;

    IcoHandle: THandle;

    MyIcon: TIcon;

    begin

    // 아이콘을 추출할 파일명

    IcoFilename := FileListBox1.Filename;



    // 마지막 인덱스는 아이콘 번호(DLL이나 EXE에는 복수개의 아이콘이 있다)

    IcoHandle := ExtractIcon(Application.Handle, PChar(IcoFilename), 0);



    if IcoHandle = 0 Then // 이 파일에는 추출할 수 있는 아이콘이 없다

    begin

    ShowMessage('파일에는 추출할 수 있는 아이콘이 없습니다');

    System.Exit;

    end;



    MyIcon := TIcon.Create;

    MyIcon.Handle := IcoHandle;



    // 추출한 아이콘을 BitBtn의 아이콘으로 사용한 예

    BitBtn1.Glyph.Height := MyIcon.Height;

    BitBtn1.Glyph.Width := MyIcon.Width;

    BitBtn1.Glyph.Canvas.Draw(2, 2, MyIcon);



    // 추출한 아이콘을 image에 출력

    Image1.Picture.Icon := MyIcon;



    // 추출한 아이콘을 Application의 아이콘으로 사용한 예

    Application.Icon := MyIcon;



    MyIcon.Free;

    end;



    end.