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);
}
}
是否可以为进程定义图标? 例如喜欢:
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);
}
}