无法创建名称为com.example.myapp.exe的快捷方式
本文关键字:myapp example exe 快捷方式 com 创建 | 更新日期: 2023-09-27 18:01:19
我有一个创建桌面快捷方式的实用程序。我的应用程序,我正在创建一个快捷方式的名称为"com.example.myapp.exe"
这个应用程序在内部网中共享,所有系统将有一个网络驱动器(可能是H:),所以我的应用程序的完整路径将像"H:/network apps/com.example.myapp.exe"
现在我的实用程序正在使用此路径并创建快捷方式到桌面,但问题是创建的链接无效,它指向路径"H:/network apps/com.exe"
代码:string destPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonDesktopDirectory);
string shortcutName = @"com.example.myapp.exe - shortcut.lnk";
string path = System.IO.Path.Combine(destPath, shortcutName);
WshShellClass wsh = new WshShellClass();
IWshRuntimeLibrary.IWshShortcut shortcut = wsh.CreateShortcut(path) as IWshRuntimeLibrary.IWshShortcut;
shortcut.TargetPath = @"H:/network apps/com.example.myapp.exe";
shortcut.WorkingDirectory = @"H:/network apps/";
shortcut.Save();
//created shortcut path is H:/network apps/com.exe
如何纠正这个路径..
注意:如果我使用正常驱动器(C:)文件夹快捷路径是正确的"C:/network apps/com.example.myapp.exe"
我玩了你的代码,并确定如果驱动器号不存在,它不工作。
因为我已经映射了N:,所以我把你的代码改成如下:
shortcut.TargetPath = @"N:'network apps'com.example.myapp.exe";
shortcut.WorkingDirectory = @"N:'network apps'";
它创建了具有正确路径的快捷方式。
为了测试我的理论,我修改了你的代码,为每个驱动器号创建一个链接:
using System;
using IWshRuntimeLibrary;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
for (char letter = Char.Parse("A"); letter <= Char.Parse("Z"); letter++)
{
string destPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonDesktopDirectory);
string shortcutName = string.Format("{0} - com.example.myapp.exe - shortcut.lnk", letter);
string path = System.IO.Path.Combine(destPath, shortcutName);
IWshShell_Class wsh = new IWshShell_Class();
IWshRuntimeLibrary.IWshShortcut shortcut = wsh.CreateShortcut(path) as IWshRuntimeLibrary.IWshShortcut;
shortcut.TargetPath = string.Format(@"{0}:'network apps'com.example.myapp.exe", letter);
shortcut.WorkingDirectory = string.Format(@"{0}:'network apps'", letter);
shortcut.Save();
}
}
}
}