我需要与另一个应用程序交互,它驻留在托盘中。我现在用的是TestStack White:
ProcessStartInfo processStartInfo = new ProcessStartInfo("MyProg.exe");
Application application = Application.AttachOrLaunch(processStartInfo);
_window = application.GetWindows()[0];如果应用程序在此调用之前没有运行,则一切正常,因为启动它,这是可见的。
相反,如果应用程序已经在运行,并且在托盘中,White无法找到任何窗口,我可以在控制台中看到这一点,如下所示:
找不到此应用程序的任何窗口。
...and,经过一些重试,它失败了,只有一个例外。现在,我找到的最佳解决方案是关闭应用程序并重新启动它:
application.Kill();
application = Application.Launch("MyProg.exe");而且这个很管用。但我想有更好的解决办法。
发布于 2015-07-15 15:49:28
打开要自动化的应用程序,并打印所有正在运行的进程名,查找哪个代表应用程序。
添加以下代码..。
Application myApp;
myApp = Application.Attach("ProcessName");希望能帮上忙..。
发布于 2016-06-15 11:18:54
您尝试过附加到explorer.exe进程吗??因为该应用程序的系统托盘图标将驻留在explorer.exe下。就像这样:
您尝试过附加到explorer.exe进程吗??因为该应用程序的系统托盘图标将驻留在explorer.exe下。就像这样:
Process _explorerProcess = Process.GetProcessesByName("explorer")[0];
application = Application.Attach(_explorerProcess.Id);
Window desktopWindow = application.GetWindows()[0];然后,您应该能够与系统托盘图标交互。
https://stackoverflow.com/questions/31168219
复制相似问题