[AHK-] 在頁面上選取文字後按pause在sublime查

作者: SongIceFire (冰與火之歌)   2018-12-09 07:54:11
如題
目的是在任何可選取文字的頁面或程式中
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並不是單視窗單分頁
而是多視窗多分頁 希望執行時可以固定在一個視窗上
以上
礙於時間壓力 希望有人可以幫忙 提供關鍵字也可以
謝謝
作者: fossil313 (陣雨)   2018-12-09 11:23:00
Pause::裡的那段Loop可以去掉查了一下sublime是個文字編輯軟體那Routine:裡應該是先判斷sublime存不存在再看要不要開啟sublime 另外視窗的標題也要確定名字可以用SetTitleMatchMode設定視窗標題是否符合的模式回上個視窗簡單一點的就直接alt + tab複雜一點就切換前先用WinGetTitle紀錄視窗標題
作者: SongIceFire (冰與火之歌)   2018-12-09 11:53:00
先謝了 晚上會照著改看看
作者: fossil313 (陣雨)   2018-12-12 01:08:00
其實原本想說的是IfWinExist要放在Run前面 XD不是檢查執行檔在不在因為有的軟體重複執行會直接開新的視窗出來
作者: SongIceFire (冰與火之歌)   2018-12-12 09:37:00
是有想到ifwinexist但多視窗外還有多分頁findresult可能在某視窗的某分頁中…

Links booklink

Contact Us: admin [ a t ] ucptt.com