请教:SendKeys.Send 为什么会随机发送几次?

idragonet 2012-10-11 07:58:29
请教: SendKeys.Send("{F1}");是发送F1按键,可是为什么会发送好多次?有时候是3次有时候是9次,没有规矩的?按照代码来说应该是1次的。


 private void button1_Click(object sender, EventArgs e)
{
IntPtr hwnd = FindWindow(textBox_classname.Text, null); //查找句柄

if (hwnd != IntPtr.Zero)
{
ShowWindow(hwnd, 9);//显示窗体
SetForegroundWindow(hwnd); //将程序设为当前活动窗口

SendKeys.Send("{F1}");
// System.Threading.Thread.Sleep(5000);
// MessageBox.Show("1", "提示", MessageBoxButtons.OK);
}
else
{
MessageBox.Show("没有启动 [MX3]","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
...全文
120 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
龍月 2012-10-11
  • 打赏
  • 举报
回复
接分来的~ 此消息通过 【CSDN论坛 Winform正式版】 回复!有关此工具
idragonet 2012-10-11
  • 打赏
  • 举报
回复
解决了!!!

“道理很简单。点了按钮,焦点移到上面。

再次触发,你等于又按了enter,等于再次执行了一次这个按钮的事件,结果又触发了一个enter,……

解决方法是,打开程序以后把按钮禁用。或者把焦点移开。 ”


 if (hwnd != IntPtr.Zero)
{
ShowWindow(hwnd, 9);//显示窗体
SetForegroundWindow(hwnd); //将MX3设为当前活动窗口

SendKeys.Send("{F4}");
SendKeys.Send("{F2}");
SendKeys.Send("{F4}");
// System.Threading.Thread.Sleep(5000);
// MessageBox.Show("1", "提示", MessageBoxButtons.OK);
}
x624722359 2012-10-11
  • 打赏
  • 举报
回复
分给我点吧。。你都解决了。

110,896

社区成员

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

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

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