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

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

如何利用QT實(shí)現(xiàn)模擬鼠標(biāo)點(diǎn)擊?

如何利用QT實(shí)現(xiàn)模擬鼠標(biāo)點(diǎn)擊?

C++
烙印99 2018-09-04 16:12:50
QT入門,windows開發(fā)入門選手。我想利用QT實(shí)現(xiàn)一個(gè)模擬鼠標(biāo)點(diǎn)擊的功能(Windows平臺),具體來說是這樣的:首先獲取某個(gè)特定名稱窗口的句柄,然后再模擬單擊這個(gè)窗口的特定位置,并且要求窗口可以不在桌面最前方顯示(即是虛擬的點(diǎn)擊,而不是把鼠標(biāo)指針移到那個(gè)位置再點(diǎn)擊)根據(jù)網(wǎng)上的內(nèi)容我寫了一個(gè)簡單的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); }當(dāng)我觸發(fā)這個(gè)槽函數(shù)的時(shí)候,系統(tǒng)報(bào)段錯(cuò)誤,程序強(qiáng)制退出。請教各位錯(cuò)誤出在哪?若能再給出實(shí)現(xiàn)我所描述功能的方法,不勝感激。
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

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

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

  1. 用 FindWindow 找到目標(biāo)窗口的頂級窗口

  2. 在頂級窗口下,用 FindWindowEx 找到目標(biāo)窗口

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

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


查看完整回答
反對 回復(fù) 2018-09-07
  • qq_慕UI8271673
    qq_慕UI8271673
    我打開了軟件,找到菜單欄,然后怎么操作菜單欄里面的選項(xiàng),并且是連續(xù)操作,比如說點(diǎn)擊開始,然后多個(gè)選項(xiàng)中點(diǎn)擊新建,才會跳出另一個(gè)窗口。
  • 1 回答
  • 0 關(guān)注
  • 3443 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

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