00 keybd_event函数模拟键盘输入的问题

Post date: 2012/4/24 上午 06:48:01

[cpp] view plaincopy

  1. // keybd_event函数可以模拟键盘输入,但是下面的例子你会发现只能输入字母和数字,对于符号不能输入,
  2. // 如果需要输入标点符号,可以参考MSDN上的Virtual-Key Codes表。例如'.'对应VK_OEM_PERIOD。

[cpp] view plaincopy

  1. char buf[] = {"Hello, World! 0123456789"};
  2. for(size_t i=0; ; i++)
  3. {
  4. if(i >= strlen(buf))
  5. {
  6. i = 0;
  7. }
  8. char ch = buf[i];
  9. BOOL bUpper = FALSE; // Upper Alpha
  10. Sleep(1000);
  11. if(ch >= 'a' && ch <= 'z')
  12. {
  13. ch -= 0x20;
  14. }
  15. else if(ch >= 'A' && ch <= 'Z')
  16. {
  17. bUpper = TRUE;
  18. }
  19. if(bUpper)
  20. {
  21. keybd_event(VK_SHIFT, 0, 0, 0);
  22. }
  23. keybd_event(ch, 0, 0, 0);
  24. keybd_event(ch, 0, KEYEVENTF_KEYUP, 0);
  25. if(bUpper)
  26. {
  27. keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
  28. }