2015-09-25 75 views
0

我想在桌面上创建.exe文件的.lnk快捷方式,但无法以管理员身份运行我的程序。如何在C#中创建没有管理员权限的快捷方式?

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

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

回答

2

如果你想在当前用户的桌面创建快捷方式,并有UAC问题和cant't以管理员身份运行,您可以在项目中创建一个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")); 
} 
+0

不太我所期待的,但很有趣,它的作品!谢谢! :) – LPrc

2

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