zoukankan      html  css  js  c++  java
  • 字符串转键盘码

    原内容  http://www.cnblogs.com/ccqin/articles/2317832.html

    整理了 键盘码 

    int KEYEVENTF_KEYUP = 2;
    byte VK_SHIFT = 16;
    byte VK_SPACE = 32;
    /// <summary>
    /// 模拟输入
    /// </summary>
    /// <param name="str"></param>
    public void KeyPress(string str)
    {
    for (int i = 0; i < str.Length; i++)//每一个字符分别转成ASCII
    {
    char key = str[i];
    if (key == ' ')
    {
    keybd_event(VK_SPACE, 0, 0, 0);
    keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);
    }
    else if (key >= '0' && key <= '9')
    {
    keybd_event((byte)VkKeyScanA(key), 0, 0, 0);
    keybd_event((byte)VkKeyScanA(key), 0, KEYEVENTF_KEYUP, 0);
    }
    else if (key >= 'A' && key <= 'Z')
    {
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)VkKeyScanA(key), 0, 0, 0);
    keybd_event((byte)VkKeyScanA(key), 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    }
    else if (key >= 'a' && key <= 'z')
    {
    keybd_event((byte)VkKeyScanA(key), 0, 0, 0);
    keybd_event((byte)VkKeyScanA(key), 0, KEYEVENTF_KEYUP, 0);
    }
    else if (key == '\t')
    {
    keybd_event((byte)Keys.Tab, 0, 0, 0);
    keybd_event((byte)Keys.Tab, 0, KEYEVENTF_KEYUP, 0);
    }
    else
    {
    switch (key)
    {
    #region keys
    case '\t':
    keybd_event((byte)Keys.Tab, 0, 0, 0);
    keybd_event((byte)Keys.Tab, 0, KEYEVENTF_KEYUP, 0);
    break;
    case ',':
    keybd_event((byte)188, 0, 0, 0);
    keybd_event((byte)188, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '<':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)188, 0, 0, 0);
    keybd_event((byte)188, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '.':
    keybd_event((byte)190, 0, 0, 0);
    keybd_event((byte)190, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '>':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)190, 0, 0, 0);
    keybd_event((byte)190, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '/':
    keybd_event((byte)191, 0, 0, 0);
    keybd_event((byte)191, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '?':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)191, 0, 0, 0);
    keybd_event((byte)191, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '\\':
    keybd_event((byte)220, 0, 0, 0);
    keybd_event((byte)220, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '|':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)220, 0, 0, 0);
    keybd_event((byte)220, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case ';':
    keybd_event((byte)186, 0, 0, 0);
    keybd_event((byte)186, 0, KEYEVENTF_KEYUP, 0);
    break;
    case ':':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)186, 0, 0, 0);
    keybd_event((byte)186, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '\'':
    keybd_event((byte)222, 0, 0, 0);
    keybd_event((byte)222, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '"':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)222, 0, 0, 0);
    keybd_event((byte)222, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '[':
    keybd_event((byte)219, 0, 0, 0);
    keybd_event((byte)219, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '{':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)219, 0, 0, 0);
    keybd_event((byte)219, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case ']':
    keybd_event((byte)219, 0, 0, 0);
    keybd_event((byte)219, 0, KEYEVENTF_KEYUP, 0);
    break;
    case ' ':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)221, 0, 0, 0);
    keybd_event((byte)221, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '-':
    keybd_event((byte)189, 0, 0, 0);
    keybd_event((byte)189, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '_':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)189, 0, 0, 0);
    keybd_event((byte)189, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '=':
    keybd_event((byte)187, 0, 0, 0);
    keybd_event((byte)187, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '+':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)187, 0, 0, 0);
    keybd_event((byte)187, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '`':
    keybd_event((byte)192, 0, 0, 0);
    keybd_event((byte)192, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '~':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)192, 0, 0, 0);
    keybd_event((byte)192, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '!':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)49, 0, 0, 0);
    keybd_event((byte)49, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '@':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)50, 0, 0, 0);
    keybd_event((byte)50, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '#':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)51, 0, 0, 0);
    keybd_event((byte)51, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '$':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)52, 0, 0, 0);
    keybd_event((byte)52, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '%':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)53, 0, 0, 0);
    keybd_event((byte)53, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '^':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)54, 0, 0, 0);
    keybd_event((byte)54, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '&':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)55, 0, 0, 0);
    keybd_event((byte)55, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '*':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)56, 0, 0, 0);
    keybd_event((byte)56, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case '(':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)57, 0, 0, 0);
    keybd_event((byte)57, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    case ')':
    keybd_event(VK_SHIFT, 0, 0, 0);
    keybd_event((byte)48, 0, 0, 0);
    keybd_event((byte)48, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    break;
    #endregion
    }
    }
    }
    }
  • 相关阅读:
    SSL 1579——泽泽在巴西
    SSL 1644——取数字问题
    SSL 1589——火车票
    SSL 1506——打鼹鼠
    SSL 1212——大厅安排
    洛谷 1064——金明的预算方案(动态规划的背包问题)
    SSL 1463——公共子串
    SSL 1461——最大连续数列的和
    SSL 1643——最小乘车费用
    SSL 1460——最小代价问题
  • 原文地址:https://www.cnblogs.com/ccqin/p/2318796.html
Copyright © 2011-2022 走看看