无法创建名称为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"

无法创建名称为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();
            }
        }
    }
}