问题描述
想要通过Sendkey打印一个“_”,在Virtual-keycodes中找到“-”的虚拟键值为189,执行发送的代码如下:keybd_event((byte)16,MapVirtualKey((byte)16,0),(KEYEVENTF_EXTENDEDKEY|0),0);System.Threading.Thread.Sleep(100);keybd_event((byte)189,MapVirtualKey((byte)189,0),(KEYEVENTF_EXTENDEDKEY|0),0);System.Threading.Thread.Sleep(100);keybd_event((byte)189,MapVirtualKey((byte)189,0),(KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP),0);System.Threading.Thread.Sleep(100);keybd_event((byte)16,MapVirtualKey((byte)16,0),(KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP),0);没有任何字符被打印。我改成用PageDown(34),就可以。说明这样写shift键是被按下去的,可能是对应的下划线“_”却没有被打印出来,难道是“_”另有键值?或是用不同的方法才能打印?
解决方案
解决方案二:
//keybd_event((byte)34,0,0,0);//keybd_event((byte)189,0,0,0);//keybd_event(VK((byte)34L,0,KEYEVENTF_KEYUP,0);//keybd_event(((byte)189,0,KEYEVENTF_KEYUP,0);