编辑快捷方式以管理员身份运行

编辑快捷方式以管理员身份运行

我使用 Visual Studio,通常需要以管理员身份运行 - 我已将启动快捷方式设置为默认以管理员身份运行。每次有 Visual Studio 更新时,我都必须手动

  1. 右键单击“开始”菜单中的项目
  2. 选择查找物品位置
  3. 右键单击快捷方式
  4. 选择属性
  5. 点击“高级”
  6. 勾选“以管理员身份运行”选项

有没有办法通过批处理文件执行此操作,每次更新 Visual Studio 时都可以运行该文件?换句话说,如何编辑快捷方式以便选择“以管理员身份运行”选项?

答案1

Visual Studio 更新会替换可执行文件,但不会更改其名称。

您可以自行创建可执行文件的快捷方式(而不是通过安装),并将其标记为“以管理员身份运行”。这不会受到 Visual Studio 更新的影响。

如果您想为您的项目创建图标,您还可以在调用 Visual Studio 可执行文件时将您的项目添加为参数。

答案2

您可以运行此 vbscript 来创建具有管理员权限的快捷方式:

以管理员身份运行创建快捷方式


Option Explicit
Const Title = "Create a shortcut for the current vbscript or any other application with arguments using an array"
Call RunAsAdmin()

Create_Shortcut Array("Desktop","Recent","shell:Recent")

Create_Shortcut Array("Desktop","User profile","%userprofile%")

Create_Shortcut Array(_
    "Desktop",_
    "NetworkDiagnostics",_
    "%SystemRoot%\system32\msdt.exe",_
    "-skip TRUE -path %Windir%\diagnostics\system\networking -ep NetworkDiagnosticsPNI",_
    "%SystemRoot%\system32\msdt.exe,0",_
    "Network Diagnostics to fix connections problems",_
    "CTRL+ALT+D"_
)
'-------------------------------------------------------------------------------------------------------
Sub Create_Shortcut(rArgs) 
    Dim objShell,objShortCut,ObjShortcutPath,ShortcutName,ShortcutPath,ShortcutLocation
    Dim TargetPath,Arguments,IconLocation,Description,HotKey
    Set objShell = CreateObject("WScript.Shell")
    If UBound(rArgs) > 1 Then
        ShortcutLocation       = cstr(rArgs(0))
        ShortcutPath           = objShell.SpecialFolders(ShortcutLocation)
        ShortcutName           = cstr(rArgs(1))
        Set objShortCut        = objShell.CreateShortcut(ShortcutPath & "\" & ShortcutName & ".lnk")
        TargetPath             = objShell.ExpandEnvironmentStrings(rArgs(2))
        objShortCut.TargetPath = TargetPath 
        If ShortcutPath = "" Then 
            MsgBox "Error The Shortcut Path Does Not Exsists On Your System."_
            ,vbCritical+vbSystemModal,Title
            wscript.quit(1)
        End If
    End If

    If UBound(rArgs) > 2 Then
        Arguments = cstr(rArgs(3))
        objShortCut.Arguments = Arguments
    End If

    If UBound(rArgs) > 3 Then
        IconLocation = cstr(rArgs(4))
        ObjShortCut.IconLocation = IconLocation
    End If

    If UBound(rArgs) > 4 Then
        Description = cstr(rArgs(5))
        ObjShortCut.Description = Description
    End If
    
    If UBound(rArgs) > 5 Then
        HotKey = cstr(rArgs(6))
        ObjShortCut.HotKey = HotKey
    End If
    objShortCut.Save
    On Error Resume Next
    If Err.Number <> 0 Then
        ShowError() 
    Else 
        objShell.Popup "The Shortcut "& chr(34) & ShortcutName & chr(34) &" is created Successfully !"& vbcrlf &_
        "On " & chr(34) & ShortcutPath & chr(34),5,Title,vbInformation+vbSystemModal
    End If
End Sub
'-------------------------------------------------------------------------------------------------------
Sub ShowError()
    ErrDetail = "Description : " & Err.Description & vbCrlf & _
    "Error number : " & Err.Number & vbCrlf & _
    "Error source : " & Err.Source
    MsgBox ErrDetail,vbCritical+vbSystemModal,Title
    Err.clear
End Sub
'-------------------------------------------------------------------------------------------------------
Sub RunAsAdmin()
    If Not WScript.Arguments.Named.Exists("elevate") Then
        CreateObject("Shell.Application").ShellExecute WScript.FullName _
        , chr(34) & WScript.ScriptFullName & chr(34) & " /elevate", "", "runas", 1
        WScript.Quit
    End If
End Sub
'-------------------------------------------------------------------------------------------------------

相关内容