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. 模拟标签点击按钮点击
- 2. 模拟javascript点击来点击横幅
- 3. 模拟点击js
- 4. 模拟点击酶
- 5. 模拟点击web.whatsapp.com
- 6. 模拟点击 - 酶
- 7. Android - 模拟主页点击
- 8. 模拟鼠标点击motionevents
- 9. 模拟webrowser中的点击
- 10. 模拟点击的Ajax
- 11. Raphaël对象:模拟点击
- 12. 模拟鼠标点击AS3
- 13. 模拟QA的Gmail点击
- 14. 模拟点击按钮
- 15. JavaScript - 模拟点击contextmenu
- 16. python win32模拟点击
- 17. 如何模拟点击Gmail
- 18. 通过模拟点击
- 19. 标签锚模拟点击
- 20. 模拟鼠标点击
- 21. 模拟'Home Button'点击
- 22. 模拟GearVR上的点击
- 23. 在javascript中模拟点击
- 24. 模拟ctrl点击Richfaces3.3 rich:extendedDataTable
- 25. 模拟鼠标点击QWebEngineView
- 26. 点击按钮模拟点击下拉隐藏
- 27. PhoneGap点击后退按钮模拟点击主页按钮
- 28. 我想点击(或模拟)点击图片
- 29. 点击坐标在画布后的keydown模拟点击
- 30. 物理鼠标点击与模拟按钮点击?
你想要做什么语言?你标签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