我尝试使用下面的代码按我的其他应用程序中的按钮,一个按钮:编程按下另一个应用程序(C,Windows)中
HWND ButtonHandle;
if((wnd = FindWindow(0, "Do you want to save?")))
{
ButtonHandle = FindWindowEx(wnd, 0, "SaveButton", "&Save");
SendMessage(wnd, WM_COMMAND, MAKEWORD(GetDlgCtrlID(ButtonHandle), BN_CLICKED), (LPARAM)ButtonHandle);
}
它不工作。我尝试将不同的句柄传递给MAKEWORD并更改WPARM和LPARAM,但没有任何结果。
关于如何点击另一个应用程序窗口上的按钮的任何想法?
代码表示赞赏。 谢谢。
编辑: 它似乎并没有工作许可的原因。我发送了一个PostMessage(),结果是GetLastError()= 5(或拒绝访问)错误。 任何想法?
EDIT2我的意思并不是要粗鲁,但请请请,我已经找遍了所有的API,包括获取和按钮设置区域,然后发送按钮并扣,得到了控制ID,获得课程ID和数十亿美元。 我之所以首先问这个问题的原因是因为我已经用尽了我在互联网上的搜索。 如果你知道答案请发表代码,不要建议一个API,就是这样,告诉我该API如何解决这个问题。这并不难。 谢谢。
编辑3:当赏金完成的问题的答案自动选择。问题仍然没有答案。
这是哪个版本的Windows? – billmcc 2009-09-16 18:17:48
可能不是相关的,但我建议你运行你的程序作为管理员或运行在管理模式下的Visual Studio,并尝试如果工程..这也是我在PostMessage文档中看到: Microsoft Windows Vista和更高版本。当一个消息被UIPI阻塞时,最后一个错误(使用GetLastError检索)被设置为5(拒绝访问)。 – FatDaemon 2009-09-16 18:36:30
这是在Vista还是7?它在XP中工作吗? (下载一个图像以从Microsoft运行在Virtual PC上并进行测试。)您是否尝试过使用sendkeys? – svinto 2009-09-17 10:36:13