Delphi 關閉指定窗口

我在程序中想每隔30秒自動關閉指定窗口標題的窗口。如IE窗口,腳本提示錯誤窗口,上網時的下載工具提示等等  


最簡單的方法:

procedure TForm1.Button1Click(Sender: TObject);
var
QQHWND:HWND;
begin
qqhwnd:=findwindow(nil,'QQ用戶登錄');
ShowWindow(QQHWND,sw_HIDE);   // 這裏是隱藏指定窗口,同理, 將此代碼放在TImer事件中即可達到效果

end;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

procedure    TForm1.Button2Click(Sender:    TObject);   
   var   
       hWndClose: HWnd;    //存儲指定的外部應用程序窗口句柄   
       str: String;    //存儲指定的外部應用程序的窗口名   
   begin   
       str := inputBox('提示','請輸入應用程序窗口標題:','');    //獲取要關閉的應用程序窗口名   
       if   str <> ''   then   
           begin   
               hWndClose := FindWindow(nil, PChar(str));    //根據窗口名查找要關閉的窗口句柄   
               if   hWndClose <> 0    then    ////如果查找成功,則發送消息,關閉指定的窗口   
                   SendMessage(hWndClose,WM_CLOSE,0,0)   
               else    //否則,給出提示信息   
                   ShowMessage('沒找到指定的應用程序,所以無法關閉!');   
         end;   
   end;

SendMessage(FindWindow(nil,'str'),WM_CLOSE,0,0);   //精簡就是這樣
    

用FindWindow或者FindWindowEX都可以獲取窗口具柄,findwindow是頂級窗口句柄不獲取字窗口的,findwindowex則可以獲取子窗口的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章