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燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP