智能跳转---TC资源管理器

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;作者:天甜;QQ:105224583
;一花一世界,一叶一枯荣,心无挂碍,无挂碍故,无有恐怖,远离颠倒梦想,究竟涅盘。
;更新于:2016-10-10-20-36
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  

Process, Priority,,high         ;脚本高优先级
#NoTrayIcon                         ;隐藏托盘图标
#NoEnv                              ;不检查空变量是否为环境变量
#Persistent                     ;让脚本持久运行(关闭或ExitApp)
#SingleInstance Force               ;跳过对话框并自动替换旧实例
#WinActivateForce                   ;强制激活窗口
#MaxHotkeysPerInterval 200      ;时间内按热键最大次数
SetBatchLines -1                    ;脚本全速执行
SetControlDelay 0                   ;控件修改命令自动延时
CoordMode Menu Window               ;坐标相对活动窗口
SendMode Input                      ;更速度和可靠方式发送键盘点击
SetTitleMatchMode 2             ;窗口标题模糊匹配
;SetTitleMatchMode,RegEx
DetectHiddenWindows On              ;显示隐藏窗口
SetWorkingDir %A_ScriptDir%     ;当前脚本所在目录的绝对路径.不包含最后的反斜线(根目录同样如此);A_ScriptDir指的是D:\zxh\QuickZ\Apps  

;另存为|保存|复制|新建|打开|图形另存为|文件打开|保存副本|上传|选择文件 ahk_class #32770
GroupAdd,Window32770,另存为 ahk_class #32770
GroupAdd,Window32770,保存 ahk_class #32770
GroupAdd,Window32770,复制 ahk_class #32770
GroupAdd,Window32770,新建 ahk_class #32770
GroupAdd,Window32770,打开 ahk_class #32770
GroupAdd,Window32770,图形另存为 ahk_class #32770
GroupAdd,Window32770,文件打开 ahk_class #32770
GroupAdd,Window32770,打开文件 ahk_class #32770
GroupAdd,Window32770,保存副本 ahk_class #32770
GroupAdd,Window32770,上传 ahk_class #32770
GroupAdd,Window32770,选择文件 ahk_class #32770
GroupAdd,Window32770,插入图片 ahk_class #32770
GroupAdd,Window32770,导入 ahk_class #32770  

global this_title=
global zParam
;~ OnMessage(0x5555, "MsgMonitor")  

;在某些程序中自动切换中文,某些英文          注册个窗口钩子然后监听系统消息
Gui +LastFound +hwndhwndshellwindow
DllCall( "RegisterShellHookWindow", "UInt",hwndshellwindow )
OnMessage( DllCall( "RegisterWindowMessage", "Str", "SHELLHOOK" ), "SwitchMessage" )
return
;~ MsgMonitor(wParam, lParam, msg)
;~ {
    ;~ zParam = %wParam%
;~ }
^+!1::zParam := 1
^+!0::zParam := 0  

