键盘扫描码转化为字符的问题

zhrglchp   2009-9-23 08:53 楼主
请问在DDK编程中 得到键盘的扫描码 怎么转化为ASCII码呢
在键入的键盘是A-Z时 为什么一下代码不能打印出ASCII呢 A-Z时扫描码对应的就是ASCII码吗

     ULONG buf_len = 0;
     size_t i;
     PKEYBOARD_INPUT_DATA buf;

        buf=Irp->AssociatedIrp.SystemBuffer;
        buf_len=Irp->IoStatus.Information/sizeof(KEYBOARD_INPUT_DATA);
        for(i=0; i         {
                if(!buf->Flags)
                        KdPrint(("%C\n", buf->MakeCode));
                buf++;
        }

回复评论 (1)

注意!键盘编码和ASCII编码不一样。  这里贴出键盘编码,自己可以到网上搜索ASCII编码。
============================================================================
key_system_power        equ                81h
key_system_sleep        equ                82h
key_system_wake                equ                083h


key_error                        equ                01h

key_undefine                equ                03h
key_a                                equ                04h
key_b                                equ                05h
key_c                                equ                06h
key_d                                equ                07h
key_e                                equ                08h
key_f                                equ                09h
key_g                                equ                0ah
key_h                                equ                0bh
key_i                                equ                0ch
key_j                                equ                0dh
key_k                                equ                0eh
key_l                                equ                0fh

key_m                                equ                10h
key_n                                equ                11h
key_o                                equ                12h
key_p                                equ                13h
key_q                                equ                14h
key_r                                equ                15h
key_s                                equ                16h
key_t                                equ                17h
key_u                                equ                18h
key_v                                equ                19h
key_w                                equ                1ah
key_x                                equ                1bh
key_y                                equ                1ch
key_z                                equ                1dh
key_1                                equ                1eh
key_2                                equ                1fh

key_3                                equ                20h
key_4                                equ                21h
key_5                                equ                22h
key_6                                equ                23h
key_7                                equ                24h
key_8                                equ                25h
key_9                                equ                26h
key_0                                equ                27h
key_enter                        equ                028h
key_esc                                equ                029h
key_bs                                equ                02ah
key_tab                                equ                02bh
key_space                        equ                02ch
key_neg                                equ                02dh
key_equation                equ                02eh
key_L_brackets                equ                02fh

key_R_brackets                equ                030h
key_div                                equ                031h
key_code42                        equ                032h
key_semicolon                equ                033h
key_apostrophe                equ                034h
key_tilde                        equ                035h
key_comma                        equ                036h
key_dot                                equ                037h
key_interrogation        equ                038h
key_cap                                equ                039h
key_f1                                equ                03ah
key_f2                                equ                03bh
key_f3                                equ                03ch
key_F4                                equ                03Dh
key_f5                                equ                03eh
key_F6                                equ                03fh

key_f7                                equ                040h
key_f8                                equ                041h
key_f9                                equ                042h
key_f10                                equ                043h
key_f11                                equ                044h
key_f12                                equ                045h
key_print                        equ                046h
key_scroll                        equ                047h
key_pause                        equ                048h
key_insert                        equ                049h
key_home                        equ                04ah
key_pgup                        equ                04bh
key_del                                equ                04ch
key_end                                equ                04dh
key_pgdn                        equ                04eh
key_R_arrow                        equ                04fh

key_L_arrow                        equ                050h
key_dn_arrow                equ                051h
key_Up_arrow                equ                052h
key_num_lock                equ                053h
key_num_div                        equ                054h
key_num_star                equ                055h
key_num_neg                        equ                056h
key_num_plus                equ                057h
key_num_enter                equ                058h
key_num_1                        equ                059h
key_num_2                        equ                05ah
key_num_3                        equ                05bh
key_num_4                        equ                05ch
key_num_5                        equ                05dh
key_num_6                        equ                05eh
key_num_7                        equ                05fh


key_num_8                        equ                060h
key_num_9                        equ                061h
key_num_0                        equ                062h
key_num_dot                        equ                063h
key_code45                        equ                064h
key_app                                equ                065h

key_code107                        equ                085h                        ;for Brazilian keypad period (.)
key_code56                        equ                087h                        ;for Brazilian forward-slash (/) and question-mark (?)
key_code133                        equ                088h                        ;for Japan DBE_KATAKANA (ROMA)
key_code14                        equ                089h                        ;for Japan
key_code132                        equ                08Ah                        ;for Japan CONVERT? (CHG)
key_code131                        equ                08Bh                        ;for Japan NONCONVERT? (N-CHG)

key_Hangul                        equ                90h                                ;korean key F1
Key_Hanja                        equ                91h                                ;Korean key F2

key_L_ctrl                        equ                0e0h
key_l_shift                        equ                0e1h
key_l_alt                        equ                0e2h
key_L_win                        equ                0e3h
key_r_ctrl                        equ                0e4h
key_r_shift                        equ                0e5h
key_r_alt                        equ                0e6h
key_r_win                        equ                0e7h




; for multi key
key_V_plus                        equ                0100h
key_V_neg                        equ                0101h
key_mute                        equ                0102h
key_play_pause                equ                0103h
key_next_track                equ                0104h
key_pre_track                equ                0105h
key_stop                        equ                0106h
key_eject                        equ                0107h

key_www_refresh                equ                0108h
key_www_stop                equ                0109h
key_www_F                        equ                010ah
key_www_b                        equ                010bh
key_www_home                equ                010ch
key_www_goto                equ                010dh
key_www_search                equ                010eh
key_e_mail                        equ                011fh

key_media                        equ                0110h
key_explorer                equ                0111h
key_calculator                equ                0112h
key_screensave                equ                0113h
key_computer                equ                0114h
key_min                                equ                0115h
key_rec                                equ                0116h
key_rew                                equ                0117h


; for combine key
key_00                                equ                0200h               
key_000                                equ                0201h               
key_open                        equ                0202h                ;ctrl--O
key_save                        equ                0203h                ;CTRL--S
key_print_key                equ                0204h                ;CTRL--P
key_cut                                equ                0205h                ;CTRL--X
key_copy                        equ                0206h                ;CTRL--C
key_paste                        equ                0207h                ;CTRL--V
key_rotate                        equ                0208h                ;ALT-TAB
key_close                        equ                0209h                ;ALT--F4


;for two defined key 1
key_f1_f11                        equ                0300h
key_f2_f12                        equ                0301h
key_f10_scroll                equ                0302h
key_Up_pgup                        equ                0303h
key_dn_pgdn                        equ                0304h
key_L_home                        equ                0305h
key_r_end                        equ                0306h

;for two defined key 2

key_7_num_7                        equ                0400h
key_8_num_8                        equ                0401h
key_9_num_9                        equ                0402h
key_0_num_star                equ                0403h
key_u_num_4                        equ                0404h
key_i_num_5                        equ                0405h
key_o_num_6                        equ                0406h
key_p_num_neg                equ                0407h
key_j_num_1                        equ                0408h                       
key_k_num_2                        equ                0409h
key_l_num_3                        equ                040ah
key_semicolon_plus        equ                040bh
key_m_num_0                        equ                040ch
key_comma_107                equ                040dh
key_dot_num                        equ                040eh
key_interrogation_div        equ                040fh       
key_enter_LR                equ                0410h       

; for function key
key_fn                                equ                5000h
点赞  2009-9-23 15:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复