批量復制、安裝和設置電腦軟件的批處理腳本程序源代碼-2022年1月6日


批量復制、安裝和設置電腦軟件的批處理腳本程序源代碼-2022年1月6日

https://www.autoahk.com/archives/39241

 

https://www.cnblogs.com/delphixx/p/15771095.html

 

下載鏈接:

 

https://www.123pan.com/s/vfk9-dpCn3

 

https://ds920.lanzoup.com/b01167g5c


密碼: e6c3

 

 

我能力有限,無法使用路徑中帶有空格符的 %~dp0

如果有那位網友有完美的帶空格路徑解決方案請在本文最下面的評論區回復一下,謝謝。

 

D:\ProgramSetup\Setup.bat

  1. rem 批量復制、安裝和設置電腦軟件的批處理腳本程序源代碼-202216
  2. rem D:\ProgramSetup\Setup.bat
  3. rem 可以在局域網共享文件夾、RaiDrive連接群暉WebDAV后映射的虛擬磁盤或者銀燦IS903量產UUSB-CD-ROM中運行此批處理腳本
  4. rem 路徑中不可以有空格
  5. rem 1、復制批處理腳本所在文件夾中的文件到D:\Program
  6. Start /Wait Robocopy.exe %~dp0 D:\Program\ /e /mt /r:3 /w:3 *.*
  7. rem 2、全自動靜默安裝AutoHotkey自動化熱鍵腳本編程環境
  8. Start /Wait D:/Program/AutoHotkey/AutoHotkey_1.1.33.10_setup.exe /S /A32 /U32 /U64 /D=D:/Program/AutoHotkey/
  9. rem 3、等待3秒鍾
  10. ping -n 3 127.0.0.1>nul 2>nul
  11. rem 4、設置AHK類型的自動化熱鍵腳本文件的右鍵菜單關聯(新建、運行、編譯、編輯)
  12. Start D:/Program/AutoHotkey/RightMenuSetup.ahk
  13. rem 作者: 甲殼蟲<jdchenjian@gmail.com>
  14. rem 修改作者: 兔子
  15. rem 5、運行、顯示、最大化並激活 Total Commander 10.00 程序窗口
  16. Start D:\Program\TotalCMD\Run.ahk
  17. rem 6、運行並最小化 Everything 程序窗口
  18. Start /Min D:\Program\Everything\Everything.exe
  19. rem 7、運行Maye(快速啟動工具,用於管理和使用快捷方式、
  20. rem 設置快捷鍵(TotalCMD設置為F8Everything設置為F11))
  21. Start D:\Program\Maye\Maye.exe
  22. rem https://blog.arae.cc/post/25830.html
  23. rem https://github.com/25H/Maya/releases/latest
  24. rem https://www.lanzoux.com/b0bqwqjvg
  25. exit

 

D:/Program/AutoHotkey/RightMenuSetup.ahk

  1. /*
  2. D:/Program/AutoHotkey/RightMenuSetup.ahk
  3. AutoHotkey 版本: 1.x
  4. 操作系統: WinXP
  5. 作者: 甲殼蟲<jdchenjian@gmail.com>
  6. 博客: http://hi.baidu.com/jdchenjian
  7. 腳本說明: 此工具用來修改 AutoHotkey 腳本的右鍵菜單關聯,適用於 AutoHotkey 安裝版、綠色版。
  8. 腳本版本: 2009-01-21
  9. 修改作者: 兔子
  10. 更新說明:
  11. 2010.01.09 之前某個時間,修改AHK路徑、編輯器路徑、編譯器路徑,默認全部在當前目錄下尋找
  12. 2010.01.09 去掉默認在新建菜單的勾
  13. 2010.06.21 如果SCITE為默認編輯器,則復制個人配置文件“SciTEUser.properties”到%USERPROFILE%
  14. 2010.06.25 修正因#NoEnv使%USERPROFILE%變量直接引用無效
  15. 2016.04.18 刪除“2010.06.21”的改動
  16. */
  17. ; --- 20190207 曉亮修改 ---
  18. #NoEnv
  19. SetWorkingDir, %A_ScriptDir%
  20. ; 管理員權限運行
  21. RunWith("admin")
  22. #NoEnv
  23. #SingleInstance, force
  24. SendMode Input
  25. SetWorkingDir %A_ScriptDir%
  26. ; 版本(僅用於顯示)
  27. Script_Version=v1.0.3.2
  28. ; AutoHotkey 原版的相關信息寫在注冊表HKCR主鍵中,
  29. ; 嘗試是當前用戶否有權操作該鍵,如果無權操作HKCR鍵(受限用戶),
  30. ; 可通過操作注冊表HKCU鍵來實現僅當前用戶關聯AHK腳本。
  31. IsLimitedUser:=0
  32. RegWrite, REG_SZ, HKCR, .test
  33. if ErrorLevel
  34. IsLimitedUser:=1
  35. RegDelete, HKCR, .test
  36. if ErrorLevel
  37. IsLimitedUser:=1
  38. if IsLimitedUser=0 ; 非受限用戶操作HKCR
  39. {
  40. RootKey=HKCR
  41. Subkey=
  42. }
  43. else ; 受限用戶操作HKCU
  44. {
  45. RootKey=HKCU
  46. Subkey=Software\Classes\ ; <-- 為簡化后面的腳本,此子鍵須以“\”結尾
  47. }
  48. ; 檢查是否存在AHK注冊表項
  49. RegRead, FileType, %RootKey%, %Subkey%.ahk
  50. if FileType<>
  51. {
  52. RegRead, value, %RootKey%, %Subkey%%FileType%\Shell\Open\Command ;AHK路徑
  53. AHK_Path:=PathGetPath(value)
  54. RegRead, value, %RootKey%, %Subkey%%FileType%\Shell\Edit\Command ;編輯器路徑
  55. Editor_Path:=PathGetPath(value)
  56. RegRead, value, %RootKey%, %Subkey%%FileType%\Shell\Compile\Command ;編譯器路徑
  57. Compiler_Path:=PathGetPath(value)
  58. RegRead, Template_Name, %RootKey%, %Subkey%.ahk\ShellNew, FileName ;模板文件名
  59. }
  60. else
  61. FileType=AutoHotkeyScript
  62. if AHK_Path=
  63. {
  64. IfExist, %A_ScriptDir%\AutoHotkey.exe
  65. AHK_path=%A_ScriptDir%\AutoHotkey.exe
  66. }
  67. if Editor_Path=
  68. {
  69. IfExist, %A_ScriptDir%\SciTE\SciTE.exe
  70. Editor_Path=%A_ScriptDir%\SciTE\SciTE.exe
  71. }
  72. if Compiler_Path=
  73. {
  74. IfExist, %A_ScriptDir%\Compiler\Ahk2Exe.exe
  75. Compiler_Path=%A_ScriptDir%\Compiler\Ahk2Exe.exe
  76. }
  77. if Template_Name=
  78. Template_Name=Template.ahk
  79. ; --- 20190207 曉亮修改 ---
  80. ;設置AHK默認文件夾為 D:\Program\AutoHotkey
  81. AHK_path=D:\Program\AutoHotkey\AutoHotkeyU32.exe
  82. Editor_Path=D:\Program\AutoHotkey\SciTE\SciTE.exe
  83. Compiler_Path=D:\Program\AutoHotkey\Compiler\Ahk2Exe.exe
  84. Gui, Add, Tab, x10 y10 w480 h250 Choose1, 設置|說明
  85. Gui, Tab, 1
  86. Gui, Add, GroupBox, x20 y40 w460 h50 , “運行腳本”關聯的 AutoHotkey
  87. Gui, Add, Edit, x35 y60 w340 h20 vAHK_Path, %AHK_path%
  88. Gui, Add, Button, x385 y60 w40 h20 gFind_AHK, 瀏覽
  89. Gui, Add, GroupBox, x20 y100 w460 h50 , “編輯腳本”關聯的編輯器
  90. Gui, Add, Edit, x35 y120 w340 h20 vEditor_Path, %Editor_Path%
  91. Gui, Add, Button, x385 y120 w40 h20 gChoose_Editor, 瀏覽
  92. Gui, Add, Button, x430 y120 w40 h20 gDefault_Editor, 默認
  93. Gui, Add, GroupBox, x20 y160 w460 h50 , “編譯腳本”關聯的編譯器
  94. Gui, Add, Edit, x35 y180 w340 h20 vCompiler_Path, %Compiler_Path%
  95. Gui, Add, Button, x385 y180 w40 h20 gChoose_Compiler, 瀏覽
  96. Gui, Add, Button, x430 y180 w40 h20 gDefault_Compiler, 默認
  97. Gui, Add, Checkbox, x35 y230 w270 h20 gNew_Script vNew_Script, 右鍵“新建”菜單中增加“AutoHotkey 腳本”
  98. Gui, Add, Button, x310 y230 w80 h20 vEdit_Template gEdit_Template, 編輯腳本模板
  99. Gui, Add, Button, x400 y230 w80 h20 vDelete_Template gDelete_Template, 刪除腳本模板
  100. Gui, Tab, 2
  101. Gui, Font, bold
  102. Gui, Add, Text,, AutoHotkey 腳本關聯工具 ScriptSetting %Script_Version%
  103. Gui, Font
  104. Gui, Font, CBlue underline
  105. Gui, Add, Text, gWebsite, 作者:甲殼蟲 <jdchenjian@gmail.com>`n`n博客:http://hi.baidu.com/jdchenjian
  106. Gui, Font
  107. Gui, Add, Text, w450, 此工具用來修改 AutoHotkey 腳本的右鍵菜單關聯,適用於 AutoHotkey 安裝版、綠色版。
  108. Gui, Add, Text, w450, 您可以用它來修改默認腳本編輯器、編譯器,修改默認的新建腳本模板。設置后,在右鍵菜單中添加“運行腳本”、“編輯腳本”、“編譯腳本”和“新建 AutoHotkey 腳本”等選項。
  109. Gui, Add, Text, w450, 要取消腳本的系統關聯,請按“卸載”。注意:卸載后您將無法通過雙擊來運行腳本,也不能通過右鍵菜單來啟動腳本編輯器...
  110. Gui, Tab
  111. Gui, Add, Button, x100 y270 w60 h20 default gInstall, 設置
  112. Gui, Add, Button, x200 y270 w60 h20 gUninstall, 卸載
  113. Gui, Add, Button, x300 y270 w60 h20 gCancel, 取消
  114. Gui, Show, x250 y200 h300 w500 CEnter, ScriptSetting %Script_Version%
  115. GuiControl, Disable, Edit_Template ; 使“編輯腳本模板”按鈕無效
  116. IfNotExist, %A_WinDir%\ShellNew\%Template_Name%
  117. GuiControl, Disable, Delete_Template ; 使“刪除腳本模板”按鈕無效
  118. ; 當鼠標指向鏈接時,指針變成手形
  119. hCurs:=DllCall("LoadCursor","UInt",NULL,"Int",32649,"UInt") ;IDC_HAND
  120. OnMessage(0x200,"WM_MOUSEMOVE")
  121. ; --- 20190207 曉亮修改 ---
  122. goto,Install
  123. return
  124. ; 改變鼠標指針為手形
  125. WM_MOUSEMOVE(wParam,lParam)
  126. {
  127. global hCurs
  128. MouseGetPos,,,,ctrl
  129. if ctrl in static2
  130. DllCall("SetCursor","UInt",hCurs)
  131. return
  132. }
  133. return
  134. GuiClose:
  135. GuiEscape:
  136. Cancel:
  137. ExitApp
  138. ; 查找 AutoHotkey 主程序
  139. Find_AHK:
  140. Gui +OwnDialogs
  141. FileSelectFile, AHK_Path, 3, , 查找 AutoHotkey.exe, AutoHotkey.exe
  142. if AHK_Path<>
  143. GuiControl,,AHK_Path, %AHK_Path%
  144. gosub Default_Compiler
  145. return
  146. ; 選擇腳本編輯器
  147. Choose_Editor:
  148. Gui +OwnDialogs
  149. FileSelectFile, Editor_Path, 3, , 選擇腳本編輯器, 程序(*.exe)
  150. if Editor_Path<>
  151. GuiControl,,Editor_Path, %Editor_Path%
  152. return
  153. ; 默認腳本編輯器
  154. Default_Editor:
  155. IfExist, %A_ScriptDir%\SciTE\SciTE.exe
  156. Editor_Path=%A_ScriptDir%\SciTE\SciTE.exe
  157. else ifExist, %A_WinDir%\system32\notepad.exe
  158. Editor_Path=%A_WinDir%\system32\notepad.exe
  159. GuiControl,, Editor_Path, %Editor_Path%
  160. return
  161. ; 選擇腳本編譯器
  162. Choose_Compiler:
  163. Gui +OwnDialogs
  164. FileSelectFile, Compiler_Path, 3, , 選擇腳本編譯器, 程序(*.exe)
  165. if Compiler_Path<>
  166. GuiControl,,Compiler_Path, %Compiler_Path%
  167. return
  168. ; 默認腳本編譯器
  169. Default_Compiler:
  170. GuiControlGet, AHK_Path
  171. SplitPath, AHK_Path, ,AHK_Dir
  172. IfExist, %AHK_Dir%\Compiler\Ahk2Exe.exe
  173. {
  174. Compiler_Path=%AHK_Dir%\Compiler\Ahk2Exe.exe
  175. GuiControl,, Compiler_Path, %Compiler_Path%
  176. }
  177. return
  178. ; 設置
  179. Install:
  180. Gui, Submit
  181. IfNotExist, %AHK_Path%
  182. {
  183. MsgBox, 16, ScriptSetting %Script_Version%, AutoHotkey 路徑錯誤
  184. return
  185. }
  186. IfNotExist, %Editor_Path%
  187. {
  188. MsgBox, 16, ScriptSetting %Script_Version%, 編輯器路徑錯誤
  189. return
  190. }
  191. IfNotExist, %Compiler_Path%
  192. {
  193. MsgBox, 16, ScriptSetting %Script_Version%, 編譯器路徑錯誤
  194. return
  195. }
  196. ; 寫入注冊表
  197. RegWrite, REG_SZ, %RootKey%, %Subkey%.ahk,, %FileType%
  198. if New_Script=1
  199. {
  200. RegWrite, REG_SZ, %RootKey%, %Subkey%.ahk\ShellNew, FileName, %Template_Name%
  201. IfNotExist, %A_WinDir%\ShellNew\%Template_Name%
  202. gosub Create_Template
  203. }
  204. else
  205. {
  206. ; --- 20190207 曉亮修改 ---
  207. ; --- 此處不要刪除右鍵新建ahk文件的菜單所以注釋掉此代碼
  208. ;RegDelete, %RootKey%, %Subkey%.ahk\ShellNew
  209. IfExist, %A_WinDir%\ShellNew\%Template_Name%
  210. gosub Delete_Template
  211. }
  212. RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%,, AutoHotkey 腳本
  213. RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\DefaultIcon,, %AHK_Path%`,1
  214. RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell,, Open
  215. RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Open,, 運行腳本
  216. RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Open\Command,, "%AHK_Path%" "`%1" `%*
  217. RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Edit,, 編輯腳本
  218. RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Edit\Command,, "%Editor_Path%" "`%1"
  219. RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile,, 編譯腳本
  220. IfInString, Compiler_Path, Ahk2Exe.exe
  221. RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile\Command,, "%Compiler_Path%" /in "`%1"
  222. else
  223. RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile\Command,, "%Compiler_Path%" "`%1"
  224. /* 新版的scite不需要將“SciTEUser.properties”放在“USERPROFILE”目錄下了
  225. if Editor_Path=%A_ScriptDir%\SciTE\SciTE.exe
  226. {
  227. EnvGet,USERPROFILE,USERPROFILE
  228. FileCopy,%A_ScriptDir%\SciTE\SciTEUser.properties,%USERPROFILE%\SciTEUser.properties,1
  229. }
  230. */
  231. ;MsgBox, 64, ScriptSetting %Script_Version%, 設置完畢 !
  232. ExitApp
  233. ; 卸載
  234. Uninstall:
  235. ; --- 20190207 曉亮修改 ---
  236. ;MsgBox, 36, ScriptSetting %Script_Version%
  237. ;, 注意:卸載后您將無法通過雙擊來運行腳本,也不能通過右鍵菜單來啟動腳本編輯器...`n`n確定要取消 AHK 腳本的系統關聯嗎 ?
  238. ;IfMsgBox, Yes
  239. ;{
  240. ;RegDelete, %RootKey%, %Subkey%.ahk
  241. ;RegDelete, %RootKey%, %Subkey%%FileType%
  242. ;gosub Delete_Template
  243. ;ExitApp
  244. ;}
  245. return
  246. ; 編輯腳本模板
  247. Edit_Template:
  248. GuiControlGet, Editor_Path
  249. IfNotExist, %Editor_Path%
  250. {
  251. MsgBox, 64, ScriptSetting %Script_Version%, 腳本編輯器路徑錯誤 !
  252. return
  253. }
  254. IfNotExist, %A_WinDir%\ShellNew\%Template_Name%
  255. gosub Create_Template
  256. Run, %Editor_Path% %A_WinDir%\ShellNew\%Template_Name%
  257. return
  258. ; 使編輯腳本模板按鈕有效/無效
  259. New_Script:
  260. GuiControlGet, New_Script
  261. if New_Script=0
  262. GuiControl, Disable, Edit_Template
  263. else
  264. GuiControl, Enable, Edit_Template
  265. return
  266. ; 新建腳本模板
  267. Create_Template:
  268. GuiControlGet, AHK_Path
  269. FileGetVersion, AHK_Ver, %AHK_Path%
  270. FileAppend,
  271. (
  272. /*
  273. AutoHotkey 版本: %AHK_Ver%
  274. 操作系統: %A_OSVersion%
  275. 作者: %A_UserName%
  276. 網站: http://www.AutoHotkey.com
  277. 腳本說明:
  278. 腳本版本: v1.0
  279. */
  280. #NoEnv
  281. SendMode Input
  282. SetWorkingDir `%A_ScriptDir`%
  283. ), %A_WinDir%\ShellNew\%Template_Name%
  284. GuiControl, Enable, Delete_Template ; 使“刪除腳本模板”按鈕有效
  285. return
  286. ; 刪除腳本模板
  287. Delete_Template:
  288. ; --- 20190207 曉亮修改 ---
  289. ;MsgBox, 36, ScriptSetting %Script_Version%
  290. ; , 要刪除當前的 AHK 腳本模板嗎 ?`n`n腳本模板被刪除后,仍可通過本工具重建模板。
  291. ;IfMsgBox, Yes
  292. ;FileDelete, %A_WinDir%\ShellNew\%Template_Name%
  293. ;GuiControl, Disable, Delete_Template ; 使“刪除腳本模板”按鈕無效
  294. return
  295. ; 打開網站
  296. Website:
  297. Run, http://hi.baidu.com/jdchenjian
  298. return
  299. ; 從注冊表值字符串中提取路徑
  300. PathGetPath(pSourceCmd)
  301. {
  302. local Path, ArgsStartPos = 0
  303. if (SubStr(pSourceCmd, 1, 1) = """")
  304. Path := SubStr(pSourceCmd, 2, InStr(pSourceCmd, """", false, 2) - 2)
  305. else
  306. {
  307. ArgsStartPos := InStr(pSourceCmd, " ")
  308. if ArgsStartPos
  309. Path := SubStr(pSourceCmd, 1, ArgsStartPos - 1)
  310. else
  311. Path = %pSourceCmd%
  312. }
  313. return Path
  314. }
  315. ; 強制自身進程以 管理員權限 或 普通權限 或 ANSI 或 U32 或 U64 版本運行。
  316. ; 例1: runwith("admin","u32") 強制自身以 u32 + 管理員權限 運行。
  317. ; 例2: runwith("","ansi") 強制自身以 ansi 版本運行(權限不變)。
  318. ; 例3: runwith("normal") 強制自身以 普通權限 運行(版本不變)。
  319. RunWith(RunAsAdmin:="Default", ANSI_U32_U64:="Default")
  320. {
  321. ; 格式化預期的模式
  322. switch, RunAsAdmin
  323. {
  324. case "Normal","Standard","No","0": RunAsAdmin:=0
  325. case "Admin","Yes","1": RunAsAdmin:=1
  326. case "default": RunAsAdmin:=A_IsAdmin
  327. default: RunAsAdmin:=A_IsAdmin
  328. }
  329. switch, ANSI_U32_U64
  330. {
  331. case "A32","ANSI","A": ANSI_U32_U64:="AutoHotkeyA32.exe"
  332. case "U32","X32","32": ANSI_U32_U64:="AutoHotkeyU32.exe"
  333. case "U64","X64","64": ANSI_U32_U64:="AutoHotkeyU64.exe"
  334. case "default": ANSI_U32_U64:="AutoHotkey.exe"
  335. default: ANSI_U32_U64:="AutoHotkey.exe"
  336. }
  337. ; 獲取傳遞給 “.ahk” 的用戶參數(不是 /restart 之類傳遞給 “.exe” 的開關參數)
  338. for k, v in A_Args
  339. {
  340. if (RunAsAdmin=1)
  341. {
  342. ; 轉義所有的引號與轉義符號
  343. v:=StrReplace(v, "\", "\\")
  344. v:=StrReplace(v, """", "\""")
  345. ; 無論參數中是否有空格,都給參數兩邊加上引號
  346. ; Run 的內引號是 "
  347. ScriptParameters .= (ScriptParameters="") ? """" v """" : A_Space """" v """"
  348. }
  349. else
  350. {
  351. ; 轉義所有的引號與轉義符號
  352. ; 注意要轉義兩次 Run 和 RunAs.exe
  353. v:=StrReplace(v, "\", "\\")
  354. v:=StrReplace(v, """", "\""")
  355. v:=StrReplace(v, "\", "\\")
  356. v:=StrReplace(v, """", "\""")
  357. ; 無論參數中是否有空格,都給參數兩邊加上引號
  358. ; RunAs.exe 的內引號是 \"
  359. ScriptParameters .= (ScriptParameters="") ? "\""" v "\""" : A_Space "\""" v "\"""
  360. }
  361. }
  362. ; 判斷當前 exe 是什么版本
  363. if (!A_IsUnicode)
  364. RunningEXE:="AutoHotkeyA32.exe"
  365. else if (A_PtrSize=4)
  366. RunningEXE:="AutoHotkeyU32.exe"
  367. else if (A_PtrSize=8)
  368. RunningEXE:="AutoHotkeyU64.exe"
  369. ; 運行模式與預期相同,則直接返回。 ANSI_U32_U64="AutoHotkey.exe" 代表不對 ahk 版本做要求。
  370. if (A_IsAdmin=RunAsAdmin and (ANSI_U32_U64="AutoHotkey.exe" or ANSI_U32_U64=RunningEXE))
  371. return
  372. ; 如果當前已經是使用 /restart 參數重啟的進程,則報錯避免反復重啟導致死循環。
  373. else if (RegExMatch(DllCall("GetCommandLine", "str"), " /restart(?!\S)"))
  374. {
  375. 預期權限:=(RunAsAdmin=1) ? "管理員權限" : "普通權限"
  376. 當前權限:=(A_IsAdmin=1) ? "管理員權限" : "普通權限"
  377. ErrorMessage=
  378. (LTrim
  379. 預期使用: %ANSI_U32_U64%
  380. 當前使用: %RunningEXE%
  381. 預期權限: %預期權限%
  382. 當前權限: %當前權限%
  383. 程序即將退出。
  384. )
  385. MsgBox 0x40030, 運行狀態與預期不一致, %ErrorMessage%
  386. ExitApp
  387. }
  388. else
  389. {
  390. ; 獲取 AutoHotkey.exe 的路徑
  391. SplitPath, A_AhkPath, , Dir
  392. if (RunAsAdmin=0)
  393. {
  394. ; 強制普通權限運行
  395. switch, A_IsCompiled
  396. {
  397. ; %A_ScriptFullPath% 必須加引號,否則含空格的路徑會被截斷。%ScriptParameters% 必須不加引號,因為構造時已經加了。
  398. ; 工作目錄不用單獨指定,默認使用 A_WorkingDir 。
  399. case, "1": Run, RunAs.exe /trustlevel:0x20000 "\"%A_ScriptFullPath%\" /restart %ScriptParameters%",, Hide
  400. default: Run, RunAs.exe /trustlevel:0x20000 "\"%Dir%\%ANSI_U32_U64%\" /restart \"%A_ScriptFullPath%\" %ScriptParameters%",, Hide
  401. }
  402. }
  403. else
  404. {
  405. ; 強制管理員權限運行
  406. switch, A_IsCompiled
  407. {
  408. ; %A_ScriptFullPath% 必須加引號,否則含空格的路徑會被截斷。%ScriptParameters% 必須不加引號,因為構造時已經加了。
  409. ; 工作目錄不用單獨指定,默認使用 A_WorkingDir 。
  410. case, "1": Run, *RunAs "%A_ScriptFullPath%" /restart %ScriptParameters%
  411. default: Run, *RunAs "%Dir%\%ANSI_U32_U64%" /restart "%A_ScriptFullPath%" %ScriptParameters%
  412. }
  413. }
  414. ExitApp
  415. }
  416. }

 

D:\Program\TotalCMD\Run.ahk

  1. ;
  2. ;/*
  3. ; D:\Program\TotalCMD\Run.ahk
  4. ;===========================================
  5. ; 設置激活或者隱藏 Total Commander 10.00 主窗口的快捷鍵為 F8
  6. ; https://www.autoahk.com/archives/37780
  7. ; https://www.cnblogs.com/delphixx/p/15718194.html
  8. ;
  9. ; 腳本作者 : ds920
  10. ; 最新版本 : 1.1
  11. ; 更新時間 : 2021年12月22日
  12. ;
  13. ; 用法: (需要最新版本 AHK v1.1.31+)
  14. ; 1. 到飛揚時空的新浪博客下載並安裝TotalCommander中文增強版到文件夾D:/TotalCMD
  15. ; 2. 將本腳本保存為"RunTC.ahk"並復制到D:/TotalCMD文件夾中
  16. ; 3. 使用Maye來設置RunTC.ahk的熱鍵為 F8
  17. ;
  18. ; 升級更新歷史:
  19. ; 版本1.0 2021年12月22日 新建 創建此AutoHotkey腳本並測試通過F8熱鍵功能
  20. ; 版本1.1 2021年12月22日 修改 調整刪除 SetTimer 定時器時判斷TC主窗口是否激活的順序
  21. ; 把基於窗口類的激活判斷語句"if(WinActive("ahk_class" TTOTAL_CMD))"放在最外層
  22. ; 防止有相同標題的窗口激活時(例如:相同標題的瀏覽器等等)窗口激活誤判
  23. ;
  24. ; 由於AutoHotkey的Hotkey語句設置的熱鍵必需在任務欄或者桌面進程激活時才有效,
  25. ; 所以請使用Maye來設置Total Commander的熱鍵 F8
  26. ; https://blog.arae.cc/post/25830.html
  27. ; https://github.com/25H/Maya/releases/
  28. ;
  29. ; 可以用 Total Commander 訪問用RaiDrive異地遠程連接群暉WebDAV文件服務並映射成的本地虛擬磁盤盤符 Z: 分區
  30. ; 可以用 Total Commander 訪問用NetDrive2異地遠程連接群暉SFTP文件服務並映射成的本地虛擬磁盤盤符 Y: 分區
  31. ; 可以用支持 Total Commander的WebDAV文件服務訪問插件異地遠程連接群暉WebDAV文件服務中的網絡共享文件夾
  32. ; 可以用KeePass或者KeePass2Android來連接堅果雲或者
  33. ; 群暉NAS的WebDAV文件服務來管理網址、用戶名、賬號、密碼、口令、暗號、紀念日等個人敏感隱私信息和數據
  34. ; 可以用FileZilla Pro 專業版軟件異地遠程連接群暉的WebDAV文件服務並
  35. ; 批量上傳文件夾到群暉的 RAID 1 鏡像存儲池中的共享文件夾之中
  36. ; 可以用騰訊文檔的電腦客戶端來新建在線文檔和在線表格來進行辦公文檔和辦公表格的分享和協作
  37. ; 可以用Bulk Rename Utility 2.7.1.2來批量重命名或者編號群暉WebDAV文件服務中的共享文件夾中的大量文件
  38. ; 可以用Double Killer Pro V 2.1.0.104來批量刪除群暉WebDAV文件服務中的共享文件夾中的重復文件
  39. ; 可以安裝並升級更新"火絨安全軟件"來防殺電腦病毒木馬惡意軟件並攔截垃圾廣告彈出的騷擾窗口
  40. ; 可以用SGI備份還原映像總裁鏡像總裁一鍵還原工具軟件來備份保護Windows操作系統和
  41. ; 電腦中應用程序軟件和設置到GHO系統鏡像文件
  42. ; SGI備份還原映像總裁鏡像總裁一鍵還原工具軟件官方網址是 https://www.sysceo.com/Software-softwarei-id-253.html
  43. ; 以便今后用杏雨梨雲啟動維護系統可啟動固態U盤來恢復電腦系統應用程序軟件GHO系統鏡像文件到電腦的系統分區C盤
  44. ; 可以用Shadow Defender 影子衛士來保護Windows操作系統和電腦中應用程序軟件的設置,
  45. ; 防止電腦軟件設置被未授權的用戶和程序非法更改和破壞
  46. ; 如果無法安裝 Shadow Defender 影子衛士時可以用"DeepFreeze冰點還原精靈"或者
  47. ; "PowerShadow影子系統"或者"Returnil Virtual System(RVS)"來代替影子衛士
  48. ;
  49. ;===========================================
  50. ;*/
  51. #SingleInstance,Ignore
  52. loop,5
  53. {
  54. DetectHiddenWindows,On
  55. Sleep,5
  56. IfWinExist,QQ595076941_AutoAHKRun
  57. ExitApp
  58. }
  59. Gui, Show, Hide,QQ595076941_AutoAHKRun
  60. #Persistent
  61. ; #NoTrayIcon
  62. DetectHiddenWindows,On
  63. SetTitleMatchMode,2
  64. ; 設置激活或者隱藏 Total Commander 10.00 主窗口的快捷鍵為 F8
  65. ; Hotkey,F8,ActivateOrHideWindowHotkey
  66. ActivateOrHideWindowHotkey()
  67. return
  68. ; ——————————————————–
  69. ActivateOrHideWindowHotkey()
  70. {
  71. ; MsgBox,PressedHotkey檢測到已經按下快捷鍵
  72. Sleep,5
  73. IfWinActive,ahk_class TTOTAL_CMD
  74. {
  75. Sleep,5
  76. if(WinActive(ahk_class TTOTAL_CMD))
  77. {
  78. Sleep,5
  79. WinGetClass, MyClass, A
  80. IfInString,MyClass,TTOTAL_CMD
  81. {
  82. Sleep,5
  83. IfWinActive,Total Commander
  84. {
  85. TCTitle:="Total Commander"
  86. Sleep,5
  87. WinGetActiveTitle,Title
  88. IfInString,Title,%TCTitle%
  89. {
  90. ; MsgBox,MinimizeWindow最小化指定窗口
  91. WinMinimize,Total Commander ahk_class TTOTAL_CMD
  92. Sleep,5
  93. ExitApp
  94. }
  95. }
  96. }
  97. }
  98. }
  99. else
  100. {
  101. ; MsgBox,ActivateWindow顯示並且最大化並且激活指定窗口
  102. SetTimer,ActivateWindowTimer,20
  103. }
  104. }
  105. ; ——————————————————–
  106. ;根據窗口類名顯示並激活Total Commander窗口
  107. ActivateWindowTimer()
  108. {
  109. ; 1、如果程序沒有運行則運行程序,這里我把可執行文件名改成了TotalCMD-v10.exe
  110. Process,Exist,TotalCMD-v10.exe
  111. if (%ErrorLevel%=0)
  112. {
  113. IfExist,D:/Program/TotalCMD/TotalCMD.exe
  114. {
  115. Run,D:/Program/TotalCMD/TotalCMD.exe
  116. }
  117. else
  118. {
  119. MsgBox,找不到文件 D:/Program/TotalCMD/TotalCMD.exe
  120. return
  121. }
  122. }
  123. ; 2、顯示並激活(切換到)指定窗口
  124. WinShow,Total Commander ahk_class TTOTAL_CMD
  125. WinMove,Total Commander ahk_class TTOTAL_CMD,,0,0,A_ScreenWidth,A_ScreenHeight
  126. WinActivate,Total Commander ahk_class TTOTAL_CMD
  127. WinMaximize,Total Commander ahk_class TTOTAL_CMD
  128. Sleep,5
  129. DetectHiddenWindows,On
  130. SetTitleMatchMode,2
  131. WinGet, WinID, ID,Total Commander ahk_class TTOTAL_CMD
  132. DllCall("SwitchToThisWindow", "UInt", WinID, "UInt", 1)
  133. ; 3、檢查指定窗口是否激活成功,
  134. ; 假如激活成功則退出Timer計時器循環執行,
  135. ; 如果激活失敗則繼續嘗試激活指定窗口
  136. Sleep,5
  137. IfWinActive,ahk_class TTOTAL_CMD
  138. {
  139. Sleep,5
  140. if(WinActive(ahk_class TTOTAL_CMD))
  141. {
  142. Sleep,5
  143. WinGetClass, MyClass, A
  144. IfInString,MyClass,TTOTAL_CMD
  145. {
  146. Sleep,5
  147. IfWinActive,Total Commander
  148. {
  149. TCTitle:="Total Commander"
  150. Sleep,5
  151. WinGetActiveTitle,Title
  152. IfInString,Title,%TCTitle%
  153. {
  154. SetTimer,ActivateWindowTimer,Delete
  155. Sleep,5
  156. ExitApp
  157. }
  158. }
  159. }
  160. }
  161. }
  162. }
  163. ;================= The End =================
  164. ;
  165. /*
  166. ;================= 根據窗口類名激活或者隱藏窗口的AutoHotkey函數 =================
  167. ; 請使用 窗口信息工具 AHKInfo 1.3.5 獲取窗口的類名
  168. ;根據窗口類名激活或者隱藏窗口
  169. ActivateOrHideWindow(VarExeFileName:="TotalCMD-v10″,VarWinClassName:="TTOTAL_CMD")
  170. {
  171. ; 1、如果程序沒有運行則運行程序
  172. Process,Exist,%VarExeFileName%.exe
  173. if (%ErrorLevel%=0)
  174. {
  175. IfExist,%VarExeFileName%.exe
  176. {
  177. Run,%VarExeFileName%.exe
  178. return
  179. }
  180. else
  181. {
  182. MsgBox,找不到文件 %VarExeFileName%.exe
  183. return
  184. }
  185. }
  186. ; 2、如果窗口未置頂則顯示並激活(切換到)指定窗口
  187. IfWinNotActive,ahk_class %VarWinClassName%
  188. {
  189. loop,2
  190. {
  191. Sleep,50
  192. WinShow,ahk_class %VarWinClassName%
  193. ;~ WinMaximize,ahk_class %VarWinClassName%
  194. Sleep,50
  195. WinGet, WinID, ID,ahk_class %VarWinClassName%
  196. Sleep,50
  197. DllCall("SwitchToThisWindow", "UInt", WinID, "UInt", 1)
  198. }
  199. return
  200. }
  201. ; 3、如果窗口已經顯示並置頂則隱藏窗口
  202. ;~ WinMinimize,ahk_class %VarWinClassName%
  203. WinHide,ahk_class %VarWinClassName%
  204. }
  205. */
  206. ;

 

D:\ProgramSetup\Tree.txt

  1. 軟件 的文件夾 PATH 列表
  2. 卷序列號為 ILOV-EYOU
  3. D:.
  4. ├─AutoHotkey
  5. ├─AHK電子書
  6. ├─Compiler
  7. ├─Icon
  8. └─SciTE
  9. ├─extensions
  10. ├─locales
  11. ├─toolbar
  12. └─Lib
  13. ├─tools
  14. ├─AHK 正則終結者
  15. └─Lib
  16. ├─AHK 爬蟲終結者
  17. ├─jsoneditor-5.15.0
  18. └─dist
  19. └─img
  20. └─Lib
  21. ├─AHK 腳本關聯工具
  22. ├─AHK-Rare
  23. ├─assets
  24. ├─lib
  25. └─Highlighters
  26. └─tools
  27. ├─ahkinfo
  28. ├─AhkSpy
  29. ├─AHK_Window_Info
  30. ├─Au3Record
  31. ├─Auto-GUI
  32. ├─Constantine
  33. ├─Icons
  34. ├─Include
  35. ├─Lib
  36. └─Settings
  37. ├─Auto-Syntax-Tidy
  38. └─Syntax
  39. ├─AutoItMacroGenerator
  40. ├─AutoScriptWriter
  41. ├─CLISD
  42. ├─ColorFinder
  43. └─Lib
  44. ├─eXeScope
  45. ├─FindText
  46. ├─GenDocs
  47. ├─Demo
  48. └─Lib
  49. ├─iCodeRepository3
  50. ├─Clipboard_monitor
  51. ├─help
  52. └─pictures
  53. └─愛碼源碼倉庫
  54. ├─AutoHotkey
  55. └─AutoHotkey2
  56. ├─Lib
  57. └─DebugVars
  58. ├─MacroCreator
  59. ├─Documentation
  60. ├─Lib
  61. └─MacroCreator_Help-doc
  62. ├─Examples
  63. └─Images
  64. ├─Lang
  65. ├─LIB
  66. └─Resources
  67. └─Icons
  68. ├─MagicBox
  69. ├─Examples
  70. ├─Functions
  71. ├─Icons
  72. ├─Lib
  73. └─Settings
  74. ├─SciTE交互示例
  75. ├─SmartGUI
  76. ├─Spy++
  77. ├─TestSuite
  78. ├─ViewWizard
  79. ├─WindowSpy
  80. ├─智能操作
  81. └─自動更新
  82. ├─user
  83. ├─Extensions
  84. ├─Macros
  85. ├─Scriptlets
  86. ├─Settings
  87. └─Styles
  88. ├─中文幫助
  89. └─技巧
  90. ├─Everything
  91. ├─FileZillaPro
  92. ├─Data
  93. ├─docs
  94. ├─filezillacfg
  95. ├─KeePass
  96. ├─Languages
  97. ├─Plugins
  98. └─XSL
  99. ├─locales
  100. ├─an
  101. ├─ar
  102. ├─az
  103. ├─bg_BG
  104. ├─ca
  105. ├─ca_ES@valencia
  106. ├─co
  107. ├─cs_CZ
  108. ├─cy
  109. ├─da
  110. ├─de
  111. ├─el
  112. ├─es
  113. ├─et
  114. ├─eu
  115. ├─fa_IR
  116. ├─fi_FI
  117. ├─fr
  118. ├─gl_ES
  119. ├─he_IL
  120. ├─hr
  121. ├─hu_HU
  122. ├─hy
  123. ├─id_ID
  124. ├─is
  125. ├─it
  126. ├─ja_JP
  127. ├─ka
  128. ├─kab
  129. ├─km_KH
  130. ├─ko_KR
  131. ├─ku
  132. ├─ky
  133. ├─lo_LA
  134. ├─lt_LT
  135. ├─lv_LV
  136. ├─mk_MK
  137. ├─nb_NO
  138. ├─ne
  139. ├─nl
  140. ├─nn_NO
  141. ├─oc
  142. ├─pl_PL
  143. ├─pt_BR
  144. ├─pt_PT
  145. ├─ro_RO
  146. ├─ru
  147. ├─sk_SK
  148. ├─sl_SI
  149. ├─sr
  150. ├─sv
  151. ├─ta
  152. ├─th_TH
  153. ├─tr
  154. ├─uk_UA
  155. ├─vi_VN
  156. ├─zh_CN
  157. └─zh_TW
  158. ├─resources
  159. ├─16x16
  160. ├─20x20
  161. ├─24x24
  162. ├─32x32
  163. ├─480x480
  164. ├─48x48
  165. ├─blukis
  166. ├─16x16
  167. ├─32x32
  168. └─48x48
  169. ├─classic
  170. └─16x16
  171. ├─cyril
  172. └─16x16
  173. ├─default
  174. └─480x480
  175. ├─flatzilla
  176. ├─16x16
  177. ├─24x24
  178. ├─32x32
  179. └─48x48
  180. ├─lone
  181. ├─16x16
  182. ├─32x32
  183. └─48x48
  184. ├─minimal
  185. ├─16x16
  186. └─32x32
  187. ├─opencrystal
  188. ├─16x16
  189. ├─20x20
  190. ├─24x24
  191. ├─32x32
  192. └─48x48
  193. ├─sun
  194. └─48x48
  195. ├─tango
  196. ├─16x16
  197. ├─32x32
  198. └─48x48
  199. └─xrc
  200. └─手動復制備份的配置和數據文件
  201. ├─7z1900
  202. ├─7zSfxTool
  203. ├─Plugin
  204. └─SFX 模塊
  205. └─TrafficMonitor顯示電腦網速監控懸浮窗
  206. ├─Logo
  207. └─skins
  208. ├─0默認皮膚
  209. ├─皮膚01
  210. ├─皮膚02
  211. ├─皮膚03
  212. ├─皮膚04
  213. ├─皮膚05
  214. ├─皮膚06
  215. ├─皮膚07
  216. ├─皮膚08
  217. ├─皮膚09
  218. ├─皮膚10
  219. ├─皮膚11
  220. └─皮膚12
  221. ├─FolderSizes
  222. ├─FSCapture
  223. └─Languages
  224. ├─Hash
  225. ├─IObitUnlocker
  226. ├─JexChan
  227. ├─KeePass
  228. ├─Languages
  229. ├─Plugins
  230. └─XSL
  231. ├─Maye
  232. ├─bak
  233. ├─cache
  234. ├─icon
  235. └─search
  236. └─skin
  237. ├─PowerOff
  238. ├─Robocopy
  239. ├─SGI
  240. ├─TotalCMD
  241. ├─Cache
  242. ├─Filter32
  243. ├─Language
  244. └─User
  245. ├─TrafficMonitor
  246. ├─Logo
  247. └─skins
  248. ├─0默認皮膚
  249. ├─皮膚01
  250. ├─皮膚02
  251. ├─皮膚03
  252. ├─皮膚04
  253. ├─皮膚05
  254. ├─皮膚06
  255. ├─皮膚07
  256. ├─皮膚08
  257. ├─皮膚09
  258. ├─皮膚10
  259. ├─皮膚11
  260. └─皮膚12
  261. ├─WizTree
  262. ├─locale
  263. ├─bg
  264. └─LC_MESSAGES
  265. ├─da
  266. └─LC_MESSAGES
  267. ├─de
  268. └─LC_MESSAGES
  269. ├─el
  270. └─LC_MESSAGES
  271. ├─en
  272. └─LC_MESSAGES
  273. ├─es
  274. └─LC_MESSAGES
  275. ├─fr
  276. └─LC_MESSAGES
  277. ├─hu
  278. └─LC_MESSAGES
  279. ├─it
  280. └─LC_MESSAGES
  281. ├─ja
  282. └─LC_MESSAGES
  283. ├─ko
  284. └─LC_MESSAGES
  285. ├─nl
  286. └─LC_MESSAGES
  287. ├─no
  288. └─LC_MESSAGES
  289. ├─pl
  290. └─LC_MESSAGES
  291. ├─pt_BR
  292. └─LC_MESSAGES
  293. ├─ru
  294. └─LC_MESSAGES
  295. ├─sk
  296. └─LC_MESSAGES
  297. ├─sr
  298. └─LC_MESSAGES
  299. ├─sv
  300. └─LC_MESSAGES
  301. ├─tr
  302. └─LC_MESSAGES
  303. ├─uk
  304. └─LC_MESSAGES
  305. ├─zh_CHS
  306. └─LC_MESSAGES
  307. └─zh_CHT
  308. └─LC_MESSAGES
  309. └─log
  310. ├─_Fix
  311. └─局域網共享
  312. └─備用版本-一鍵設置局域網共享
  313. ├─_Setup
  314. ├─DeepFreeze
  315. ├─360文件解鎖
  316. ├─Config
  317. └─defaultskin
  318. ├─MINI
  319. └─Utils
  320. └─LockHunter32
  321. ├─FastCopy
  322. └─doc
  323. ├─NetDrive2
  324. ├─ShadowDefender
  325. └─WebDrive
  326. └─圖壓

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM