原始碼來自:
以前,如果想獲取鍵盤按鈕是否被按下,一般通過鍵盤事件去獲取,而有時候,我們可能使用的不是windows form,可能是控制台或類庫,則不得不放棄使用鍵盤事件的方式,而需另找其他方法。
我們可以通過使用win32 api中的getkeystate函式來實現鍵盤按鈕按下狀態的檢查,而不通過鍵盤事件方式,**如下:
usingsystem;
using
system.collections.generic;
using
system.runtime.interopservices;
using
system.text;
namespace
pinvoke.net
return
keypressed;
}public
enum virtualkeystates : int
' for us
vk_oem_7 = 0xde, //
''"' for us
vk_oem_8 = 0xdf
,
// vk_oem_ax = 0xe1, //
'ax' key on japanese ax kbd
vk_oem_102 = 0xe2, //
"<>" or "\|" on rt 102-key kbd.
vk_ico_help = 0xe3, //
help key on ico
vk_ico_00 = 0xe4, //
00 key on ico
// vk_processkey = 0xe5
,
// vk_ico_clear = 0xe6
,
// vk_packet = 0xe7
,
// vk_oem_reset = 0xe9
, vk_oem_jump = 0xea
, vk_oem_pa1 = 0xeb
, vk_oem_pa2 = 0xec
, vk_oem_pa3 = 0xed
, vk_oem_wsctrl = 0xee
, vk_oem_cusel = 0xef
, vk_oem_attn = 0xf0
, vk_oem_finish = 0xf1
, vk_oem_copy = 0xf2
, vk_oem_auto = 0xf3
, vk_oem_enlw = 0xf4
, vk_oem_backtab = 0xf5
,
// vk_attn = 0xf6
, vk_crsel = 0xf7
, vk_exsel = 0xf8
, vk_ereof = 0xf9
, vk_play = 0xfa
, vk_zoom = 0xfb
, vk_noname = 0xfc
, vk_pa1 = 0xfd
, vk_oem_clear = 0xfe
} }
}
C 獲取鍵盤事件
一 windows 系統下的 vs 中可以使用 kbhit 函式來獲取鍵盤事件,使用時需要加入 conio.h 標頭檔案,例 include include using namespace std int main 當按下esc時迴圈,esc鍵的鍵值時27.system pause 二 在 unix...
C語言使用數學庫編譯不通過問題
include include int main 編譯結果 tmp ccibw7gz.o in function main test.c text 0x2d undefined reference to pow collect2 ld returned 1 exit status 這是怎麼回事?us...
如何不通過白名單獲取手機的UA
做手機應用,我們都希望使用者訪問我們服務時,能夠獲得使用者的機型資訊,有兩種途徑 1 你的 加入了移動的白名單列表,2 通過和支援白名單的第三方合作獲取 如果你既不在白名單列表中,有不想支付費用,怎麼辦,其實可以用一種變通的方法,通過使用者請求的http頭資訊,來識別出機型資訊。1.獲取http的u...