AutoHotKey脚本分享——快速打开文件夹

启动器的样子

需要频繁打开一些藏的很深的文件夹,于是需要一个快速打开文件夹的工具,找了好多没有找到符合要求的(简单,快速启动,方便设置),只好自己写一个。

功能:

  1. 单击鼠标中键打开窗口,再次单击关闭窗口。
  2. 右键选择目录,左键打开目录,只需设置一次,每次单击中键都能打开该窗口。

代码:


#Requires AutoHotkey v2.0
CoordMode "Mouse"
; 配置存储路径
configFile := "./FolderShortcut.ini"
; 配置图标
; TraySetIcon "./icons/cat.ico"

; 初始化配置
isGuiVisible := false
savedPaths := Map()
Loop 6 {
    path := IniRead(configFile, "Paths", "Btn" A_Index, "")
    if (path != ""){
        savedPaths[A_Index] := path
    }
}

; 创建主界面
mainGui := Gui()
mainGui.Title := "目录快捷启动器"
mainGui.OnEvent("Close", (*) => mainGui.Hide())

; 创建2×3按钮矩阵
Loop 6 {
    i := A_Index
    row := (i-1) // 3
    col := Mod(i-1, 3)
    
    btn := mainGui.Add("Button", "vBtn" i " x" (10+col*110) " y" (10+row*60) " w100 h50")
    try {
        pathArray := StrSplit(savedPaths[i], "\")
    } catch as e {
        pathArray := "路径有误"
    }
    btn.Text := savedPaths.Has(i) ? pathArray[-1] : "点击右键设置"
    btn.OnEvent("Click", LeftClickAction.Bind(i))
    btn.OnEvent("ContextMenu", RightClickAction.Bind(i))
}

; 中键显示窗口
; MButton:: {
;     mainGui.Show("AutoSize")
;     WinSetAlwaysOnTop true, mainGui.Title
; }
MButton:: {
    global isGuiVisible, mainGui
    if !isGuiVisible {
        MouseGetPos &xpos, &ypos
        ;MsgBox xpos
        mainGui.Show("x" xpos " y" ypos " AutoSize")
        ;mainGui.Show("AutoSize")
        WinSetAlwaysOnTop true, mainGui.Title
        isGuiVisible := true
    } else {
        mainGui.Hide()
        isGuiVisible := false
    }
}

; 左键打开文件夹
LeftClickAction(index, *) {
    global savedPaths
    if savedPaths.Has(index) && DirExist(savedPaths[index])
        Run savedPaths[index]
}

; 右键设置路径
RightClickAction(index, *) {
    global mainGui, savedPaths
    selectedDir := DirSelect(, 3, "选择文件夹")
    if selectedDir != "" {
        savedPaths[index] := selectedDir
        mainGui["Btn" index].Text := selectedDir
        SaveConfig()
    }
}

; 保存配置到INI
SaveConfig() {
    global configFile, savedPaths
    For index, path in savedPaths
        IniWrite path, configFile, "Paths", "Btn" index
}

; 退出时保存
Persistent

如果不喜欢用中键,可以把脚本中“MButton”,替换成想要替换的快捷键组合,注意不要替换常用快捷键。比如可以替换成win+K,则写成“#k”,ctrl+o则写成“^o”。

如果想用自己的图标,则把"; TraySetIcon “./icons/cat.ico”"的注释取消,然后将自己准备的icon文件的位置写在后面即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值