我使用 Visual Studio,通常需要以管理员身份运行 - 我已将启动快捷方式设置为默认以管理员身份运行。每次有 Visual Studio 更新时,我都必须手动
- 右键单击“开始”菜单中的项目
- 选择查找物品位置
- 右键单击快捷方式
- 选择属性
- 点击“高级”
- 勾选“以管理员身份运行”选项
有没有办法通过批处理文件执行此操作,每次更新 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
'-------------------------------------------------------------------------------------------------------