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

 

 

 

最新评论巧用快捷方式实现自定义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"目录中创建一个以你输入名称为主文件名的快捷方式.

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

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

下边是详细操作步骤:

先上脚本:

 
  1. ' 脚本说明 https://blog.****.net/milaoshu1020/article/details/80711574

  2. ' 脚本版本 v1.3

  3. ' [更新历史]

  4. ' 2020.02.06 v1.3 重构了脚本代码,增加设置安装目录的功能;

  5. ' 2019.06.03 v1.2 增加了安装时自动提权的代码;

  6. ' 2018.12.29 v1.1 新增加了对系统变量PATHEXT的注册,效果是自定义命令可以在命令行中使用(不用加扩展名".LNK");

  7. ' 2018.06.18 v1.0 初始版本,实现了基本功能

  8. Option Explicit

  9.  
  10. Dim fso

  11. set fso = createobject("scripting.filesystemobject")

  12.  
  13. Dim shell

  14. set shell = createobject("wscript.shell")

  15.  
  16. Dim winr_mgr

  17. Set winr_mgr = New winr_manager

  18. winr_mgr.run

  19.  
  20. Class WinR_Manager

  21. Public InstallPath

  22.  
  23. Public Property Get DefaultInstallPath()

  24. defaultinstallpath = "D:\L\自定义Win+R命令.vbs"

  25. End Property

  26.  
  27. Public Property Get InstallDir()

  28. installdir = fso.getparentfoldername(installpath)

  29. End Property

  30.  
  31. Public Property Get InstallDirName()

  32. installdirname = fso.getfolder(installdir).name

  33. End Property

  34.  
  35. Public Property Get InstallBase()

  36. installbase = fso.getbasename(installpath)

  37. End Property

  38.  
  39. Public Sub Run()

  40. If wscript.arguments.count = 0 Then

  41. Dim sh

  42. Set sh = createobject("shell.application")

  43. sh.shellexecute wscript.fullname,"""" & wscript.scriptfullname & """ -install",,"runas"

  44. Else

  45. If wscript.arguments(0) = "-install" Then

  46. installpath = defaultinstallpath

  47.  
  48. Dim strInput

  49. strinput = inputbox("请输入安装路径:",installbase,installdir)

  50.  
  51. If strinput = "" Then

  52. wscript.quit

  53. Else

  54. installpath = fso.buildpath(strinput,fso.getfilename(defaultinstallpath))

  55. End If

  56.  
  57. copyscriptfile

  58. addtosystemenvironment

  59. createinstdirlnk

  60. createsendtolnk

  61.  
  62. msgbox "'" & installpath & "'安装完成,你现在可以:" & vbcrlf & _

  63. "* 使用右键菜单中的'发送到'创建自定义命令." & vbcrlf & _

  64. "* Win+R,输入'" & installdirname & "'以打开命令(快捷方式)列表目录." & vbcrlf & _

  65. "* Win+R,输入'命令(快捷方式名称)'以打开相应的程序或者目录."

  66. Else

  67. prompttoaddlnk

  68. End If

  69. End If

  70. End Sub

  71.  
  72. Sub PromptToAddLnk()

  73. Dim i

  74. For i = 0 To wscript.arguments.count - 1

  75. Dim targetpath

  76. targetpath = wscript.arguments(i)

  77.  
  78. Dim lnkname

  79. lnkname = fso.getbasename(targetpath)

  80.  
  81. Dim lnkpath

  82. do

  83. lnkname = inputbox("请输入'" & fso.getfilename(targetpath) & "'的快捷方式名称(用于运行命令):",,lnkname)

  84. lnkpath = fso.buildpath(fso.getparentfoldername(wscript.scriptfullname),lnkname & ".lnk")

  85. If Not fso.fileexists(lnkpath) Or lnkname = "" Then

  86. Exit Do

  87. End If

  88. Select Case msgbox("'" & lnkpath & "'文件已存在,是否覆盖?",vbexclamation Or vbyesnocancel)

  89. Case vbyes

  90. Exit Do

  91. Case vbcancel

  92. lnkname = ""

  93. Exit Do

  94. End Select

  95. Loop While True

  96.  
  97. If lnkname <> "" Then

  98. Dim shortcut

  99. Set shortcut = shell.createshortcut(lnkpath)

  100. shortcut.targetpath = targetpath

  101. shortcut.save

  102. msgbox "正在创建'" & lnkpath & "' ... 完成!"

  103. End If

  104. Next

  105. End Sub

  106.  
  107. Sub CopyScriptFile()

  108. If StrComp(installpath,wscript.scriptfullname,1) = 0 Then

  109. Exit Sub

  110. End If

  111.  
  112. If Not fso.folderexists(installdir) Then

  113. fso.createfolder(installdir)

  114. End If

  115.  
  116. fso.copyfile wscript.scriptfullname,installpath,true

  117. End Sub

  118.  
  119. Sub AddToSystemEnvironment()

  120. Dim pathname

  121. pathname = installdir & ";"

  122.  
  123. Dim sysenv

  124. Set sysenv = shell.environment("System")

  125.  
  126. If InStr(1,sysenv("PATH"),pathname,1) = 0 Then

  127. sysenv("PATH") = pathname & sysenv("PATH")

  128. End If

  129.  
  130. Dim extname

  131. extname = ";.LNK"

  132.  
  133. If InStr(1,sysenv("PATHEXT"),extname,1) = 0 Then

  134. sysenv("PATHEXT") = sysenv("PATHEXT") & extname

  135. End If

  136. End Sub

  137.  
  138. Sub CreateSendToLnk()

  139. Dim sendtodir

  140. sendtodir = shell.specialfolders("SendTo")

  141.  
  142. Dim lnkpath

  143. lnkpath = fso.buildpath(sendtodir,installbase & ".lnk")

  144.  
  145. Dim shortcut

  146. Set shortcut = shell.createshortcut(lnkpath)

  147. shortcut.targetpath = installpath

  148. shortcut.save

  149. End Sub

  150.  
  151. Sub CreateInstDirLnk()

  152. Dim lnkpath

  153. lnkpath = fso.buildpath(installdir,installdirname & ".lnk")

  154. If Not fso.fileexists(lnkpath) Then

  155. Dim shortcut

  156. Set shortcut = shell.createshortcut(lnkpath)

  157. shortcut.targetpath = installdir

  158. shortcut.save

  159. End If

  160. End Sub

  161. End Class

  162.  
  163.  

为了方便菜鸟,这里同时也提供该脚本文件的下载地址:

链接:https://pan.baidu.com/s/1b6dj9vliihWY6cFDsCUBWA 
提取码:bqfv 
 

安装脚本

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

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

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

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

2.双击这个vbs脚,并执行安装操作.

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

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

 

使用脚本

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

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

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

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

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

至此脚本使用完成.

使用自定义命令

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

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

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

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

3. QQ就运行起来了.

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

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

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

这是我的列表:

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

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

总结

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

FAQ

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

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

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

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

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

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

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

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

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

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

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