SwitchMessage( wParam,lParam )  ;{
{
    If ( wParam != 1 )      ;新开窗口
    {
    If WinActive("ahk_class TTOTAL_CMD")
        {
        WinWaitNotActive ahk_class TTOTAL_CMD
        SendMessage 1074, 21, 0, , ahk_class TTOTAL_CMD
        ControlGetText, varPathInTC, , ahk_id %ErrorLevel%
        StringReplace, this_title, varPathInTC, >, \
        IfWinExist ahk_group Window32770
            {
            WinWaitActive ahk_group Window32770, , 2
            if !ErrorLevel
            ;IfWinActive ahk_group Window32770
                {
                ControlClick, Edit1, A
                Sleep, 100
                ControlSetText, Edit1, %this_title%, A
                Sleep, 50
                ControlSend, Edit1, {Enter}, A
                }
            else
                return
            }
        else
            return
        return
        }
    If WinActive("ahk_class CabinetWClass")
        {
        WinWaitNotActive ahk_class CabinetWClass
        WinGetTitle, this_title, ahk_class CabinetWClass    ;“文件夹选项”,“查看”,“在标题栏显示完整路径”,“确定”,显示完整路径
        if this_title=桌面
            this_title=%A_Desktop%
        ;if this_title=库\文档
            ;this_title=%A_MyDocuments%
        IfWinExist ahk_group Window32770
            {
            WinWaitActive ahk_group Window32770, , 2
            if !ErrorLevel
            ;IfWinActive ahk_group Window32770
                {
                ControlClick, Edit1, A
                Sleep, 100
                ControlSetText, Edit1, %this_title%, A
                Sleep, 50
                ControlSend, Edit1, {Enter}, A
                }
            else
                return
            }
        else
            return
        return
        }
    If WinActive("ahk_class SciTEWindow")
        {
        if zParam = 1
            {
            OCR_IBEAM           =32513
            hbeam := DllCall("LoadCursorFromFile","Str","D:\zxh\QuickZ\User\Icons\zzx.cur")
            DllCall( "SetSystemCursor", Uint,hbeam, Int,OCR_IBEAM )
            }
        if zParam = 0
            {
            SPI_SETCURSORS := 0x57
            DllCall("SystemParametersInfo", "UInt", SPI_SETCURSORS, "UInt", 0, "UInt", 0, "UInt", 0)
            }
        WinWaitNotActive ahk_class SciTEWindow
            {
            SPI_SETCURSORS := 0x57
            DllCall("SystemParametersInfo", "UInt", SPI_SETCURSORS, "UInt", 0, "UInt", 0, "UInt", 0)
            }
        return
        }
    }
}           ;}  

>!o::
    Send, ^o
    WinWaitActive ahk_class #32770
    ControlFocus, Edit1, A
    send,{Backspace}
    sleep 100
    ControlSetText, Edit1, %this_title%, A
    Sleep, 50
    ControlSend, Edit1, {Enter}, A
    return
>!l::
    Send, ^+s
    WinWaitActive ahk_class #32770
    ControlFocus, Edit1, A
    send,{Backspace}
    sleep 100
    ControlSetText, Edit1, %this_title%, A
    Sleep, 50
    ControlSend, Edit1, {Enter}, A
    return
>!n::
    Send, ^n
    WinWaitActive ahk_class #32770
    ControlFocus, Edit1, A
    send,{Backspace}
    sleep 100
    ControlSetText, Edit1, %this_title%, A
    Sleep, 50
    ControlSend, Edit1, {Enter}, A
    return
;~ ^+s::
    ;~ Send ^+s
    ;~ WinWaitActive ahk_class #32770
    ;~ ControlFocus, Edit1, A
    ;~ send,{Backspace}
    ;~ sleep 100
    ;~ ControlSetText, Edit1, %this_title%, A
    ;~ Sleep, 50
    ;~ ControlSend, Edit1, {Enter}, A
    ;~ return  

#IfWinActive, ahk_class #32770
^g::        ;发送最后 TC or 资管 路径到32770
    ControlClick, Edit1, A
    Sleep, 100
    ControlSetText, Edit1, %this_title%, A
    Sleep, 100
    ControlSend, Edit1, {Enter}, A
return  

^e:: GoSub,Sub_SendCurDiagPath2Exp      ;在系统资管中打开对话框的路径
^t:: GoSub,Sub_SendCurDiagPath2Tc       ;在TC中打开对话框的路径
;~ Space & t:: GoSub,Sub_SendCurDiagPath2Tc
#If  

