以编程方式按下另一个应用程序上的按钮(C,Windows)

won*_*rer 18 c windows click button

我正在尝试使用以下代码按下我的其他应用程序上的按钮:

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);

}
Run Code Online (Sandbox Code Playgroud)

它不起作用.我尝试将不同的句柄传递给MAKEWORD并更改WPARM和LPARAM,但没有.

有关如何单击另一个应用程序窗口上的按钮的任何想法?

代码表示赞赏.谢谢.

编辑:它似乎没有工作权限的原因.我发送了一个PostMessage(),结果是GetLastError()= 5(或拒绝访问)时出错.有任何想法吗?

EDIT2我不是故意粗鲁,但请取悦,我已经搜索了所有的API,包括获取和设置按钮的区域,然后发送按钮和按钮,获取控件ID,获取类ID和还有更多.我之所以问这个问题的原因是因为我已经在互联网上用尽了我的搜索.如果您知道答案请发布邮件代码,不要建议API,就是这样,告诉我该API如何解决问题.这并不难.谢谢.

编辑3:当赏金结束时,问题的答案自动被选中.这个问题仍然没有答案.

Nic*_*kis 19

  1. 您确定"SaveButton"类名是否有效?你有按钮手柄吗?
  2. 尝试将消息发送到ButtonHandle窗口(直接发送到按钮).

更新:我相信这应该有效,

SendMessage(ButtonHandle, BM_CLICK, 0, 0);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在更高版本的Windows(Vista +)上,您不能向具有更高权限的Windows发送消息. (3认同)