模拟键盘输入疑难问题

彗星 2011-07-28 12:57:53
请教大家个问题:
我现在弹出个错误的对话框,有重试和取消按钮,我想模拟键盘输入连续按回车键三次,就是连续点“重试”按钮,我的一下代码可以做到弹出重试按钮对话框后模拟键盘回车一次,但是要模拟三次怎么做呢?代码如下:

private void txttransferno_KeyPress(object sender, KeyPressEventArgs e)
{
timer1.Enabled = true;
this.ShowErrDialog(output.ErrorMessage);
}
private void timer1_Tick(object sender, EventArgs e)
{
SendKey(0x0D);
timer1.Enabled = false;
}
private void SendKey(byte key)
{
const int KEYEVENTF_KEYUP = 0x02;
const int KEYEVENTF_KEYDOWN = 0x00;
keybd_event(key, 0, KEYEVENTF_KEYDOWN, 0);
keybd_event(key, 0, KEYEVENTF_KEYUP, 0);
}

private void ShowErrDialog(string msg)
{
if (MessageBox.Show(msg, this.Text, MessageBoxButtons.RetryCancel, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1) == DialogResult.Retry)
{
ShowErrDialog(msg);
}
}


...全文
102 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
彗星 2011-07-28
  • 打赏
  • 举报
回复
嗯,已经解决了,正如1楼朋友说的那样,我也是这么个思路,就是开始的时候不知道写在哪里,后来测试了下,将以下代码写在ShowErrDialog()方法里之前:
private int count = 0;
private void ShowErrDialog(string msg)
{

if (this.timer1.Enabled==false)
{
this.timer1.Enabled = true;
count++;
if (count == 3)
{
this.timer1.Enabled = false;
count = 0;
}
}

if (MessageBox.Show(msg, this.Text, MessageBoxButtons.RetryCancel, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1) == DialogResult.Retry)
{
ShowErrDialog(msg);
}
}
OK,谢谢各位!!结贴给分
hen_ai_hen_ai_ni 2011-07-28
  • 打赏
  • 举报
回复
模拟三次??定义一个变量,弹出按钮后,判断返回的如果是重试,变量++,外面加个判断,如果变量==3,就行了呗

110,538

社区成员

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

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

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