;将Explorer中路径发送到对话框
Sub_SendExpCurPath2Diag:
{
    WinActivate ahk_class CabinetWClass
    WinGetTitle, Title, ahk_class CabinetWClass ;打开“文件夹选项”,切换到“查看”选项卡,在高级设置列表框中勾选“在标题栏显示完整路径”,单击“确定”按钮使设置生效,现在访问文件夹路径时就会在左上角的标题栏显示完整路径
    if Title=桌面
        Title=%A_Desktop%
    Send !{Tab}
    ControlFocus, Edit1, A
    send,{Backspace}
    sleep 100
    ControlSetText, Edit1, %Title%,A
    send,{enter}
return
}
;将tc中路径发送到对话框
Sub_SendTcCurPath2Diag:
{
    clipraw:=Clipboard
    Clipboard =
    PostMessage, 1075, 2029,0,, ahk_class TTOTAL_CMD
    ClipWait, 1
    srcDIR := Clipboard
    Clipboard:=clipraw  

    ;再发送剪贴板路径到控件
    ControlFocus, Edit1, A
    send,{Backspace}
    sleep 100
    ControlSetText, Edit1, %srcDIR%,A
    send,{enter}
return
}
;将tc中路径发送到对话框-备份
Sub_SendTcCurPath2Diag2:
{
    ;将剪贴板中内容作为文件名
    B_Clip2Name := false
    B_ChangeDiagSize := true  

    ;先获取TC中当前路径
    clip:=Clipboard
    Clipboard =
    ;TC_Msg := 1075,cm_CopySrcPathToClip 2029
    PostMessage, 1075, 2029,0,, ahk_class TTOTAL_CMD
    ClipWait, 1
    srcDIR := Clipboard
    Clipboard:=clip  

    ;再发送剪贴板路径到控件
    ControlFocus, Edit1, A
    send,{Backspace}
    sleep 100
    ControlSetText, Edit1, %srcDIR%,A
    send,{enter}
    ;msgbox %clip%
    if(B_Clip2Name){
        Sleep 100
        ControlSetText, Edit1, %clip%,A
    }
    ;ControlSetText, Edit1, %text%,A
    if(B_ChangeDiagSize){
        ;WinGetPos, xTB, yTB,lengthTB,hightTB, ahk_class Shell_TrayWnd
        ;改变对话框大小,省事就直接移动到100,100的位置,然后85%屏幕大小,否则就要详细结算任务栏在上下左右的位置
        WinMove, A,,80,80, A_ScreenWidth * 0.85, A_ScreenHeight * 0.85
    }
return
}
;在TC中打开对话框的路径
Sub_SendCurDiagPath2Tc:
{
    WinGetText, CurWinAllText
    Loop, parse, CurWinAllText, `n, `r
    {
        If RegExMatch(A_LoopField, "^地址: "){
            curDiagPath := SubStr(A_LoopField,4)
            break
        }
    }
    {
    DiagPath := % curDiagPath
    WinActivate ahk_class TTOTAL_CMD
    PostMessage 1075, 3001, 0, , AHK_CLASS TTOTAL_CMD
    ControlSetText, Edit1, cd %DiagPath%, ahk_class TTOTAL_CMD
    Sleep 400
    ControlSend, Edit1, {Enter}, ahk_class TTOTAL_CMD
    }
return
}
;在系统资管中打开对话框的路径
Sub_SendCurDiagPath2Exp:
{
    WinGetText, CurWinAllText
    Loop, parse, CurWinAllText, `n, `r
    {
        If RegExMatch(A_LoopField, "^地址: "){
            curDiagPath := SubStr(A_LoopField,4)
            break
        }
    }
    {
    DiagPath := % curDiagPath
    run explorer.exe %DiagPath%
    }
return
}  

^F12::Reload
^F11::ExitApp 
时间: 2024-10-03 17:26:54

智能跳转---TC资源管理器的相关文章

rTotalCMD | TC替换资源管理器 For Win7

