巧⽤快捷⽅式实现⾃定义Win+R命令(VBS版).另⼀篇⽂章 介绍了如何⼿动创建⾃定义Win+R命令.
这篇⽂章将介绍如何使⽤脚本⾃动创建并管理⾃定义Win+R命令.
为什么要使⽤这个脚本?
⼤家都知道⽤Win+R能输⼊很多windows内置命令,⽐如:
cmd 可以打开控制台窗⼝;
regedit 可以打开注册表编辑器;
msconfig 可以打开微软配置程序;
notepad 可以打开笔记本;
mspaint 可以打开画图;
等等,这些命令使⽤起来很快捷.
那么,我们可不可以⾃定义⾃⼰的命令呢?
是的,⽤这个脚本就可以⾃定义Win+R命令.
另外,你是否为下载的命令⾏⼯具⽆法在任意路径执⾏(需要⼿动添加到系统路径中,很⿇烦),⽽烦恼呢?
这个v1.1之后的脚本还有⼀个功能,就是把命令⾏⼯具添加到可运⾏的路径中,⽽⽆须做移动⽂件,修改路径等多余的操作,⽐如:命令⾏中在任意位置输⼊ python 可以启动PYTHON解释器();
命令⾏中在任意位置输⼊ iperf 可以启动⽹络测速⼯具();
命令⾏中在任意位置输⼊ ffmpeg 可以启动⾳视频转换⼯具();
命令⾏中在任意位置输⼊ curl 可以启动下载⼯具();
命令⾏中在任意位置输⼊ adb 可以启动安卓调试⼯具();
命令⾏中在任意位置输⼊ aria2c 可以启动全功能下载⼯具();
命令⾏中在任意位置输⼊ upx 可以启动加壳脱壳⼯具();
等等,可以随时⾃⾏添加和修改;
命令⾏⼯具的可执⾏⽂件可以放在任意位置(如果⼯具不⽤安装,则推荐放在"d:\freesoft"⽬录下,⽅便管理);
(命令⾏⼯具的脚本使⽤⽅式与窗体应⽤程序相同,详见下⽂)
为什么要⽤脚本,⽽不是程序?
1. 因为脚本简单,免去了使⽤开发环境的⿇烦.
2. 因为脚本是开源的,不⽤担⼼有病毒.
这个脚本实现了什么功能?
这个脚本⾸先会进⾏安装:
1. 将⾃⾝复制到"D:\L\⾃定义Win+R命令.vbs"(如果⽬录不存在则⾃动创建)
2. 将"D:\L"加到系统的"Path"路径中.
3. 在"D:\L"中创建⼀个它⾃⾝的快捷⽅式(名称为"L").
4. 在"SendTo"(也就是发送到)⽬录创建脚本的快捷⽅式.
(路径是"C:\Users\⽤户名\AppData\Roaming\Microsoft\Windows\SendTo")使⽤"发送到->⾃定义Win+R命令"的时候:
1. 在"D:\L"⽬录中创建⼀个以你输⼊名称为主⽂件名的快捷⽅式.
⾃动进⾏了上边的步骤以后,就可以使⽤⾃定义命令了:
下边是详细操作步骤:
先上脚本:
' 脚本说明 blog.csdn/milaoshu1020/article/details/80711574
' 脚本版本 v1.3
' [更新历史]
' 2020.02.06 v1.3 重构了脚本代码,增加设置安装⽬录的功能;
' 2019.06.03 v1.2 增加了安装时⾃动提权的代码;
' 2018.12.29 v1.1 新增加了对系统变量PATHEXT的注册,效果是⾃定义命令可以在命令⾏中使⽤(不⽤加扩展名".LNK"); ' 2018.06.18 v1.0 初始版本,实现了基本功能
Option Explicit
Dim fso
set fso = createobject("scripting.filesystemobject")
Dim shell
set shell = createobject("wscript.shell")
Dim winr_mgr
Set winr_mgr = New winr_manager
winr_mgr.run
Class WinR_Manager
Public InstallPath
Public Property Get DefaultInstallPath()
defaultinstallpath = "D:\L\⾃定义Win+R命令.vbs"
End Property
Public Property Get InstallDir()
installdir = parentfoldername(installpath)
End Property
Public Property Get InstallDirName()
installdirname = folder(installdir).name
End Property
Public Property Get InstallBase()
installbase = basename(installpath)
End Property
Public Sub Run()
If unt = 0 Then
Dim sh
Set sh = createobject("shell.application")
sh.shellexecute wscript.fullname,"""" & wscript.scriptfullname & """ -install",,"runas"
Else
If wscript.arguments(0) = "-install" Then
installpath = defaultinstallpath
Dim strInput
strinput = inputbox("请输⼊安装路径:",installbase,installdir)
If strinput = "" Then
wscript.quit
Else
installpath = fso.buildpath(filename(defaultinstallpath))
End If
copyscriptfile
addtosystemenvironment
createinstdirlnk
createsendtolnk
msgbox "'" & installpath & "'安装完成,你现在可以:" & vbcrlf & _
"* 使⽤右键菜单中的'发送到'创建⾃定义命令." & vbcrlf & _
"* Win+R,输⼊'" & installdirname & "'以打开命令(快捷⽅式)列表⽬录." & vbcrlf & _
"* Win+R,输⼊'命令(快捷⽅式名称)'以打开相应的程序或者⽬录."
Else
prompttoaddlnk
End If
End If
Sub PromptToAddLnk()
Dim i
For i = 0 To unt - 1
Dim targetpath
targetpath = wscript.arguments(i)
Dim lnkname
lnkname = basename(targetpath)
Dim lnkpath
do
lnkname = inputbox("请输⼊'" & filename(targetpath) & "'的快捷⽅式名称(⽤于运⾏命令):",,lnkname)    lnkpath = fso.parentfoldername(wscript.scriptfullname),lnkname & ".lnk")
If Not fso.fileexists(lnkpath) Or lnkname = "" Then
Exit Do
End If
Select Case msgbox("'" & lnkpath & "'⽂件已存在,是否覆盖?",vbexclamation Or vbyesnocancel)
Case vbyes
Exit Do
Case vbcancel
lnkname = ""
Exit Do
curl是什么命令
End Select
Loop While True
If lnkname <> "" Then
Dim shortcut
Set shortcut = ateshortcut(lnkpath)
shortcut.targetpath = targetpath
shortcut.save
msgbox "正在创建'" & lnkpath & "' ... 完成!"
End If
Next
End Sub
Sub CopyScriptFile()
If StrComp(installpath,wscript.scriptfullname,1) = 0 Then
Exit Sub
End If
If Not fso.folderexists(installdir) Then
End If
End Sub
Sub AddToSystemEnvironment()
Dim pathname
pathname = installdir & ";"
Dim sysenv
Set sysenv = vironment("System")
If InStr(1,sysenv("PATH"),pathname,1) = 0 Then
sysenv("PATH") = pathname & sysenv("PATH")
End If
Dim extname
extname = ";.LNK"
If InStr(1,sysenv("PATHEXT"),extname,1) = 0 Then
sysenv("PATHEXT") = sysenv("PATHEXT") & extname
End Sub
Sub CreateSendToLnk()
Dim sendtodir
sendtodir = shell.specialfolders("SendTo")
Dim lnkpath
lnkpath = fso.buildpath(sendtodir,installbase & ".lnk")
Dim shortcut
Set shortcut = ateshortcut(lnkpath)
shortcut.targetpath = installpath
shortcut.save
End Sub
Sub CreateInstDirLnk()
Dim lnkpath
lnkpath = fso.buildpath(installdir,installdirname & ".lnk")
If Not fso.fileexists(lnkpath) Then
Dim shortcut
Set shortcut = ateshortcut(lnkpath)
shortcut.targetpath = installdir
shortcut.save
End If
End Sub
End Class
为了⽅便菜鸟,这⾥同时也提供该脚本⽂件的下载地址:
安装脚本
1. 复制上边的脚本内容到剪贴板,在任意位置新建⼀个⽂本⽂件,打开这个⽂件,将剪贴板内容拷到⾥边(此时可以修改脚本内容),保存⽂件(保存编码"ANSI"),然后将它更名为"⾃定义Win+R命令.vbs".

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。