国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

整理分享C#通過(guò)user32.dll模擬物理按鍵操作的代碼

2019-11-17 02:47:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
整理分享C#通過(guò)user32.dll模擬物理按鍵操作的代碼

對(duì)系統(tǒng)模擬按鍵方面的知識(shí)和按鍵映射代碼做了一下梳理,在這里分享出來(lái),適用于開發(fā)自動(dòng)操作工具和游戲外掛。

主代碼:

public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key click flag        public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag        [DllImport("user32.dll")]        PRivate static extern void keybd_event(byte bVk, byte bSCan, int dwFlags, int dwExtraInfo);        [DllImport("user32.dll")]        private static extern byte MapVirtualKey(byte wCode, int wMap);        public static void 模擬按下按鍵(VirtualKeyCode 虛擬按鍵代碼)        {            var code = (byte)虛擬按鍵代碼;            keybd_event(code, 0, 0, 0);        }        public static void 模擬彈起按鍵(VirtualKeyCode 虛擬按鍵代碼)        {            var code = (byte) 虛擬按鍵代碼;            keybd_event(code, 0, KEYEVENTF_KEYUP, 0);        }        public static void 模擬單擊按鍵(VirtualKeyCode 虛擬按鍵代碼)        {            var code = (byte)虛擬按鍵代碼;            keybd_event(code, 0, KEYEVENTF_EXTENDEDKEY, 0);        }

網(wǎng)上關(guān)于keybd_event的dwFlags參數(shù)功能說(shuō)法很混亂,經(jīng)我測(cè)試貌似是KEYEVENTF_EXTENDEDKEY表示一次單擊,0表示按下,KEYEVENTF_KEYUP表示彈起,不一定完全正確,希望高人指點(diǎn)一下。

另外MapVirtualKey的作用實(shí)在不懂,所以就沒(méi)用上,看到有人這么調(diào)用不知有什么區(qū)別:

var code = (byte)虛擬按鍵代碼;            keybd_event(code, MapVirtualKey(code,0), 0, 0);

我試過(guò)好像也沒(méi)什么變化~到底MapVirtualKey是干什么用的呢??

VirtualKeyCode枚舉:

