본문 바로가기

카테고리 없음

[윈도우즈 API] 바탕화면, 시작메뉴 icon 숨기기

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    FSysClasses : array [0 .. 3] of PChar;
    { Private declarations }
  public
    { Public declarations }
  end;

const
  iTRAYBAR = 1;
  iDESKTOPICONS = 2;
  iPROGMAN = 3;

var
  Form1: TForm1;

implementation

{$R *.DFM}

//바탕화면 아이콘 숨기기
procedure TForm1.Button1Click(Sender: TObject);
var
wnd:Thandle;
begin

  Wnd := FindWindow(FSysClasses[iPROGMAN], nil);
  Wnd := FindWindowEx(Wnd, HWND(0), FSysClasses[iDESKTOPICONS], nil);

  if Wnd <> 0 then
  begin
      ShowWindow(Wnd, SW_HIDE);
  end;
end;

//바탕 화면 아이콘 보여주기
procedure TForm1.Button2Click(Sender: TObject);
var
wnd:Thandle;
begin

   Wnd := FindWindow(FSysClasses[iPROGMAN], nil);
   Wnd := FindWindowEx(Wnd, HWND(0), FSysClasses[iDESKTOPICONS], nil);

  if Wnd <> 0 then
  begin
    ShowWindow(Wnd, SW_SHOW);
  end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   FSysClasses[iTRAYBAR] := 'Shell_TrayWnd';
   FSysClasses[iDESKTOPICONS] := 'ShellDll_DefView';
   FSysClasses[iPROGMAN] := 'Progman';
end;

//작업 표시줄 숨기기
procedure TForm1.Button3Click(Sender: TObject);
var
wnd:Thandle;
begin
   Wnd := FindWindow(FSysClasses[iTRAYBAR], nil);


  if Wnd <> 0 then
  begin
    ShowWindow(Wnd, SW_HIDE);
  end;

end;

// 작업 표시줄 보여주기
procedure TForm1.Button4Click(Sender: TObject);
var
wnd:Thandle;
begin
   Wnd := FindWindow(FSysClasses[iTRAYBAR], nil);


  if Wnd <> 0 then
  begin
    ShowWindow(Wnd, SW_SHOW);
  end;

end;

end.