全局模拟按键的问题

billowWorld 2011-03-08 09:08:43
想实现单击按钮 就激发F11按键 要全局的
我用
SendKeys.SendWait("{F11}");
SendKeys.Flush();

这只是局部的
...全文
220 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
拿凤姐抵债 2011-03-08
  • 打赏
  • 举报
回复
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.F11)
{
//Do what you want to do
return true;
}
return false;
}
kid_wang 2011-03-08
  • 打赏
  • 举报
回复
写在Program里不行吗?
bdmh 2011-03-08
  • 打赏
  • 举报
回复
全局键盘钩子
kid_wang 2011-03-08
  • 打赏
  • 举报
回复
如果你是弄屏幕键盘,那么你的方法不对
这是sendkey.sendwait的msdn解释


使用 SendWait 可以将键击或组合键击发送到活动应用程序,并等待处理键击消息。可以用此方法将键击发送到一个应用程序,并等待完成由这些键击所启动的任何进程。如果必须在其他应用程序完成之后才能继续您的应用程序的话,那么这一点很重要。

注意:
因为没有可用来激活另一个应用程序的托管方法,所以可以在当前应用程序中使用此类,或使用本机 Windows 方法(如 FindWindow 和 SetForegroundWindow)来强制聚焦到其他应用程序上。

注意:
SendKeys 类易出现计时问题,某些开发人员必须解决这些问题。更新的实现仍易出现计时问题,但它略快,可能需要对解决方法进行更改。SendKeys 类尝试先使用以前的实现,如果失败,则使用新实现。因此,在不同的操作系统上,SendKeys 类的行为可能不同。此外,如果 SendKeys 类使用新实现,则将消息发送到另一进程时,SendWait 方法不会等待处理这些消息。

如果无论操作系统如何应用程序都依赖一致的行为,则通过在 app.config 文件中添加下列应用程序设置,可以强制 SendKeys 类使用新实现。

<appSettings>

<add key="SendKeys" value="SendInput"/>

</appSettings>


xxbd123 2011-03-08
  • 打赏
  • 举报
回复
用钩子 HOOK 查一下相关内容


小蜘蛛:
青岛北大青鸟
billowWorld 2011-03-08
  • 打赏
  • 举报
回复
单击我模拟F11我实现了

private void btn_f11_Click(object sender, EventArgs e)
{
SendF11();
}
public void SendF11()
{
Thread.Sleep(5000);
SendKeys.SendWait("{F11}");
SendKeys.Flush();
}

这样只有焦点移到其他窗体才有效效果
但我单击是在这个窗体单击 也就是说我不休眠线程永远都是在本窗体
我想实现的是想windows自带的屏幕键盘那样

kid_wang 2011-03-08
  • 打赏
  • 举报
回复
在Form中写

public Form1()
{
InitializeComponent();

Control.ControlCollection cc = this.Controls;

for (int i = 0; i < cc.Count; i++)
{
if (cc[i].GetType() == typeof(Button))
{
cc[i].Click += new EventHandler(Form1_Click);
}
}
}

void Form1_Click(object sender, EventArgs e)
{
A a = new A(sender);
}


在program里写

class A
{
public A(object sender)
{
if (sender.GetType() == typeof(Button))
{
SendKeys.SendWait("{F11}");
SendKeys.Flush();
}
}
}


实现效果就是点击任意按钮,实现F11事件

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