如何在C#中创建没有管理员权限的快捷方式?

时间:2015-09-25 14:42:44

标签: c# shortcut lnk

我想在桌面上创建.exe文件的.lnk快捷方式,但我无法以管理员身份运行我的程序。

使用Windows Script Host Object对我不起作用,因为我收到Task could not find “AxImp.exe”错误。这个问题可以通过安装Windows SDK来解决,但也需要安装管理员权限。

在C#中是否有办法创建没有管理员权限的.lnk快捷方式(无论是第三方还是内置无关紧要)?

2 个答案:

答案 0 :(得分:2)

您只能为自己在桌面上创建一个快捷方式(即该程序在您的帐户下运行,并且它正在尝试访问您的桌面)。如果要访问其他人的桌面,则需要管理员权限。这就是Windows的工作方式,无论您使用的是C#还是其他任何语言。

答案 1 :(得分:2)

如果您想在当前用户的桌面中创建快捷方式,并且UAC问题并且无法以管理员身份运行,则可以在项目中创建script.vbs,将其设置为在输出目录中复制,然后在需要时运行vbs。

script.vbs的内容:

Dim WshShell
Set WshShell = CreateObject("Wscript.shell")
Dim strDesktop 
strDesktop= WshShell.SpecialFolders("Desktop")
Dim oMyShortcut
Set oMyShortcut = WshShell.CreateShortcut(strDesktop + "\Shortcut to Notepad.lnk")
OMyShortcut.TargetPath = "notepad.exe"
oMyShortCut.Save
Set WshShell= Nothing
Set oMyShortcut= Nothing

运行script.vbs:

private void button1_Click(object sender, EventArgs e)
{
    System.Diagnostics.Process.Start(System.IO.Path.Combine(Application.StartupPath, "script.vbs"));
}