巧用快捷方式实现自定义Win+R命令(VBS版).

另一篇文章 巧用快捷方式实现自定义Win+R命令(手动版). 介绍了如何手动创建自定义Win+R命令.

这篇文章将介绍如何使用脚本自动创建并管理自定义Win+R命令.

为什么要使用这个脚本?

大家都知道用Win+R能输入很多windows内置命令,比如:

cmd 可以打开控制台窗口;

regedit 可以打开注册表编辑器;

msconfig 可以打开微软配置程序;

notepad 可以打开笔记本;

mspaint 可以打开画图;

等等,这些命令使用起来很快捷.

那么,我们可不可以自定义自己的命令呢?

是的,用这个脚本就可以自定义Win+R命令.

为什么要用脚本,而不是程序?

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"目录中创建一个以你输入名称为主文件名的快捷方式.

自动进行了上边的步骤以后,就可以使用自定义命令了:

下边是详细操作步骤:

先上脚本:

' 脚本说明 https://blog.csdn.net/milaoshu1020/article/details/80711574
' 脚本版本 v1.1
' installpath是本脚本要安装到的路径.
' d:\L是脚本所在的路径,也是保存快捷方式的目录.
' [更新历史]
' 2018.12.29 v1.1 新增加了对系统变量PATHEXT的注册,效果是自定义命令可以在命令行中使用(不用加扩展名".LNK").
' 2018.06.18 v1.0 初始版本,实现了基本功能.
installpath = "D:\L\自定义Win+R命令.vbs"

set fso = createobject("scripting.filesystemobject")
set shell = createobject("wscript.shell")
installdir = fso.getparentfoldername(installpath)
installbase = fso.getbasename(installpath)

If wscript.arguments.count = 0 Then
	generateinstalllnk
Else
	If wscript.arguments(0) = "-install" Then
		Select Case msgbox("是否安装'" & installbase & "'脚本?",vbokcancel)
		Case cancel
			wscript.quit
		End select
		copyscriptfile
		addinstdirtosystempath
		createinstdirlnk
		createsendtolnk
		msgbox "'" & installpath & "'安装完成,你现在可以:" & vbcrlf & _
			"使用右键菜单中的'发送到'创建自定义命令." & vbcrlf & _
			"Win+R,输入'" & fso.getfolder(installdir).name & "'以打开命令(快捷方式)列表目录." & vbcrlf & _
			"Win+R,输入'命令(快捷方式名称)'以打开相应的程序或者目录."
	Else
		prompttoaddlnk
	End If
End If

Sub GenerateInstallLnk()
	curdir = fso.getparentfoldername(wscript.scriptfullname)
	instlnkpath = fso.buildpath(curdir,fso.getbasename(wscript.scriptfullname) & ".lnk")

	Set shortcut = shell.createshortcut(instlnkpath)
	shortcut.targetpath = wscript.fullname
	shortcut.arguments = """" & wscript.scriptfullname & """ -install"
	shortcut.save

	msgbox "'" & instlnkpath & "'生成完毕,请修改它的属性,选中'用管理员身份运行',然后双击运行它."
End Sub

