[英]send keys in WndProc method in C#
我在 Windows 窗体中覆盖 WndProc 方法并使用 SendKeys。
当 bool 值为 true 时,我想发送“CTRL + N”,而当 bool 值为 false 时,我只想发送“n”。
当我发送“n”发送无限“n”时,我的问题就在这里。
有什么办法可以解决这个问题吗?
public ShiledMaker()
{
InitializeComponent();
this.KeyPreview = true;
RegisterHotKey(Handle, (int)Keys.N, 0, (int)Keys.N);
}
protected override void WndProc(ref Message xMessage)
{
base.WndProc(ref xMessage);
if (bool value)
SendKeys.Send("n");
else
SendKeys.SendWait("^n");
}
布尔值已添加到您的类中。 如果发送了密钥,我会将其更改为 true。 这样按键事件只被调用一次。
class MyClass {
private bool keySent = false;
protected override void WndProc(ref Message xMessage)
{
if (keySent)
return;
base.WndProc(ref xMessage);
if (bool value)
SendKeys.Send("n");
else
SendKeys.SendWait("^n");
keySent = true;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.