2015-09-25 1 views
0

Я хочу создать ярлык .lnk для файла .exe на рабочем столе, но я не могу запустить свою программу как admin.Как создать ярлык без прав администратора в 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 

Run 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# или какой-либо другой язык.

Смежные вопросы