使用SendKeys.Send()或SendKeys.Sendwait()发送已挂钩的密钥:

时间:2015-01-07 07:03:22

标签: c# winforms clipboard sendkeys

我已经将Grave ascent(`)用于其他目的:

public static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vlc);  
protected override void WndProc(ref Message m)  
{   if (m.Msg == **0x0312**)  
..... other code ....

如果用户需要输入Grave(`),那么它可以从键盘小键盘的Alt + 96中获得。

但是在代码中我尝试使用相同的代码:

SendKeys.Send("(%96)"); -Doesn't output anything  
SendKeys.Send("%(96)"); -Doesn't output anything  
SendKeys.Send("(%(96))"); -Doesn't output anything  
SendKeys.Send("\u0060"); -Throws Exception Infinite loop  
SendKeys.Send("`");  

- 最后两个命令抛出异常无限循环(因为我实际上正在发送Grave`)

以下组输出Grave(`)

Clipboard.Clear();  
Clipboard.SetText("\u0060");  
SendKeys.Flush();  
SendKeys.Send("^v");  
SendKeys.Flush();  
Clipboard.Clear();  

我试图避免使用它,因为我可能会破坏剪贴板上的一些重要信息 请指导如何在不使用剪贴板的情况下输出(`) 提前致谢。

0 个答案:

没有答案