在自己的程序中将任务栏隐藏起来,并屏蔽Ctrl+Alt+Del和Alt+Tab等系统热键,也是很有趣的。要实现它们比较容易,但千万别忘了恢复正常,另外,本例中使用了3个API函数:FindWindow、ShowWindow和SystemParametersInfo,在使用它们之前一定要进行申明。
Implementation
var Hwnd:THandle;
Tmp:integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
Hwnd:=FindWindow('Shell_TrayWnd',nil);
if Hwnd<>0 then ShowWindow(Hwnd,SW_HIDE); //隐藏任务栏
SystemParametersInfo(SPI_SCREEN
SAVERRUNNING,1,@Tmp,0); //屏蔽系统热键
end;
procedure TForm1.Button2Click(Sender: TObject);
ShowWindow(Hwnd,SW_SHOW); //恢复任务栏
SystemParametersInfo(SPI_SCR
EENSAVERRUNNING,0);
//恢复系统热键
Implementation
var Hwnd:THandle;
Tmp:integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
Hwnd:=FindWindow('Shell_TrayWnd',nil);
if Hwnd<>0 then ShowWindow(Hwnd,SW_HIDE); //隐藏任务栏
SystemParametersInfo(SPI_SCREEN
SAVERRUNNING,1,@Tmp,0); //屏蔽系统热键
end;
procedure TForm1.Button2Click(Sender: TObject);
ShowWindow(Hwnd,SW_SHOW); //恢复任务栏
SystemParametersInfo(SPI_SCR
EENSAVERRUNNING,0);
//恢复系统热键
end;
procedure TForm1.FormCreate(Sender: TObject); var iTemp: integer; begin iTemp := 0; SystemParametersInfo(SPI_SCREENSAVERRUNNING,@iTemp,0); //屏蔽Ctrl+Alt+Del SystemParametersInfo(SPI_SETFASTTASKSWITCH,0); //屏蔽Alt+Tab end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var iTemp: integer; begin iTemp := 0; SystemParametersInfo(SPI_SCREENSAVERRUNNING,0); //屏蔽Alt+Tab end;