如何获取用户的击键动作,如何发送虚拟键给一个文本文件写入内容
给出源代码更好,在此感谢!!

解决方案 »

  1.   

    LONG APIENTRY WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
    {
       switch(msg)
       {
         case WM_COMMAND:
              switch(LOWORD(wParam))
              {case IDC_CLOSE:
              DestroyWindow(hwndMain);
              temp="00000804";
              hkl=LoadKeyboardLayout(temp,KLF_ACTIVATE);//装载输入法
      ActivateKeyboardLayout(hkl,KLF_SETFORPROCESS);
              PostQuitMessage(0);
              break;
              case IDC_WAVE:
              keybd_event(0xC0,0,0,0);
               keybd_event(0xC0,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_1:
              keybd_event(0x31,0,0,0);
              keybd_event(0x31,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_2:
              keybd_event(0x32,0,0,0);
               keybd_event(0x32,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_3:
              keybd_event(0x33,0,0,0);
               keybd_event(0x33,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_4:
              keybd_event(0x34,0,0,0);
               keybd_event(0x34,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_5:
              keybd_event(0x35,0,0,0);
               keybd_event(0x35,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_6:
              keybd_event(0x36,0,0,0);
               keybd_event(0x36,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_7:
              keybd_event(0x37,0,0,0);
               keybd_event(0x37,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_8:
              keybd_event(0x38,0,0,0);
               keybd_event(0x38,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_9:
              keybd_event(0x39,0,0,0);
               keybd_event(0x39,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_0:
              keybd_event(0x30,0,0,0);
               keybd_event(0x30,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_MINUS:
              keybd_event(0xBD,0,0,0);
               keybd_event(0xBD,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_PLUS:
              keybd_event(0xBB,0,0,0);
               keybd_event(0xBB,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_OEM5:
              keybd_event(0xDC,0,0,0);
               keybd_event(0xDC,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_TAB:
              keybd_event(0x09,0,0,0);
               keybd_event(0x09,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
              case IDC_Q:
              keybd_event(0x51,0,0,0);
               keybd_event(0x51,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;
     //---------------------------------------
              case IDC_W:
              keybd_event(0x57,0,0,0);
               keybd_event(0x57,0,KEYEVENTF_KEYUP,0);
              if (gbShift)
                 {
                 keybd_event(0x10,0,KEYEVENTF_KEYUP,0);
                 gbShift=false;
                 }
              break;