/// <summary>    /// 虛擬按鍵代碼    /// 參考于 http://msdn.microsoft.com/zh-cn/library/dd375731(v=vs.85).aspx    /// </summary>    public enum VirtualKeyCode    {        /// <summary>        /// Left mouse button        /// </summary>        Left_mouse_button = 0x01,        /// <summary>        /// Right mouse button        /// </summary>        Right_mouse_button = 0x02,        /// <summary>        /// Control-break processing        /// </summary>        Control_break_processing = 0x03,        /// <summary>        /// Middle mouse button (three-button mouse)        /// </summary>        Middle_mouse_button = 0x04,        /// <summary>        /// X1 mouse button        /// </summary>        X1_mouse_button = 0x05,        /// <summary>        /// X2 mouse button        /// </summary>        X2_mouse_button = 0x06,        /// <summary>        /// Undefined        /// </summary>        Undefined1 = 0x07,        /// <summary>        /// BACKSPACE key        /// </summary>        BACKSPACE_key = 0x08,        /// <summary>        /// TAB key        /// </summary>        TAB_key = 0x09,        /// <summary>        /// CLEAR key        /// </summary>        CLEAR_key = 0x0C,        /// <summary>        /// ENTER key        /// </summary>        ENTER_key = 0x0D,        /// <summary>        /// SHIFT key        /// </summary>        SHIFT_key = 0x10,        /// <summary>        /// CTRL key        /// </summary>        CTRL_key = 0x11,        /// <summary>        /// ALT key        /// </summary>        ALT_key = 0x12,        /// <summary>        /// PAUSE key        /// </summary>        PAUSE_key = 0x13,        /// <summary>        /// CAPS LOCK key        /// </summary>        CAPS_LOCK_key = 0x14,        /// <summary>        /// IME Kana mode        /// </summary>        IME_Kana_mode = 0x15,        /// <summary>        /// IME Hanguel mode (maintained for compatibility; use VK_HANGUL)        /// </summary>        IME_Hanguel_mode = 0x15,        /// <summary>        /// IME Hangul mode        /// </summary>        IME_Hangul_mode = 0x15,        /// <summary>        /// Undefined        /// </summary>        Undefined2 = 0x16,        /// <summary>        /// IME Junja mode        /// </summary>        IME_Junja_mode = 0x17,        /// <summary>        /// IME final mode        /// </summary>        IME_final_mode = 0x18,        /// <summary>        /// IME Hanja mode        /// </summary>        IME_Hanja_mode = 0x19,        /// <summary>        /// IME Kanji mode        /// </summary>        IME_Kanji_mode = 0x19,        /// <summary>        /// Undefined        /// </summary>        Undefined = 0x1A,        /// <summary>        /// ESC key        /// </summary>        ESC_key = 0x1B,        /// <summary>        /// IME convert        /// </summary>        IME_convert = 0x1C,        /// <summary>        /// IME nonconvert        /// </summary>        IME_nonconvert = 0x1D,        /// <summary>        /// IME accept        /// </summary>        IME_accept = 0x1E,        /// <summary>        /// IME mode change request        /// </summary>        IME_mode_change_request = 0x1F,        /// <summary>        /// SPACEBAR        /// </summary>        SPACEBAR = 0x20,        /// <summary>        /// PAGE UP key        /// </summary>        PAGE_UP_key = 0x21,        /// <summary>        /// PAGE DOWN key        /// </summary>        PAGE_DOWN_key = 0x22,        /// <summary>        /// END key        /// </summary>        END_key = 0x23,        /// <summary>        /// HOME key        /// </summary>        HOME_key = 0x24,        /// <summary>        /// LEFT ARROW key        /// </summary>        LEFT_ARROW_key = 0x25,        /// <summary>        /// UP ARROW key        /// </summary>        UP_ARROW_key = 0x26,        /// <summary>        /// RIGHT ARROW key        /// </summary>        RIGHT_ARROW_key = 0x27,        /// <summary>        /// DOWN ARROW key        /// </summary>        DOWN_ARROW_key = 0x28,        /// <summary>        /// SELECT key        /// </summary>        SELECT_key = 0x29,        /// <summary>        /// PRINT key        /// </summary>        PRINT_key = 0x2A,        /// <summary>        /// EXECUTE key        /// </summary>        EXECUTE_key = 0x2B,        /// <summary>        /// PRINT SCREEN key        /// </summary>        PRINT_SCREEN_key = 0x2C,        /// <summary>        /// INS key        /// </summary>        INS_key = 0x2D,        /// <summary>        /// DEL key        /// </summary>        DEL_key = 0x2E,        /// <summary>        /// HELP key        /// </summary>        HELP_key = 0x2F,        /// <summary>        /// 0 key        /// </summary>        _0_key = 0x30,        /// <summary>        /// 1 key        /// </summary>        _1_key = 0x31,        /// <summary>        /// 2 key        /// </summary>        _2_key = 0x32,        /// <summary>        /// 3 key        /// </summary>        _3_key = 0x33,        /// <summary>        /// 4 key        /// </summary>        _4_key = 0x34,        /// <summary>        /// 5 key        /// </summary>        _5_key = 0x35,        /// <summary>        /// 6 key        /// </summary>        _6_key = 0x36,        /// <summary>        /// 7 key        /// </summary>        _7_key = 0x37,        /// <summary>        /// 8 key        /// </summary>        _8_key = 0x38,        /// <summary>        /// 9 key        /// </summary>        _9_key = 0x39,        /// <summary>        /// A key        /// </summary>        A_key = 0x41,        /// <summary>        /// B key        /// </summary>        B_key = 0x42,        /// <summary>        /// C key        /// </summary>        C_key = 0x43,        /// <summary>        /// D key        /// </summary>        D_key = 0x44,        /// <summary>        /// E key        /// </summary>        E_key = 0x45,        /// <summary>        /// F key        /// </summary>        F_key = 0x46,        /// <summary>        /// G key        /// </summary>        G_key = 0x47,        /// <summary>        /// H key        /// </summary>        H_key = 0x48,        /// <summary>        /// I ke
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 陆良县| 彭水| 明溪县| 米脂县| 南和县| 惠州市| 贵德县| 伊金霍洛旗| 巴南区| 仁寿县| 科尔| 隆昌县| 五家渠市| 伊吾县| 武汉市| 泗阳县| 西安市| 常山县| 叙永县| 忻城县| 红桥区| 河南省| 甘洛县| 酉阳| 体育| 河间市| 甘德县| 扎囊县| 赫章县| 上思县| 穆棱市| 奉化市| 江孜县| 黎川县| 察哈| 陵川县| 嵊泗县| 温州市| 城步| 南开区| 松溪县|