同步TC路径到打开对话框,代替Listary功能之一(此文已过期)

TC很好用。TC的目录跳转也很方便,还是双窗口。

Windows打开对话框很难有。目录跳转很不方便,还无法代替。

好在Listary统一了这两者,解决了这个问题,可以方便地把TC/资源管理器路径同步到打开对话框。

但用惯了Everything,感觉Listary有点复杂臃肿,搜索结果不像 Everything 是列表可重用,进程也多,而且大部分功能用不到。

对我而言,装Listary就是为了目录跳转方便,感觉有点杀鸡用牛刀。

于是就有了代用的AHK脚本,实现起来很简单,一个定时器即可。

#SingleInstance Force
#NoTrayIcon
#NoEnv
ListLines Off

SetTimer,CheckWin,500
return

CheckWin:
If WinExist("ahk_class TTOTAL_CMD") And WinExist("ahk_class #32770",,,"请先输入视频或音频文件") ;仅支持 TC 运行时的系统通用对话框;屏蔽 MPC-BE 窗口,可修改
{
    WinGetTitle,tempStr
    If tempStr Not Contains 打开,另存,选择,浏览打印文件,保存    ;匹配通用对话框,可增改
        Return
    WinGet,id_OD,Id
    If WinActive("ahk_class TTOTAL_CMD")
    {
        SetTimer,CheckWin,Off
        WinWaitActive,Ahk_Id %id_OD%
        Gosub SwitchDir
        SetTimer,CheckWin,On
    }
}
return

#if WinActive("ahk_id" . id_OD)
Tab::    ;使用 Tab 或 Ctrl+G 键将当前 TC 活动窗口目录置为当前
^G::
Gosub SwitchDir
Return
#if

SwitchDir:
ControlSetText,Edit1,% getTcFolder(),Ahk_Id %id_OD%
ControlFocus,Edit1,Ahk_Id %id_OD%
SendInput {Enter}
ControlSetText,Edit1,,Ahk_Id %id_OD%
return

getTcFolder()
{
    ClipSaved:=ClipboardAll 
    clipboard =
    SendMessage 1075,2029,0,,ahk_class TTOTAL_CMD
    ClipWait,2 
    OutDir=%clipboard%
    Clipboard:=ClipSaved 
    ClipSaved=
    Return OutDir
}

 

posted @ 2019-11-14 16:59  cui-YF  阅读(632)  评论(0编辑  收藏  举报