請教如何控制滑鼠至你想要的位置,並點擊執行其它程式功能?

喜歡程式設計嗎?想要一窺 KDE/Qt 程式設計的奧秘嗎?想要
學習 X Window 上的視窗程式設計嗎?歡迎各類關於 KDE/Qt、Qtopia、Qt/Embedded、QSA、PyQt 等各類心得討論。

版主: AceLan, Franklin

文章ming0630 » 週一 10月 05, 2009 10:14 am

請問Darkranger 提供該程式的名稱、開發單位、它的安裝方式、以及檔案套件內容,這跟我要問的問題有什麼關聯?安裝方式不清楚,因為買機台時該程式已經安裝好了,所以並不知道檔案套件內容,只有如何操作機台的手冊,最核心的部份當然廠商不會公開,這是他們的 Knowhow 不可能給別人,要不然機台廠商要賺什麼?

不過還是很感謝Darkranger 您的回應,謝謝!
ming0630
可愛的小學生
可愛的小學生
 
文章: 11
註冊時間: 週三 9月 30, 2009 1:43 pm

文章AceLan » 週一 10月 05, 2009 1:49 pm

Try this

代碼: 選擇全部
Display *display;
...
display = XOpenDisplay(NULL);
...
void LeftClick()
{
        XTestFakeButtonEvent(display, 1, true, 0);
        XTestFakeButtonEvent(display, 1, false, 0);
}
AceLan
摩托學園!學園長們
摩托學園!學園長們
 
文章: 129
註冊時間: 週日 6月 01, 2003 7:53 pm
來自: KDE@Taiwan

文章descent » 週二 10月 06, 2009 6:31 pm

我只找到這篇, 可是未能成功, 只能讓你參考。

http://lists.trolltech.com/qt-interest/2007-04/thread00053-0.html
http://lists.trolltech.com/qt-interest/1999-05/thread00096-0.html

我自己則亂試一通, 還是不行, 僅提供參考了。

代碼: 選擇全部
  QMouseEvent *me = new QMouseEvent(QEvent::MouseButtonPress, p, Qt::LeftButton,
 Qt::LeftButton, Qt::NoModifier);

  if (QCoreApplication::sendEvent(QApplication::desktop(), me))
  {
  }


http://www.qtcn.org/bbs/simple/index.php?t11971.html

http://doc.trolltech.com/qq/qq11-events.html
Synthetic Events

Qt applications can generate their own events, either of predefined types or of custom types. This is done by creating an instance of QEvent (or a subclass) and calling QApplication::postEvent() or QApplication::sendEvent().

Both functions take a QObject * and a QEvent * as arguments. If you call postEvent(), you must create the event object using new and Qt will automatically delete it after it is processed. If you call sendEvent(), you must create the event on the stack. Here's an example of posting an event:

QApplication::postEvent(mainWin, new QKeyEvent(QEvent::KeyPress, Key_X, 'X', 0));


Here's an example of sending an event:

QKeyEvent event(QEvent::KeyPress, Key_X, 'X', 0);
QApplication::sendEvent(mainWin, &event);


Qt applications rarely need to call postEvent() or sendEvent() directly because most events are generated automatically by Qt or by the window system when necessary. In most of the cases where you want to send an event, Qt includes a high-level function that does it for you (for example, update() and repaint()).

不過這好像只能傳給自己的程式。
好像要出動 X 的 function。

可以用來移動游標。
代碼: 選擇全部
 QCursor::setPos(x,y);
凡經我手, 必屬佳作
descent
可愛的小學生
可愛的小學生
 
文章: 48
註冊時間: 週五 11月 22, 2002 2:09 pm

文章ming0630 » 週三 11月 18, 2009 3:42 pm

因為該機台是嵌入式系統無法植入外部程式,所以這一個月來另外從底層硬體來控制,開發了8051 滑鼠中繼站,利用另外一台PC 透過RS232 傳給8051,再由8051來模擬滑鼠訊號控制該機台要執行的程式,產線測試成功,這段時間感謝各位網友的回覆。
ming0630
可愛的小學生
可愛的小學生
 
文章: 11
註冊時間: 週三 9月 30, 2009 1:43 pm

Re: 請教如何控制滑鼠至你想要的位置,並點擊執行其它程式功能?

文章yrlin » 週一 12月 14, 2009 12:58 am

我們有客戶也有此需求
即在不可修改機台IPC軟體下
擷取螢幕資訊&操作IPC
我們的作法是
擷取螢幕畫面(當成是影像來源)
影像辨識
以自製的滑鼠/鍵盤模擬器產生硬體滑鼠/鍵盤訊號來操控機台IPC
yrlin
可愛的小學生
可愛的小學生
 
文章: 2
註冊時間: 週一 12月 14, 2009 12:52 am

Re: 請教如何控制滑鼠至你想要的位置,並點擊執行其它程式功能?

文章訪客 » 週四 12月 31, 2009 2:57 pm

yrlin 寫:我們有客戶也有此需求
即在不可修改機台IPC軟體下
擷取螢幕資訊&操作IPC
我們的作法是
擷取螢幕畫面(當成是影像來源)
影像辨識
以自製的滑鼠/鍵盤模擬器產生硬體滑鼠/鍵盤訊號來操控機台IPC


請問Yrlin,
您們是用什麼架構來傳遞訊號?
目前我是改良成8051 & RS485 連線架構(115200 bps),可同時有32組PS2(鍵盤&滑鼠) 控制模組連線,其實這樣的RS485 連線架構對生產線是夠的,但個人也想嘗試採用Ethernet 的網路架構,Google 了相關資訊,8051 結合Ethernet 最高速率為10M,不知Yrlin 您們公司是採用什麼連線架構?
訪客
 

Re: 請教如何控制滑鼠至你想要的位置,並點擊執行其它程式功能?

文章yrlin » 週一 1月 25, 2010 12:09 am

我們也是使用8051 & RS485
每台機台均配備自製螢幕擷取器&滑鼠模擬器
一台主機最多搭配6台機台(一條產線)

若沒有螢幕擷取器
不知你如何操縱滑鼠
啟不是像瞎子操作滑鼠
若有興趣螢幕擷取器可聯絡
yrlin@mail.tbcnet.net
yrlin
可愛的小學生
可愛的小學生
 
文章: 2
註冊時間: 週一 12月 14, 2009 12:52 am

上一頁

回到 KDE/Qt 程式設計

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客