【发布时间】:2015-12-26 03:05:57
【问题描述】:
我有一个 Windows 窗体应用程序,它可以打开另一个供应商的应用程序。如果供应商的应用程序没有运行,我的代码会打开它并按预期显示。但是,如果供应商的应用程序已经最小化或在系统托盘中运行,那么当我调用Process.Start() 时,我无法使其可见。有没有办法使当前正在运行的应用程序可见/显示,无论它是最小化还是在系统托盘中?
这是我打开另一个应用程序的代码,它仅在VendorProgram.exe 未运行时才有效。如果VendorProgram.exe 正在运行但最小化它不会使其可见/显示,这就是我需要的。
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = "C:\\Program Files (x86)\\VendorProgram.exe";
startInfo.WindowStyle = ProcessWindowStyle.Normal;
Process p = Process.Start(startInfo);
编辑:如果不清楚,我不是要让应用程序自行打开,而是要从我的应用程序中打开一个单独的供应商应用程序。
【问题讨论】:
-
当外部应用程序位于 托盘(不是任务栏)时,没有标准的方法可以“显示自己”...
-
@Idle_Mind “没有标准的方式”是指
.net/c#不可能吗? -
否...在 Windows 本身中,没有简单或万无一失的方法可以从托盘“恢复”应用程序。当您使用托盘图标时显示的窗口/表单可能与最初启动应用程序时显示的表单相同,也可能不同;该应用程序可能会创建表单的新实例。换句话说,主窗体和托盘图标不一定相互绑定。据我所知,也没有 Windows 消息可以发送到托盘图标以使其“恢复”...