設置激活或者隱藏 Total Commander 10.00 主窗口的快捷鍵為 F8


;
;/*
;===========================================
; 設置激活或者隱藏 Total Commander 10.00 主窗口的快捷鍵為 F8
; https://www.autoahk.com/archives/37780
; https://www.cnblogs.com/delphixx/p/15718194.html
;
; 腳本作者 : ds920
; 最新版本 : 1.1
; 更新時間 : 2021年12月22日
;
; 用法: (需要最新版本 AHK v1.1.31+)
; 1. 到飛揚時空的新浪博客下載並安裝TotalCommander中文增強版到文件夾D:/TotalCMD
; 2. 將本腳本保存為"RunTC.ahk"並復制到D:/TotalCMD文件夾中
; 3. 使用Maye來設置RunTC.ahk的熱鍵為 F8
;
; 升級更新歷史:
; 版本1.0 2021年12月22日 新建 創建此AutoHotkey腳本並測試通過F8熱鍵功能
; 版本1.1 2021年12月22日 修改 調整刪除 SetTimer 定時器時判斷TC主窗口是否激活的順序
; 把基於窗口類的激活判斷語句"if(WinActive("ahk_class" TTOTAL_CMD))"放在最外層
; 防止有相同標題的窗口激活時(例如:相同標題的瀏覽器等等)窗口激活誤判
;
; 由於AutoHotkey的Hotkey語句設置的熱鍵必需在任務欄或者桌面進程激活時才有效,
; 所以請使用Maye來設置Total Commander的熱鍵 F8
; https://blog.arae.cc/post/25830.html
; https://github.com/25H/Maya/releases/
;
; 可以用 Total Commander 訪問用RaiDrive異地遠程連接群暉WebDAV文件服務並映射成的本地虛擬磁盤盤符 Z: 分區
; 可以用 Total Commander 訪問用NetDrive2異地遠程連接群暉SFTP文件服務並映射成的本地虛擬磁盤盤符 Y: 分區
; 可以用支持 Total Commander的WebDAV文件服務訪問插件異地遠程連接群暉WebDAV文件服務中的網絡共享文件夾
; 可以用KeePass或者KeePass2Android來連接堅果雲或者
; 群暉NAS的WebDAV文件服務來管理網址、用戶名、賬號、密碼、口令、暗號、紀念日等個人敏感隱私信息和數據
; 可以用FileZilla Pro 專業版軟件異地遠程連接群暉的WebDAV文件服務並
; 批量上傳文件夾到群暉的 RAID 1 鏡像存儲池中的共享文件夾之中
; 可以用騰訊文檔的電腦客戶端來新建在線文檔和在線表格來進行辦公文檔和辦公表格的分享和協作
; 可以用Bulk Rename Utility 2.7.1.2來批量重命名或者編號群暉WebDAV文件服務中的共享文件夾中的大量文件
; 可以用Double Killer Pro V 2.1.0.104來批量刪除群暉WebDAV文件服務中的共享文件夾中的重復文件
; 可以安裝並升級更新"火絨安全軟件"來防殺電腦病毒木馬惡意軟件並攔截垃圾廣告彈出的騷擾窗口
; 可以用SGI備份還原映像總裁鏡像總裁一鍵還原工具軟件來備份保護Windows操作系統和
; 電腦中應用程序軟件和設置到GHO系統鏡像文件
; SGI備份還原映像總裁鏡像總裁一鍵還原工具軟件官方網址是 https://www.sysceo.com/Software-softwarei-id-253.html
; 以便今后用杏雨梨雲啟動維護系統可啟動固態U盤來恢復電腦系統應用程序軟件GHO系統鏡像文件到電腦的系統分區C盤
; 可以用Shadow Defender 影子衛士來保護Windows操作系統和電腦中應用程序軟件的設置,
; 防止電腦軟件設置被未授權的用戶和程序非法更改和破壞
; 如果無法安裝 Shadow Defender 影子衛士時可以用"DeepFreeze冰點還原精靈"或者
; "PowerShadow影子系統"或者"Returnil Virtual System(RVS)"來代替影子衛士
;
;===========================================
;*/

#SingleInstance,Ignore
loop,2
{
DetectHiddenWindows,On
Sleep,2
IfWinExist,QQ595076941_AutoAHKRun
ExitApp
}
Gui, Show, Hide,QQ595076941_AutoAHKRun
#Persistent
; #NoTrayIcon
DetectHiddenWindows,On
SetTitleMatchMode,2
; 設置激活或者隱藏 Total Commander 10.00 主窗口的快捷鍵為 F8
; Hotkey,F8,ActivateOrHideWindowHotkey
ActivateOrHideWindowHotkey()
return
; ——————————————————–
ActivateOrHideWindowHotkey()
{
; MsgBox,PressedHotkey檢測到已經按下快捷鍵
Sleep,2
IfWinActive,ahk_class TTOTAL_CMD
{
Sleep,2
if(WinActive(ahk_class TTOTAL_CMD))
{
Sleep,2
WinGetClass, MyClass, A
IfInString,MyClass,TTOTAL_CMD
{
Sleep,2
IfWinActive,Total Commander
{
TCTitle:="Total Commander"
Sleep,2
WinGetActiveTitle,Title
IfInString,Title,%TCTitle%
{
; MsgBox,MinimizeWindow最小化指定窗口
WinMinimize,Total Commander ahk_class TTOTAL_CMD
Sleep,2
ExitApp
}
}
}
}
}
else
{
; MsgBox,ActivateWindow顯示並且最大化並且激活指定窗口
SetTimer,ActivateWindowTimer,20
}
}
; ——————————————————–
;根據窗口類名顯示並激活Total Commander窗口
ActivateWindowTimer()
{
; 1、如果程序沒有運行則運行程序,這里我把可執行文件名改成了TotalCMD-v10.exe
Process,Exist,TotalCMD-v10.exe
if (%ErrorLevel%=0)
{
IfExist,D:/TotalCMD/TotalCMD-v10.exe
{
Run,D:/TotalCMD/TotalCMD-v10.exe
}
else
{
MsgBox,找不到文件 D:/TotalCMD/TotalCMD-v10.exe
return
}
}
; 2、顯示並激活(切換到)指定窗口
WinShow,Total Commander ahk_class TTOTAL_CMD
WinMove,Total Commander ahk_class TTOTAL_CMD,,0,0,A_ScreenWidth,A_ScreenHeight
WinActivate,Total Commander ahk_class TTOTAL_CMD
WinMaximize,Total Commander ahk_class TTOTAL_CMD
Sleep,2
DetectHiddenWindows,On
SetTitleMatchMode,2
WinGet, WinID, ID,Total Commander ahk_class TTOTAL_CMD
DllCall("SwitchToThisWindow", "UInt", WinID, "UInt", 1)
; 3、檢查指定窗口是否激活成功,
; 假如激活成功則退出Timer計時器循環執行,
; 如果激活失敗則繼續嘗試激活指定窗口

Sleep,2
IfWinActive,ahk_class TTOTAL_CMD
{
Sleep,2
if(WinActive(ahk_class TTOTAL_CMD))
{
Sleep,2
WinGetClass, MyClass, A
IfInString,MyClass,TTOTAL_CMD
{
Sleep,2
IfWinActive,Total Commander
{
TCTitle:="Total Commander"
Sleep,2
WinGetActiveTitle,Title
IfInString,Title,%TCTitle%
{
SetTimer,ActivateWindowTimer,Delete
Sleep,2
ExitApp
}
}
}
}
}
}

;================= The End =================

;

/*

;================= 根據窗口類名激活或者隱藏窗口的AutoHotkey函數 =================
; 請使用 窗口信息工具 AHKInfo 1.3.5 獲取窗口的類名
;根據窗口類名激活或者隱藏窗口
ActivateOrHideWindow(VarExeFileName:="TotalCMD-v10″,VarWinClassName:="TTOTAL_CMD")
{
; 1、如果程序沒有運行則運行程序
Process,Exist,%VarExeFileName%.exe
if (%ErrorLevel%=0)
{
IfExist,%VarExeFileName%.exe
{
Run,%VarExeFileName%.exe
return
}
else
{
MsgBox,找不到文件 %VarExeFileName%.exe
return
}
}
; 2、如果窗口未置頂則顯示並激活(切換到)指定窗口
IfWinNotActive,ahk_class %VarWinClassName%
{
loop,2
{
Sleep,20
WinShow,ahk_class %VarWinClassName%
;~ WinMaximize,ahk_class %VarWinClassName%
Sleep,20
WinGet, WinID, ID,ahk_class %VarWinClassName%
Sleep,20
DllCall("SwitchToThisWindow", "UInt", WinID, "UInt", 1)
}
return
}
; 3、如果窗口已經顯示並置頂則隱藏窗口
;~ WinMinimize,ahk_class %VarWinClassName%
WinHide,ahk_class %VarWinClassName%
}

*/
;

 

 


免責聲明!

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



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