【发布时间】:2019-09-04 12:51:57
【问题描述】:
这是我的代码,如果快捷方式不存在,我需要我的服务为用户桌面上的应用程序创建快捷方式。当我在 Visual Studio 中调试我的应用程序时,它会将快捷方式放在我的桌面上,但是当我在 Windows 上运行服务时,它总是会将快捷方式放在 C 驱动器上而不是我的桌面上。
private void CreateShortcut()
{
object shDesktop = (object)"Desktop";
WshShell shell = new WshShell();
//string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string shortcutAddress = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\CadEisancy.lnk";
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
shortcut.Description = "New shortcut for a Notepad";
shortcut.Hotkey = "Ctrl+Shift+N";
shortcut.TargetPath = @"C:\RankWindowsApp\RankWindowsApp\bin\Debug\RankWindowsApp.exe";
shortcut.IconLocation = @"C:\RankWindowsApp\Icon.ico";
shortcut.Save();
}
protected override void OnStart(string[] args)
{
//Create Shortcut On Desktop
CreateShortcut();
}
我的代码:
![我的代码][1]
【问题讨论】:
-
嗨!请将您的代码发布在
code块中,而不是图像。 -
@LexLi 它没有重复。
-
如果你深入挖掘,你应该明白为什么这个是重复的。 Windows 会话隔离是一个复杂的概念,大多数开发人员都没有意识到,但是每个编写 Windows 服务的人都必须研究它,否则像您这样的问题将得不到回答/解决。链接的线程已经涵盖了必要的背景信息。
标签: c# .net windows-services