很多情況下,我們需要在程序中實現這樣的功能:在自編寫的程序裡控制另外一軟件中的某個按鈕被按下。比如,有一天你在聊QQ時覺得煩了,那麼就想寫程序來幫你按下“發送”按鈕,省得你自己一次次動手了。那麼,這個想法怎樣才能實現呢?
其實做法很簡單,它只用兩條Windows消息就能實現了。(當然,前提是你必須知道那個按鈕的handle。我想這個對一般程序員來說簡直是小菜一碟)這兩條消息分別是:WM_LBUTTONDOWN和WM_LBUTTONUP。下面我給出一個簡單的實例說明用法:
procedure TForm1.Button1Click(Sender: TObject);
var
btnHandle: HWND; //要控制的那個按鈕的句柄
begin
btnHandle:=strtoint(Edit1.Text ); //為了簡單起見就這麼設了,你要先寫程序得到它
SendMessage(btnHandle,WM_LBUTTONDOWN,MK_LBUTTON, 0);
SendMessage(btnHandle,WM_LBUTTONUP,0,0);
end;
整個過程其實就是模擬了一下鼠標左鍵被按下又松開(注意,光有鼠標左鍵被按下是不行的)。怎麼樣?夠簡單吧!現在就可以把這個功能加進你的程序裡面,實現一些有趣的效果了!:)