Process/ProcessStartInfo 图标

Process/ProcessStartInfo Icon

是否可以为进程定义图标? 例如喜欢:

startInfo.Icon = 'C:\somepath\icon.ico';

该图标应该显示在任务栏中。 实现此目的的唯一可能方法(据我所知)是 link,但除了动态创建 link 并启动它之外,我还想有其他选择。

该图标与该进程的可执行文件相关联,因此您无法更改它。作为唯一的解决方法,您可以创建可执行文件的快捷方式并为快捷方式设置自定义图标。然后你可以将快捷方式文件的路径传递给Process.Start(你需要通过添加对Windows脚本主机对象模型的COM引用项目 > 添加引用 > COM > Windows 编写主机对象模型脚本 使其工作):

using System;
using System.Diagnostics;
using IWshRuntimeLibrary;

class Program
{
    private static void Main(string[] args)
    {
        string shortcutAddress = Environment.GetFolderPath(
            Environment.SpecialFolder.Desktop) + @"\MyProcess.lnk";

        var shell = new WshShell();
        var shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
        shortcut.Description = "New shortcut for a Notepad";
        shortcut.Hotkey = "Ctrl+Shift+N";
        shortcut.TargetPath = Environment.GetFolderPath(
            Environment.SpecialFolder.System) + @"\notepad.exe";
        shortcut.IconLocation = Environment.GetFolderPath(
            Environment.SpecialFolder.System) + @"\calc.exe";
        shortcut.Save();

        Process.Start(shortcutAddress);
    }
}