我有一个应用程序,可以将 .exe 下载到临时文件夹并使用以下命令运行它System.Diagnostics.Process
班级。到目前为止,我已经用它运行了两个不同的应用程序。一个是控制台应用程序,另一个是完整的 Windows 应用程序。 Windows 应用程序在任务栏/标题栏中有其图标,但控制台应用程序只有通用应用程序图标。如果我导航到临时文件夹,控制台应用程序确实有它的图标;并“手动”运行它(在资源管理器中双击)也会给它正确的图标。
这可能是什么原因造成的?
附加信息:ProcessStartInfo
类不提供任何有关图标的标志。我正在运行这个过程UseShellExecute=true
and ErrorDialog=true
。此外,Windows 应用程序以最大化方式启动,但控制台应用程序以最小化方式启动(如指定的那样)WindowStyle
成员ProcessStartInfo
)。最后,控制台应用程序的图标仅包含 32x32x4bpp 图标,而 Windows 应用程序有大量不同格式的选择。
Added:我给下载的应用程序一个合适的图标。还是不行。 :(
Added 2:哦,对了,Windows 7 x64。
Update:刚刚尝试了更多实验。我创建了一个新的 C++(非托管,非 .NET)应用程序,其中只需“按任意键继续”,并给它一个图标。该图标在资源管理器中正常显示,当我从资源管理器运行它时,该图标位于窗口标题栏中。
但是,当我从 Visual studio 启动应用程序时(通过 F5 或 Ctrl-F5);或者当我通过另一个 .NET 应用程序运行该应用程序时Process.Start()
- 图标不出现。为什么?
我不确定为什么会发生这种情况,但解决方法是将 ProcessStartInfo 结构中的工作目录设置为 EXE 的目录。
无论 UseShellExecute 是否为真,这都有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)