2015-06-19 95 views
3

我使用下面的這種方式在用戶桌面上創建快捷方式。我也希望他們以管理員身份運行。我在StackOverflow中發現了this,但是...我想以編程方式執行相同的操作,而不是手動執行。VB2010:以編程方式在桌面上創建以管理員身份運行的快捷方式

這裏是我的代碼:

Private Sub CreateShortcuts() 
    Dim NewDir = AppFolder.Text 
    Dim WSH As Object = CreateObject("WScript.Shell") 
    WSH = CreateObject("WScript.Shell") 
    Dim MyShortcut, DesktopPath 
    DesktopPath = WSH.SpecialFolders("Desktop") 

    MyShortcut = WSH.CreateShortcut(DesktopPath & "\Application Controller.lnk") 
    MyShortcut.TargetPath = WSH.ExpandEnvironmentStrings(NewDir & "\Application.exe") 
    MyShortcut.WorkingDirectory = WSH.ExpandEnvironmentStrings(NewDir) 
    MyShortcut.WindowStyle = 1 
    MyShortcut.IconLocation = NewDir & "\Application.exe" 
    MyShortcut.Save() 
End Sub 
+0

所以你想繞過安全? – LarsTech

+0

我只希望我的應用程序的快捷方式以管理員身份運行... – Simon

+0

以管理員身份運行並嘗試以管理員身份運行(後者會提示用戶輸入管理信息,前者會繞過此問題)。你想要達到什麼目標? – Sastreen

回答

1

我認爲你正在尋找的「運行方式」命令。可以說,對於目標程序的命令行參數是:

runas /savecred /user:administrator "yourprogrampathhere.exe" 

只要確保名爲「管理員」的用戶確實存在。順便說一下,在快捷方式的屬性窗口中有一個標誌,我只是不知道如何使用WShell方式來完成它,但是這個解決方案可能工作。 該行需要改變:

MyShortcut.TargetPath = WSH.ExpandEnvironmentStrings("runas /savecred /user:administrator """ & NewDir & "\Application.exe""") 

如果你想知道爲什麼我把太多的引號,不要擔心。他們習慣於逃避最初的引號。祝你有美好的一天,我希望你的計劃能夠奏效!

編輯:使用這將提示您輸入管理員密碼。你必須有其中一個,因爲空密碼是不允許的。密碼將被保存,直到下次系統重啓時纔會再次提示。

+0

謝謝我的朋友! – Simon

+0

歡迎您! :)如果您不想保存密碼,請確保從命令中刪除/ savecred。 – ForceMagic

相關問題