看板 EzHotKey 關於我們 聯絡資訊
如題 目的是在任何可選取文字的頁面或程式中 e.g. chrome pdf瀏覽器或pdf或 microsoft word 等等 使用滑鼠選取英文或中文或任何字元或程式碼 按下pause後 sublime會跳出來 並且自動輸入 ctrl + shift + f 搜索剛剛選取的字串 然後視窗自動轉回當時選取文字的視窗或程式(上一個視窗) 爬文一下午後寫成這樣 Pause:: Loop { Pause := GetKeyState("Pause", "P") if(!Pause) Break } Gosub, Routine Return Routine: { run C:\Program Files\Sublime Text 3\sublime_text.exe IfWinExist sublime_text.exe { WinActivate } ; WinWait sublime_text.exe ; Send, ^w Clipboard = Send, ^c ClipWait ; Sleep, 1500 Send, ^+f Send, ^v Send !{Enter} } Return 但有幾點問題不曉得要怎麼處理 1 不知道為什麼有時候會失效 sublime並不會跳出來 2 sublime再次搜索後該結果會顯示在上次的結果後面 我則希望每次都清掉上一次都搜尋結果 之中也嘗試了執行搜索前先輸入 ctrl + w 來關閉但這也有些問題 會關閉滑鼠所選取文字的視窗或程式 3 回上個視窗不曉得怎麼做 4 我使用sublime並不是單視窗單分頁 而是多視窗多分頁 希望執行時可以固定在一個視窗上 以上 礙於時間壓力 希望有人可以幫忙 提供關鍵字也可以 謝謝 ---- Sent from BePTT -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.75.238 ※ 文章網址: https://www.ptt.cc/bbs/EzHotKey/M.1544313253.A.6CE.html
fossil313: Pause::裡的那段Loop可以去掉12/09 11:23
fossil313: 查了一下sublime是個文字編輯軟體12/09 11:23
fossil313: 那Routine:裡應該是先判斷sublime存不存在12/09 11:24
fossil313: 再看要不要開啟sublime 另外視窗的標題也要確定名字12/09 11:25
fossil313: 可以用SetTitleMatchMode設定視窗標題是否符合的模式12/09 11:25
fossil313: 回上個視窗簡單一點的就直接alt + tab12/09 11:26
fossil313: 複雜一點就切換前先用WinGetTitle紀錄視窗標題12/09 11:26
SongIceFire: 先謝了 晚上會照著改看看12/09 11:53
經過fossil313的提醒以後 至少寫出可以使用的程式碼了 修改後如下 Pause:: clipboard = send, ^c ClipWait, 1 if FileExist("C:\Program Files\Sublime Text 3\sublime_text.exe") { Gosub, runSublime } else { MsgBox, , 注意, 請確定程式路徑是否正確 } Return runSublime: { Run, C:\Program Files\Sublime Text 3\sublime_text.exe WinWait, Find Results - Sublime Text, , 0.5 if ErrorLevel = 0 { Send, ^w Gosub, doSearch } else { Gosub, doSearch } } Return doSearch: { Send, ^+f Send, ^v Send, !{Enter} } Return 之前提及的幾個需求 比方說回上個視窗因為有其他需求就不弄了 而多視窗多分頁這點還要在想一下 以上 謝謝 ※ 編輯: SongIceFire (223.136.75.238), 12/11/2018 20:26:25
fossil313: 其實原本想說的是IfWinExist要放在Run前面 XD 12/12 01:08
fossil313: 不是檢查執行檔在不在 12/12 01:08
fossil313: 因為有的軟體重複執行會直接開新的視窗出來 12/12 01:10
SongIceFire: 是有想到ifwinexist 12/12 09:37
SongIceFire: 但多視窗外還有多分頁 12/12 09:37
SongIceFire: findresult可能在某視窗的某分頁中… 12/12 09:37