QT 嵌入exe应用程序 并获取鼠标事件 mouse keyboard event

本文介绍了如何使用QT通过QProcess启动并嵌入第三方应用程序,如Everything.exe,然后通过FindWindow和QWindow::fromWinId转换为QWindow对象。进一步将窗口包含到QWidget中并利用attachWindowThreadInput函数,实现对第三方exe的鼠标和键盘事件的获取。该方法涉及QT的进程管理、窗口ID转换和线程交互。
摘要由CSDN通过智能技术生成

QT 嵌入第三方程序方法:

QProcess *Process = new QProcess(this); //Process必须为指针,不然对象销毁时第三方exe会被关闭
    Process->start(“Everything\\Everything.exe"); //启动exe
    if (Process->waitForStarted())
    {
        Sleep(2000);
        WId wid = (WId)FindWindow(L"EVERYTHING", L"Everything"); 获取exe wid
        if (wid)
        {
            QWindow *mapWindow = QWindow::fromWinId(wid); //转换为QWindow
             QWidget *Widget = QWidget::createWindowContainer(mapWindow, this);//包含到QWidget
          //可以对Widget进行布局操作
            attachWindowThreadInput(wid); //获取鼠标键盘事件给第三方exe

}

}

//把当前程序的事件通过WId传递给第三方exe

void attachWindowThreadInput(WId remoteWindowId)
{
    DWORD currentThreadId = GetCurrentThreadId();
    DWORD remoteTh

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值