暑假閒來無事,隨便找了個網上比較多人推薦的悠閒遊戲來玩了下(《咕嚕小天使》),正好該遊戲支援遊戲杆,於是我便萌生了做這個小小的軟體的想法,其中參考了kaper的一篇文章(
《[個人心得]windows下對遊戲杆程式設計(未完)》
),小弟第一次在高手如雲的csdn發帖,若有不正確之處,還望各位前輩大蝦們指正~~
首先介紹關於遊戲杆(joystick)的幾個api:
joyconfigchanged '通知驅動程式遊戲杆設定已經改變並重新從登錄檔讀取設定
joygetdevcaps '查詢指定的遊戲杆裝置以確定其效能
joygetnumdevs '返回系統支援的遊戲杆裝置的數量
joygetpos '查詢指定的遊戲杆裝置的位置和活動性
joygetpo*** '查詢乙個遊戲杆裝置的位置和它的按扭狀態
joygetthreshold '查詢指定的遊戲杆裝置的當前移動閾值
joyreleasecapture '釋放由joysetcapture函式設定的在指定遊戲杆裝置上的捕獲
joysetcapture '傳送乙個遊戲杆訊息到指定的視窗
joysetthreshold '設定指定的遊戲杆裝置的移動閾值
主要用到的是 joysetcapture 和 joyreleasecapture 這兩個函式,我們先來看 joysetcapture 這個函式,這個函式的宣告是:
private declare function joysetcapture _
lib "winmm.dll" (byval hwnd as long, _
byval uid as long, _
byval uperiod as long, _
byval bchanged as long) as long
hwnd 是要獲取訊息的視窗控制代碼
uid 是遊戲杆的 id,可以是 joystickid1 或者 joystickid2
uperiod 是查詢遊戲杆訊息的頻率,單位是毫秒 bchanged 是改變位置標誌。若設為 true,則僅當遊戲杆改變的值大於或等於 joysetthreshold 設定的域值時才傳送遊戲杆值改變的訊息到主程式;若設為 false,則只要達到 uperiod 指定的時間就傳送訊息到主程式。
joyreleasecapture 函式只有乙個引數 uid,這個引數可以是 joystickid1 或者 joystickid2,表示要釋放捕捉遊戲杆 1 或遊戲杆 2 的訊息。
用API操作串列埠
步驟 1 createfile,開啟串列埠 示例 g hcom createfile l com3 generic read generic write,0,null,open existing,必須用0,表示以獨佔的模式來占用串列埠 開啟除檔案之外的裝置時,用 open existing 2 se...
VB用API模擬截圖鍵PrintScreen
很多人用 sendkeys 模擬截圖鍵 printscreen 的時候提示 錯誤 70 拒絕的許可權 於是經常遇到人問.乾脆寫下來 宣告private declare sub keybd event lib user32 alias keybd event byval bvk as byte,byv...
用VB操作Excel的方法
1 定義excel 操作變數 dim objexcelfile as excel dim objworkbook as excel workbook dim objimportsheet as excel worksheet 2 開啟excel 程序,並開啟目標excel 檔案set objexce...