SendKeys.SendWait()只是一个包装器,这两个代码片段完全相同吗?
const int VK_ESCAPE = 0x1B;
keybd_event(VK_ESCAPE, 0, 0, 0);
keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0);
和
System.Windows.Forms.SendKeys.SendWait("{ESC}");
如果没有,是否有理由使用其中一个?
答案 0 :(得分:5)
keybd_event()是一个遗留API,这些天你应该使用SendInput()。 SendKeys使用日记钩子或SendInput,具体取决于.config文件设置。日志挂钩是遗留的,仍然是默认的,SendInput在Vista和更高版本上工作得更好,从.NET 3开始可用。因此,粗略地说,是的,它们是相同的。配置设置为:
<appSettings>
<add key="SendKeys" value="SendInput"/>
</appSettings>
答案 1 :(得分:1)