繁体   English   中英

SendMessage不适用于Word应用程序

[英]SendMessage does not work with Word app

我要进行一点应用,并且需要单击Word文档中的某个位置。

我正在使用“ sendMessage”,尽管我也正在使用“ postMessage”获得相同的结果。

#include <Windows.h>


int _tmain(int argc, _TCHAR* argv[])
{
    HWND win_handle = FindWindow(L"OpusApp", NULL);
    if (win_handle != NULL)
    {
        POINT win_coords = {1310, 360};
        POINT ctrl_coords = win_coords;

        ScreenToClient(win_handle, &win_coords);
        WCHAR windowsText1[200];
        GetWindowText(win_handle, windowsText1, 200);
        //SetCapture(win_handle);
        LPARAM lParam = MAKELPARAM(win_coords.x, win_coords.y);
        LRESULT hr_d = SendMessage(win_handle, WM_LBUTTONDOWN, 0, lParam);
        LRESULT hr_u = SendMessage(win_handle, WM_LBUTTONUP, 0, lParam);
    }
    return 0;
}

有什么建议吗?

问候。

首先,您不应使用SendMessage或PostMessage发送输入。 它可能对某些程序有效,但是直接发送或发布消息不会更新与输入关联的内部状态,这可能使奇怪的事情发生,例如未检测到输入。

这就是功能SendInput存在的原因。 这将以与鼠标驱动程序相同的级别注入输入,因此Windows将正确维护其状态。 当然,这是为全局输入。 如果无法确保窗口位于前景中,则可能需要研究UI自动化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM