第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何利用QT實現(xiàn)模擬鼠標點擊?

如何利用QT實現(xiàn)模擬鼠標點擊?

C++
暮色呼如 2018-09-02 14:30:53
QT入門,windows開發(fā)入門選手。我想利用QT實現(xiàn)一個模擬鼠標點擊的功能(Windows平臺),具體來說是這樣的:首先獲取某個特定名稱窗口的句柄,然后再模擬單擊這個窗口的特定位置,并且要求窗口可以不在桌面最前方顯示(即是虛擬的點擊,而不是把鼠標指針移到那個位置再點擊)根據(jù)網(wǎng)上的內(nèi)容我寫了一個簡單的SLOT函數(shù),如下:void MainWindow::clickTest() {     HWND hwndGameWindow=::FindWindow(NULL,L"窗口名稱");     gameWindow=QWidget::find((WId)hwndGameWindow);     qDebug()<<(QString)(gameWindow->windowTitle());     QPoint *pos=new QPoint(112,83);     QMouseEvent *clickEvent=new QMouseEvent(QEvent::MouseButtonPress,*pos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);     QApplication::sendEvent(gameWindow,clickEvent); }當我觸發(fā)這個槽函數(shù)的時候,系統(tǒng)報段錯誤,程序強制退出。請教各位錯誤出在哪?若能再給出實現(xiàn)我所描述功能的方法,不勝感激。
查看完整描述

2 回答

?
繁星點點滴滴

TA貢獻1803條經(jīng)驗 獲得超3個贊

QWidget::find() 僅適用于 Qt 當前進程創(chuàng)建的窗口,而 FindWindow() 查詢的是整個操作系統(tǒng)下的頂級窗口。
因此,你若傳遞非 Qt 當前進程創(chuàng)建的窗口 ID 給 QWidget::find(),它將返回 NULL。

要給其他進程的窗口發(fā)送消息,大致流程是這樣的

  1. 用 FindWindow 找到目標窗口的頂級窗口

  2. 在頂級窗口下,用 FindWindowEx 找到目標窗口

  3. 構造需要發(fā)送的消息

  4. 用 SendMessage 或 PostMessage 向目標窗口發(fā)送消息


查看完整回答
反對 回復 2018-09-02
?
嚕嚕噠

TA貢獻1784條經(jīng)驗 獲得超7個贊

單步看看前面步驟是否找了空指針啊之類的

查看完整回答
反對 回復 2018-09-02
  • 2 回答
  • 0 關注
  • 1318 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號