分类: 系统增强    版本: 0.0.2    发布日期: 2015-11-27 Win7 下用于设置 Total Commander(简称TC)为默认文件管理器. 功能简介 快速设置 TC 为默认文件管理器 支持自定义默认使用的 TC 面板(仅 v0.0.2) 支持自定义是否启用 Shift 键来切换使用另一个面板打开(仅 v0.0.2) 支持关键字路径排除:排除的路径使用资源管理器打开,避免出错(v0.0.2 优化) 支持自定义 TC 路径,不再强制要求与 TC 主程序放在同一目录(仅 v

HDFS分布式文件系统资源管理器开发总结

  HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式文件系统的区别也是很明显的.HDFS是一个高度容错性的系统,适合部署在连接的机器上.HDFS能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用. 笔者本人接触研究HDFS也有半年之久了,了解了HDFS Java API接口后,就一直设想着设计一个类似于Windows操作系统上的资源管理器一样的

【推荐】介绍两款Windows资源管理器,Q-Dir 与 FreeCommander XE(比TotalCommander更易用的免费资源管理器)

你是否也像我一样,随着硬盘.文件数量的增加,而感到对于文件的管理越来越乏力. 于是我试用了传说中的各种软件,包括各种Explorer外壳,或者第三方资源管理器. 最后我确定下来经常使用,并推荐给您的是这两款软件:FreeCommander XE.Q-Dir. ============================= 我为什么推荐FreeCommander 和 Q-Dir? 因为 TotalCommander 太难学,Clover 太低端. Q-Dir 是一款简单的四格窗体的资源管理器,可以同时

用Total Commander替换windos默认资源管理器

用Total Commander替换windos默认资源管理器的方法 Total Commander(简称TC)是一个功能强大的资源管理器. TC本身没有自带的替换windows资源管理器的功能,就必须自己动手解决了. 第一步先Google一下看有没有答案.当时搜出了不少文章,可是自己实际操作了一下都不够完美.于是就参考众人的答案,自己用Autohotkey写了一个替换windows资源管理器的脚本. 功能: 1.初次运行用TC替换资源管理器,并在右键菜单添加用explorer打开. 2.再次运

Mac Pro 资源管理器 Double Commander“个性化设置” 备份

操作系统自带的资源管理器,总是有些别扭的地方,在 Windows 系统下,我一般用 Total Commander(破解版)来作为替代品. 现在换为 Mac 系统,自带的 Finer 也不怎么好用,连最基本的 右键“剪切”功能都没有,但是 Total Commander 又没有 Mac 版本. 今天,终于找到了一款类似的工具 - Double Commander,开源.免费.跨平台.功能上,简直是 TC 的翻版. 个性化配置备份 编辑路径: Configuration -> Options ->

Java开发桌面程序学习(八)——启动浏览器或者打开资源管理器操作与hyperlink超链接的使用

启动浏览器或者打开资源管理器 启动浏览器 java1.6版本以上,Desktop Desktop.getDesktop().browse(new URI("www.cnblogs.com/kexing")); 打开资源管理器 三种方式 //第一种常用,打开q:\\MyBlog这个文件夹目录 Desktop.getDesktop().open(new File("q:\\MyBlog")); Runtime.getRuntime().exec("explor

7.2 hadoop失败:任务失败、application master 失败、节点管理器失败、资源管理器失败

1.1  失败 1.1.1         任务失败 Map和reduce任务失败:Map或者reduce任务有缺陷,抛出异常,JVM会会向applicationmaster 发出错误报告,applicationmaster将任务标记为failed,将错误报告写入用户日志,释放资源. Stream任务失败:Streaming任务以非零状态码退出,则标记为失败,属性stream.non.zero.exit.is.failure属性设置为true,才会触发. Jvm失败:Jvm软件缺陷突然退出,节点

Win10重命名文件夹导致资源管理器卡顿的解决办法

我本机使用的是 Win10 1607,不清楚是因为什么原因导致重命名文件夹时资源管理器会被卡死,找了很长时间终于找到了解决办法,现在我把步骤粘出来以便后续遇到相同问题的朋友能及时解决. 其实操作很简单,只需要简单的三步: 1. 打开任意文件夹 2. 点击左上角菜单栏中的"文件"按钮,选择"更改文件夹和搜索选项",如下图所示: 3. 在弹出的文件夹选项窗口中,依次点击"清除文件资源管理器历史记录"后的"清除"按钮和"还

unity 资源管理器设计

资源管理器,顾名思义,就是管理游戏中的所有资源,包括加载资源,回收资源,销毁资源等等.下面这个资源管理器主要提供了对assetbundle异步加载功能,Resources的加载没有放在里面. 一.使用方法 1.在进入游戏前调用Init(),加载一个资源的名称列表 2.调用AsynGetAsset(string name, Action<UnityEngine.Object> callback)方法(异步) 说明,这里的资源列表是从bundle_list列表中解析出来的,并且有一个manifes