如何在 Windows 10 中使用 C# 将程序固定到任务栏
How to pin program to taskbar using C# in Windows 10
如何使用 C# pin/unpin 编程到 Windows 10 中的任务栏?
适用于 Window 7 的解决方案并不总是适用于 Windows 10。
我已经看到 PS 在 Windows 10 中有效的解决方案,这里是转换为 C#
的相同解决方案
public static void PinToTaskBar(string filePath)
{
if (!File.Exists(filePath)) throw new FileNotFoundException(filePath);
var valueData = Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Windows.taskbarpin");
var key2 = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Classes\*", true);
var key3 = key2.CreateSubKey("shell", true);
var key4 = key3.CreateSubKey("{:}", true);
key4.SetValue("ExplorerCommandHandler", valueData.GetValue("ExplorerCommandHandler"));
var path = Path.GetDirectoryName(filePath);
var fileName = Path.GetFileName(filePath);
// create the shell application object
dynamic shellApplication = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));
var directory = shellApplication.NameSpace(path);
var item = directory.ParseName(fileName);
item.InvokeVerb("{:}");
key3.DeleteSubKey("{:}");
if (key3.SubKeyCount == 0 && key3.ValueCount == 0)
{
key2.DeleteSubKey("shell");
}
}
见Pin program to taskbar using PS in Windows 10
如何使用 C# pin/unpin 编程到 Windows 10 中的任务栏?
适用于 Window 7 的解决方案并不总是适用于 Windows 10。
我已经看到 PS 在 Windows 10 中有效的解决方案,这里是转换为 C#
的相同解决方案public static void PinToTaskBar(string filePath)
{
if (!File.Exists(filePath)) throw new FileNotFoundException(filePath);
var valueData = Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Windows.taskbarpin");
var key2 = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Classes\*", true);
var key3 = key2.CreateSubKey("shell", true);
var key4 = key3.CreateSubKey("{:}", true);
key4.SetValue("ExplorerCommandHandler", valueData.GetValue("ExplorerCommandHandler"));
var path = Path.GetDirectoryName(filePath);
var fileName = Path.GetFileName(filePath);
// create the shell application object
dynamic shellApplication = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));
var directory = shellApplication.NameSpace(path);
var item = directory.ParseName(fileName);
item.InvokeVerb("{:}");
key3.DeleteSubKey("{:}");
if (key3.SubKeyCount == 0 && key3.ValueCount == 0)
{
key2.DeleteSubKey("shell");
}
}
见Pin program to taskbar using PS in Windows 10