Sub PromptToAddLnk()
	For i = 0 To wscript.arguments.count - 1
		targetpath = wscript.arguments(i)
		lnkname = fso.getbasename(targetpath)
		do
			lnkname = inputbox("请输入'" & fso.getfilename(targetpath) & "'的快捷方式名称(用于运行命令):",,lnkname)
			lnkpath = fso.buildpath(installdir,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
			End Select
		Loop While True
		If lnkname <> "" Then
			Set shortcut = shell.createshortcut(lnkpath)
			shortcut.targetpath = targetpath
			shortcut.save
			msgbox "'" & lnkpath & "'创建成功!"
		End If
	Next
End Sub

Sub CopyScriptFile()
	If LCase(installpath) = LCase(wscript.scriptfullname) Then
		Exit Sub
	End If

	If Not fso.folderexists(installdir) Then
		fso.createfolder(installdir)
	End If

	fso.copyfile wscript.scriptfullname,installpath,true
End Sub

Sub AddInstDirToSystemPath()
	pathname = installdir & ";"
	Set sysenv = shell.environment("System")
	If InStr(LCase(sysenv("PATH")),LCase(pathname)) = 0 Then
		sysenv("PATH") = pathname & sysenv("PATH")
	End If
	extname = ";.LNK"
	If InStr(LCase(sysenv("PATHEXT")),LCase(extname)) = 0 Then
		sysenv("PATHEXT") = sysenv("PATHEXT") & extname
	End If
End Sub

Sub CreateSendToLnk()
	sendtodir = shell.specialfolders("SendTo")
	lnkpath = fso.buildpath(sendtodir,installbase & ".lnk")
	Set shortcut = shell.createshortcut(lnkpath)
	shortcut.targetpath = installpath
	shortcut.save
End Sub

Sub CreateInstDirLnk()
	lnkpath = fso.buildpath(installdir,fso.getfolder(installdir).name & ".lnk")
	If Not fso.fileexists(lnkpath) Then
		Set shortcut = shell.createshortcut(lnkpath)
		shortcut.targetpath = installdir
		shortcut.save
	End If
End Sub

安装脚本

1. 复制上边的脚本内容到剪贴板,在任意位置新建一个文本文件,打开这个文件,将剪贴板内容拷到里边(此时可以修改脚本内容),保存文件,然后将它更名为"自定义Win+R命令.vbs".

2.双击这个vbs脚本,脚本会创建一个快捷方式:

右键打开快捷方式的属性对话框,在对话框中的"快捷方式"选项卡中,点击"高级(D) ...":

选中"用管理员身份运行",然后点击确定,保存设置.

3. 双击修改了属性的快捷方式并执行安装操作.

4. 至此脚本安装完成,这两个临时文件可以删除了:

使用脚本

1. 在要使用命令的文件或者快捷方式上点右键,选择"发送到->自定义Win+R命令",这里以QQ为例:

2. 在弹出的对话框中输入想要使用的命令名称,比如"qq",并点击确定.

至此脚本使用完成.

使用自定义命令

1. 点击Win键+R键,打开"运行"对话框窗口:

2. 输入自定义命令,如"qq",并点击"确定"(或者直接回车也可以):

3. QQ就运行起来了.

4. 你也可以运行"L",以管理命令,也就是快捷方式列表:

这是我的列表:

列表中的所有快捷方式都可以通过"Win+R"执行.

总结

使用Win+R运行自定义命令可以极大的提高工作效率,而通过此脚本来维护自定义命令又可以进一步提高效率.实在是太方便了!

FAQ

Q:双击VBS脚本文件打开的是记事本怎么办?

A:这是因为系统没有显示扩展名,实际的扩展名仍为".txt",这就需要显示扩展名:

(Win7)在文件浏览器的"组织"菜单中选择"文件夹和搜索选项",在"查看"页面,找到并取消选中"隐藏已知文件的扩展名",然后再修改文件名即可.

(Win10)在浏览器的"查看"选项卡中,选中"文件扩展名"复选框,然后再修改文件名即可.

Q:安装过程中遇安全软件拦截怎么办?

A:这是由于脚本要修改系统的环境变量"Path"路径引起的,脚本不包含任何恶意代码,在安全软件的警告中直接选择"忽略"即可.

Q:我的电脑没有D盘(或者D盘是光驱),我想装到C盘,怎么办?

A:在复制脚本内容(安装脚本第1步)时,将内容复制到记事本后需要修改内容:将 installpath = "D:\L\自定义Win+R命令.vbs" 这一行中的 D: 修改为 C: 就行了,修改后: installpath = "C:\L\自定义Win+R命令.vbs"

猜你喜欢

转载自blog.csdn.net/milaoshu1020/article/details/80711574