EzHotKey 板


LINE

找出资料夹路径的方法 想了很久,花了一个晚上总算写出来了。 不过前提是要把那个资料夹打开,然後用 AutoHotKey 去撷取被打开资料夹的路径。 档案名称用这个方式无法撷取,因为即使选取了某个档案,只能找到档案的大小。 不过应该可以藉由档案大小的这个资讯找到那个档案。 听说 ListView 之类的指令可以列出档案。 可能还有其他方法,或许改日再弄看看吧~~ 以下是程式码: WinGetActiveTitle, title ;将目前视窗的标题放进变数 title WinGetText, text, %title% ;将标题 title 的视窗资讯放进 text Loop, Parse, text, `r`n ;将 text 依换行字元('r'n)分开 { if ( A_Index = 1 ) ;只取分开後的第一部份 { text2 = %A_LoopField% ;将第一部份的内容放进 text2 break ;离开 Loop, Parse } } FileSelectFile, , ,%text2% , ,(*.*) 教学 要找出某个视窗下的资讯,可以利用 AutoHotKey 内建的 Window Spy 程式。 打开视窗或软体後,Window Spy 就会出现有关它的资讯唷~~ 例如说我现在打开 C槽 资料夹,Window Spy 的画面就会类似这样: ˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍ Active Window Info >>>>>>>>>>( Window Title & Class )<<<<<<<<<<< 本机磁碟 (C:) ……略…… >>>>( TitleMatchMode=slow Visible Text )<<<< C:\ C:\ ……略…… ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ WinGetActiveTitle 其中 Window Title & Class 下面的是目前开启的视窗的标题。 要获取这个标题,可以用 WinGetActiveTitle,它可以告诉我们目前使用中视窗的标题: WinGetActiveTitle, 存放的变数 范例: ^w:: WinGetActiveTitle, title MsgBox, %title% return 随意打开一个资料夹(例如 C槽)然後按下 Ctrl + W,就会出现类似如下的视窗: ___________ AutoHotKey.ahk 本机磁碟 (C:) _____ 确定  ̄ ̄ ̄ ̄ ̄ WinGetText 而 TitleMatchMode=slow Visible Text 下面的文字就是就是我们要的档案路径。 要把这个路径找出来,需要用到 WinGetText, WinGetText 可以藉由使用者给它的一些视窗的资讯,然後找到这个视窗, 再撷取这个视窗的资讯,将这些资讯存成一段文字。 用法如下: WinGetText, 存放变数 ,(视窗标题, 视窗文字 , 不包含的视窗标题, 不包含的视窗文字) (视窗标题, 视窗文字, 不包含的视窗标题, 不包含的视窗文字): 这四个是 WinGetText 用来寻找视窗的条件,可以只使用一个、两个甚至全部。 存放变数: WinGetText 找到所需的资讯时,会将这个资讯转换成文字,然後放到这个变数里面。 我们如果只要它撷取 C槽 的资讯时,可以这样写: ^p:: ;当按下 Ctrl + P 时执行 Run C:\ ;打开C槽 WinWait, 本机磁碟 (C:) ;等待C槽打开再往下执行 WinGetText, Text, 本机磁碟 (C:) ;撷取视窗标题是本机磁碟 (C:)的资讯 MsgBox, %Text% ;将撷取的资讯显示出来 return ;执行到 return 停止 结果类似: ˍˍˍˍˍˍˍˍˍ AutoHotKey.ahk C:\ C:\ 31 个物件 FolderView _____ 确定  ̄ ̄ ̄ ̄ ̄ 因为我们只需要第一行 C:\ ,所以要把其他的部份去掉。 AutoHotKey 提供了 Loop, Parse {...} 可以将一长串文字分开。 Loop, Parse Loop, Parse, 要处理的变数,( 分开的代表文字, 首尾忽略文字) 要处理的变数:要被分开的变数名称。 分开的代表文字: 例如这个代表文字是 , 符号。 那麽 a,b,c 就会被分成 a 和 b 和 c 。 首尾忽略文字:将变数第一个以及最後遇到的文字忽略。 A_Index: 纪录 Loop,Parse 目前跑了第几次,由 1 开始计算。 A_LoopField: 被分开的文字会依顺序出现在这个变数当中。 以 a,b,c 来说, ╭─────────┬────┬──────╮ │Loop,Parse跑的次数│ A_Index│ A_LoopField│ ├─────────┼────┼──────┤ │ 1 │ 1 │ a │ ├─────────┼────┼──────┤ │ 2 │ 2 │ b │ ├─────────┼────┼──────┤ │ 3 │ 3 │ c │ ├─────────┼────┼──────┤ │ 结束 │ │ │ ╰─────────┴────┴──────╯ 范例如下: abc = a,b,c ;建立变数 abc,内容是 a,b,c Loop, Parse, abc, `, ;将 abc字串以逗号分开(`, { MsgBox,%A_Index% 次: %A_LoopField% } 显示结果: ___________ AutoHotKey.ahk 第 1 次: a _____ 确定  ̄ ̄ ̄ ̄ ̄ 因为我们找到的字串分成 4 行,所以他们是由换行字元(`r`n)分开的。 因此,要撷取第一行的文字,可以这样写: ^p:: ;当按下 Ctrl + P 时执行 Run C:\ ;打开C槽 WinWait, 本机磁碟 (C:) ;等待C槽打开再往下执行 WinGetText, Text, 本机磁碟 (C:) ;撷取视窗标题是本机磁碟 (C:)的资讯 Loop, Parse, Text, `r`n ;将Text用换行字元分开 { if( A_Index = 1 ) ;若 A_Index = 1 成立,执行 {...} { Text2 = %A_LoopField% ;令 A_LoopField 的值给变数 Text2 break ;离开 Loop,Parse } } MsgBox, %Text2% ;将 Text2 的内容显示出来 return ;执行到 return 停止 结果如下: ___________ AutoHotKey.ahk C:\ _____ 确定  ̄ ̄ ̄ ̄ ̄ FileSelectFile 如果我们想直接开启这个路径下的个档案,可以用 FileSelectFileFileSelectFile, 存放变数 , 选项, 绝对路径\档名, 标题, 档案筛选 存放变数:将使用者的档案名称丢进这个变数。 选项(可忽略): M 允许一次选取多个档案。 S 将“开启”按钮改成“储存”按钮。 (其他选项请参照说明文件) 绝对路径\档名:指定要开启的资料夹路径或档名: C:\My Pictures\Default Image Name.gif C:\My Pictures 标题:指定视窗的标题 档案筛选:指定看得到的档案类型: 所有(*.*) 文字(*.txt) 音乐(*.wav; *.mp2; *.mp3) 圈圈(*.oo) 例如要打开 C槽 下的档案,可以这样写: FileSelectFile, tmp, ,C: , 选择要开启的档案, 所有类型(*.*) ※ 引述《sodeass (基米拉)》之铭言: : ※ 引述《VElysian (家瑀 致中和)》之铭言: : : 请问大家, : : 想利用板上讨论的软体,做出什麽样的功能让使用电脑更快速方便呢? : : 或者是已经写出来了,说出来让大家开开眼界。 : : 还是已经动手在规划、在制作了,可以说一说。 : : 如果很需要某项功能,却想不出来怎麽做;也可以提出来参考。 : : 谢谢。 ^_^ : 小弟有个想法,但自己苦工做很久,还没啥结果,所以想和大家讨论 : 在备份档案方面,小弟都会check MD5码来看看二个档案是否相同 : 因为档案很多,所以希望这样... : 1. 点一下想算MD5码的档案, 例如: file1 (也就让它反白 XD) : 2. 按热键, 像win+5, 就可以呼叫外部程式,把file1的MD5利用msgbox送出来 : 算MD5码的部分,不是AHK的守备范围,所以找外挂就好。 : 问题比较大的一点是,如何AHK,去取得步骤1的file_name 和 file_path : 小弟自己利用 : FileSelectFile, tmp, 3,C:\Documents and Settings\sodeass\桌面 , Choose File, : (*.*) : 开出一个GUI,来选择档案,再把档案路径丢到变数tmp里 : 虽然可以得到要的结果,但是要开GUI来慢慢选档案,速度就比较慢了 : 大家有没有意见可以给小弟参考一下~ Thx ^^ : 废话很多,希望有人看得懂 OTZ... -- 主动是机会的诱饵 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.93.191
1F:推 linpien:这个不推不行啊! 07/25 19:42
※ 编辑: VElysian 来自: 61.64.173.134 (07/25 20:08)
2F:推 yinjing:推!!改天再读 XD 07/25 20:21
3F:推 jyhfang:推你的热血 XDXD 07/25 20:27
4F:推 ilovett:推推 07/25 20:28
5F:推 moonls:这也太强了吧!! 推版主 07/25 22:38
※ 编辑: VElysian 来自: 61.62.148.155 (07/25 23:41)
6F:推 Kenqr:推! 07/25 23:59







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP