2011-09-29 46 views
3

問題
我正在修改我的一個與望遠鏡通信的應用程序。如何通過USB訪問遊戲控制器?

GOTO控制器和它的鍵盤是最不討厭的糟糕的設計,最惱人的問題之一。

如果你們中的任何人都記得辛克萊譜,你明白我的意思。除了橡膠鍵,用於引導和轉動望遠鏡的關鍵鍵在您的眼睛嘗試適應視圖時很難定位。

它只需要一個錯誤的鍵,然後再花30分鐘左右重新對準望遠鏡。

解決方法
我的解決方案是一個遊戲控制器,如僚機,它正好放進你的手,是很容易找到的按鈕。也沒有重新安裝的風險。

問題
我的問題是,如何用Delphi的遊戲控制器交互,因爲tthere在文檔中沒有提及?否則,如何通過USB加密狗連接時訪問遊戲端口?

回答

6

使用遊戲控制器是Windows API的一部分。 JEDI's JVCL有一個人機接口設備(HID)Constroller(TJvHIDDeviceController)組件,它可以做你想做的。

1

在「NT」行操作系統(NT,2000,XP,Vista,7,2003,2008 ...)上運行的Delphi應用程序無法直接訪問硬件設備。只有驅動程序可以,因爲訪問它們所需的I/O端口只能通過在正確的IOPL級別(在Windows中爲0)運行的代碼才能訪問。有一些通用驅動程序可用於打開用戶代碼可以調用的任何I/O端口(從而創建安全漏洞)。 但是,依靠設備驅動程序並使用HID API與它們進行交互要好得多。 Windows可以識別大多數較老的設備(如串口/遊戲端口Wingman),而較新的USB設備或使用Windows附帶的標準驅動程序,或者自帶。一旦系統識別出這些設備,就可以以標準方式使用它們,而無需挖掘低級細節。

+0

糾錯:這不僅適用於Delphi應用程序,也適用於所有用戶模式應用程序。 – Jay