【发布时间】:2011-03-03 11:24:42
【问题描述】:
我有一个将 .exe 下载到临时文件夹并使用 System.Diagnostics.Process 类运行它的应用程序。到目前为止,我已经用它运行了两个不同的应用程序。一个是控制台应用程序,另一个是完整的 Windows 应用程序。 Windows 应用程序在任务栏/标题栏中有它的图标,但控制台应用程序只有一个通用应用程序图标。如果我导航到临时文件夹,控制台应用程序确实有它的图标;并“手动”运行它(在资源管理器中双击)也会给它正确的图标。
这可能是什么原因?
附加信息:ProcessStartInfo 类不提供有关图标的任何标志。我正在使用UseShellExecute=true 和ErrorDialog=true 运行该过程。此外,Windows 应用程序以最大化方式启动,但控制台应用程序被最小化(由 ProcessStartInfo 的 WindowStyle 成员指定)。最后,控制台应用程序的图标仅包含一个 32x32x4bpp 图标,而 Windows 应用程序有大量不同格式可供选择。
补充:我给下载的应用一个合适的图标。还是不行。 :(
添加了 2:哦,对了,Windows 7 x64。
更新:刚刚尝试了更多实验。我创建了一个新的 C++(非托管,不是 .NET)应用程序,其中只包含“按任意键继续”并给它一个图标。图标在资源管理器中正常显示,当我从资源管理器中运行它时,图标在窗口标题栏中。
但是,当我从 Visual Studio 启动应用程序时(通过 F5 或 Ctrl-F5);或者当我通过另一个 .NET 应用程序和 Process.Start() 运行应用程序时 - 图标不会出现。为什么?
【问题讨论】: