3
Q
模擬點擊不點擊
A
回答
8
如果您只是試圖在相當典型的標籤,字段和按鈕應用程序中單擊按鈕,則可以使用一點P/Invoke將FindWindow
和SendMessage
用於控件。
如果您還不熟悉Spy ++,現在可以開始了!
它與Visual Studio 2012 RC打包在一起:C:\Program Files\Microsoft Visual Studio 11.0\Common7\Tools
。它應該類似地發現其他版本。
試試這個作爲控制檯C#應用程序:
class Program
{
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint msg, int wParam, int lParam);
private const uint BM_CLICK = 0x00F5;
static void Main(string[] args)
{
// Get the handle of the window
var windowHandle = FindWindow((string)null, "Form1");
// Get button handle
var buttonHandle = FindWindowEx(windowHandle, IntPtr.Zero, (string)null, "A Huge Button");
// Send click to the button
SendMessage(buttonHandle, BM_CLICK, 0, 0);
}
}
這得到手柄標題 「Form1的」 窗口。使用該句柄,它將獲得窗口內Button的句柄。然後向按鈕控件發送一個類型爲「BM_CLICK」的消息,其中沒有有用的參數。
我用一個測試WinForms應用程序作爲我的目標。一個按鈕和一些代碼後面增加一個計數器。
您應該看到計數器增量當您運行的P/Invoke控制檯應用程序。但是,你會不是看到按鈕動畫。
你也可以使用Spy ++ Message Logger功能。我建議過濾器BM_CLICK,也許WM_LBUTTONDOWN/WM_LBUTTONUP(手動點擊會給你什麼)。
希望有幫助!
相關問題
- 1. 模擬javascript點擊來點擊橫幅
- 2. 模擬標籤點擊按鈕點擊
- 3. 模擬tabhost點擊
- 4. WebView模擬點擊
- 5. 模擬點擊js
- 6. 模擬點擊酶
- 7. iPhone:UnitTest模擬點擊
- 8. 模擬點擊 - 酶
- 9. 模擬點擊web.whatsapp.com
- 10. 模擬點擊Chromebook
- 11. 模擬點擊按鈕
- 12. 通過模擬點擊
- 13. 模擬QA的Gmail點擊
- 14. 標籤錨模擬點擊
- 15. 模擬點擊x座標
- 16. 模擬點擊Geckofx vb,網
- 17. 模擬GearVR上的點擊
- 18. 模擬菜單項點擊
- 19. 使用jQuery模擬點擊
- 20. 在StageWebView中模擬點擊
- 21. 模擬鼠標點擊QWebEngineView
- 22. 模擬按鈕點擊
- 23. python win32模擬點擊
- 24. 模擬webrowser中的點擊
- 25. 模擬鼠標點擊motionevents
- 26. JavaScript - 模擬點擊contextmenu
- 27. 在javascript中模擬點擊
- 28. 模擬點擊按鈕
- 29. Android - 模擬主頁點擊
- 30. 模擬ctrl點擊Richfaces3.3 rich:extendedDataTable
你想要做什麼語言?你標籤winapi和C,C++或C#都是有效的候選人。另外,你想要點擊什麼?一個按鈕?一個特定的座標? – rrhartjr 2012-07-27 14:19:17
沒關係。他們中的任何一個都OK :) 但我更喜歡C#,C++和Python。 – MBZ 2012-07-27 14:20:03
@MBZ那麼,最好在這裏檢查一下:http://stackoverflow.com/questions/2416748/how-to-simulate-mouse-click-in-c – 2012-07-27 14:46:27