網路上找到的文章,Ord('C') <==其實轉出來就是ASCII碼,知道後比較可以靈活運用在用變數的方式帶入。

 

文章出處:http://blog.yam.com/yqbagzdk/article/25791738

======================================================

最近碰到使用 SendMessage 和 PostMessage 機會超級多,無非是因為太多的程式合輯專案需求,如果耗費人力全部自行開發,大概請二、三倍的人力結果也只是為了完成幾個對於圖形處理的動作而已,建築.室內設計.服裝相關軟體因此購買已經寫好的軟體直接使用就行,但畢竟購買是購買,有些畫面或是需求畢竟是套裝軟體無法達成的,於是還是得自己寫控制指令

可以自己寫一個類似按鍵精靈的東東,也就是控制滑鼠自動在畫面上操作東西

滑鼠自動點擊的例子

procedure TForm1.Button1Click(Sender: TObject);

var x,y:integer;

begin

    x:= form1.Left+button2.Left+25;

    y:= top+button2.Top+27;

    SetCursorPos(x,y);   // 移到某個點

    Mouse_Event(MOUSEEVENTF_LEFTDOWN,X,Y,0,0); // 按下滑鼠左鍵

    Mouse_Event(MOUSEEVENTF_LEFTUP,X,Y,0,0);   // 放開左鍵

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

showmessage('fksj');

end;

*************************************

其中 mouse_event 這是 WindowsAPI 的指令,xyz軟體補給站

還有下列的幾種

MOUSEEVENTF_MOVE            = $0001; { mouse move }

MOUSEEVENTF_LEFTDOWN        = $0002; { left button down }

MOUSEEVENTF_LEFTUP          = $0004; { left button up }

MOUSEEVENTF_RIGHTDOWN       = $0008; { right button down }

MOUSEEVENTF_RIGHTUP         = $0010; { right button up }

MOUSEEVENTF_MIDDLEDOWN      = $0020; { middle button down }

MOUSEEVENTF_MIDDLEUP        = $0040; { middle button up }

MOUSEEVENTF_WHEEL           = $0800; { wheel button rolled }

MOUSEEVENTF_ABSOLUTE        = $8000; { absolute move }

而下面的這段則是模擬鍵盤

//Ctrl+C: 
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0); 
keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), 0, 0); 
keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), KEYEVENTF_KEYUP, 0); 
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0) 
 
//Ctrl+V: 
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0); 
keybd_event(Ord('V'), MapVirtualKey(Ord('V'), 0), 0, 0); 
keybd_event(Ord('V'), MapVirtualKey(Ord('V'), 0), KEYEVENTF_KEYUP, 0); 
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0) 
arrow
arrow
    全站熱搜

    NoMoney NoHoney 發表在 痞客邦 留言(0) 人氣()