乙個C 寫的模擬鍵盤輸入的例子

2021-06-03 23:30:19 字數 3903 閱讀 5359

**如下: 

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

using system.runtime.interopservices;

//模擬鍵盤按下,此處一定要注意,寫入一次按下或彈起訊息的步驟!

btscancode = mapvirtualkey((byte)0x4a, 0);           //按鍵「j」的虛擬鍵位**

kbcwait4ibe();

setportval(kbc_key_cmd, (intptr)0xd2, 1);

kbcwait4ibe();

setportval(kbc_key_data, (intptr)0xe2, 1);

kbcwait4ibe();

setportval(kbc_key_cmd, (intptr)0xd2, 1);

kbcwait4ibe();

setportval(kbc_key_data, (intptr)btscancode, 1);

thread.sleep(5); 

//模擬彈起,步驟很重要

kbcwait4ibe();

if (setportval(0x64, (intptr)0xd2, 1) == false)

messagebox.show("彈起時");

kbcwait4ibe();

setportval(kbc_key_data, (intptr)0xe0, 1);

kbcwait4ibe();

if (setportval(0x64, (intptr)0xd2, 1) == false)

messagebox.show("彈起時");

kbcwait4ibe();

if ((setportval(0x60, (intptr)(btscancode | 0x80), 1)==false))

messagebox.show("彈起寫入失敗");          

}private void form1_load(object sender, eventargs e)

private void form1_formclosed(object sender, formclosedeventargs e) }

}/*///附上虛擬鍵位碼表:

// mouse movements

move = 0x0001,

leftdown = 0x0002,

leftup = 0x0004,

rightdown = 0x0008,

rightup = 0x0010,

middledown = 0x0020,

//keyboard stuff

vk_lbutton = 1,

vk_rbutton = 2,

vk_cancel = 3,

vk_mbutton = 4,

vk_back = 8,

vk_tab = 9,

vk_clear = 12,

vk_return = 13,

vk_shift = 16,

vk_control = 17,

vk_menu = 18,

vk_pause = 19,

vk_capital = 20,

vk_escape = 27,

vk_space = 32,

vk_prior = 33,

vk_next = 34,

vk_end = 35,

vk_home = 36,

vk_left = 37,

vk_up = 38,

vk_right = 39,

vk_down = 40,

vk_select = 41,

vk_print = 42,

vk_execute = 43,

vk_snapshot = 44,

vk_insert = 45,

vk_delete = 46,

vk_help = 47,

vk_num0 = 48, //0

vk_num1 = 49, //1

vk_num2 = 50, //2

vk_num3 = 51, //3

vk_num4 = 52, //4

vk_num5 = 53, //5

vk_num6 = 54, //6

vk_num7 = 55, //7

vk_num8 = 56, //8

vk_num9 = 57, //9

vk_a = 65, //a

vk_b = 66, //b

vk_c = 67, //c

vk_d = 68, //d

vk_e = 69, //e

vk_f = 70, //f

vk_g = 71, //g

vk_h = 72, //h

vk_i = 73, //i

vk_j = 74, //j

vk_k = 75, //k

vk_l = 76, //l

vk_m = 77, //m

vk_n = 78, //n

vk_o = 79, //o

vk_p = 80, //p

vk_q = 81, //q

vk_r = 82, //r

vk_s = 83, //s

vk_t = 84, //t

vk_u = 85, //u

vk_v = 86, //v

vk_w = 87, //w

vk_x = 88, //x

vk_y = 89, //y

vk_z = 90, //z

vk_numpad0 = 96, //0

vk_numpad1 = 97, //1

vk_numpad2 = 98, //2

vk_numpad3 = 99, //3

vk_numpad4 = 100, //4

vk_numpad5 = 101, //5

vk_numpad6 = 102, //6

vk_numpad7 = 103, //7

vk_numpad8 = 104, //8

vk_numpad9 = 105, //9

vk_nultiply = 106,

vk_add = 107,

vk_separator = 108,

vk_subtract = 109,

vk_decimal = 110,

vk_divide = 111,

vk_f1 = 112,

vk_f2 = 113,

vk_f3 = 114,

vk_f4 = 115,

vk_f5 = 116,

vk_f6 = 117,

vk_f7 = 118,

vk_f8 = 119,

vk_f9 = 120,

vk_f10 = 121,

vk_f11 = 122,

vk_f12 = 123,

vk_numlock = 144,

vk_scroll = 145,

middleup = 0x0040,

xdown = 0x0080,

xup = 0x0100,

wheel = 0x0800,

virtualdesk = 0x4000,

absolute = 0x8000

*/

SendInput模擬鍵盤輸入的問題

最近接觸到這個函式,因此了解了一下,總結一下列在這。我了解它的出發點是如何通過它向活動視窗輸入字元,這是很多程式都有的功能 我猜visual assist x就用了這個功能 根據msdn,此函式模擬按鍵操作,將一些訊息插入鍵盤或滑鼠的輸入流中,windows對它進行處理,生成相應的wm keydow...

SendInput模擬鍵盤輸入的問題 《轉》

最近接觸到這個函式,因此了解了一下,總結一下列在這。我了解它的出發點是如何通過它向活動視窗輸入字元,這是很多程式都有的功能 我猜visual assist x就用了這個功能 根據msdn,此函式模擬按鍵操作,將一些訊息插入鍵盤或滑鼠的輸入流中,windows對它進行處理,生成相應的wm keydow...

C 從鍵盤輸入的方法

c 最基本的常用的輸入方式 包含標頭檔案 include 注意 不能接受空格和回車 int main 1 scanf 函式 包含標頭檔案 include scanf函式一般格式為scanf s st 但scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字串都是...