在c#中发送密钥 - 无法发送多个密钥

时间:2014-11-11 06:39:52

标签: c# sendkeys

我实际上是通过我的c#代码激活VB应用程序的按钮单击事件 - 我创建了按钮单击的快捷键,并在下面的代码的帮助下调用。

代码工作正常但按钮2单击事件未触发。

1.Step - 调用VB项目的button1的Click事件

  ProcessStartInfo startInfo = new ProcessStartInfo();
  startInfo.FileName = @"C:\New\MyProj.exe";
  Process process = Process.Start(startInfo);
  IntPtr h = process.MainWindowHandle;
  SetForegroundWindow(h);
  // Send it Alt-X
  SendKeys.SendWait("%x");
  Thread.Sleep(30000);

2.Step - 调用一个bat文件

  Process process1 = null;
  ProcessStartInfo startInfo1 = new ProcessStartInfo();
  startInfo1.FileName = @"C:\App\Test.bat";
  process1 = Process.Start(startInfo1);
  Thread.Sleep(10000);

3.Step - 调用VB项目的button2的Click事件

   //again i am setting main window as my VB project and calling another click event.
   SetForegroundWindow(h);
   SendKeys.SendWait("%h");
   Thread.Sleep(10000);

最终点击事件不起作用,为什么? - Alt + h未触发

1 个答案:

答案 0 :(得分:1)

尝试使用process.kill()终止第一个进程 再次通过

启动VB项目
   startInfo = new ProcessStartInfo();
   startInfo.FileName = @"C:\New\MyProj.exe";
   Process process = Process.Start(startInfo);
   process.WaitForInputIdle();
   SetForegroundWindow(h);
   SendKeys.SendWait("%h");