Home / Diary / AutoHotKeyでOperaの選択テキスト内のURLを一気に開く

AutoHotKeyでOperaの選択テキスト内のURLを一気に開く

http://www.google.co.jp/
ttp://search.yahoo.co.jp/
://search.msn.co.jp/

こーいったリンクされていないURLをまとめて開きたい。

ただ単に選択テキストをコピーしてahkに渡しつつ、正規表現でURLっぽいのをゲットして、そのままOperaにコマンドラインで渡せばできね?

と思ったら、渡した分だけウインドウが作られてしまった。現在開いているOperaに新しいタブとして追加させるにはDDEで渡すしかないっぽいが、AutoHotKeyでDDEを扱う方法が分からなかったので、力技でやることにした。

;menu.ini
[Hotclick Popup Menu]
Item, "選択テキスト内のURLを全て開く" = Copy & Execute program, "C:\ahk\AutoHotkey.exe", "C:\ahk\openallurl.ahk"

;openalllink.ahk
#NoTrayIcon

lines := RegExReplace( Clipboard, "(`r`n)+", "`r")

Loop, parse, lines, `r,
{
    match_result := RegExMatch( A_LoopField, "t?p?s?:?//([-_.!~*'()a-zA-Z0-9;/?:@&=+$,`%#]+)", $ )
    If match_result != 0
    {
        Clipboard = http://%$1%
        wait( 10 )
        Send, {LCtrl Down}t{LCtrl Up} ;新しいタブ
        wait( 40 )
        Send, {LCtrl Down}b{LCtrl Up} ;貼り付けて移動
        wait( 40 )
    }
}

wait( time ) {
    begin := A_TickCount
    Loop
    {
        if A_TickCount - begin > time
        break
    }
}

何をしているのかというと、選択テキストを改行で分解してURLっぽいのをゲット。ここまでは良い。その後は・・・

  1. ゲットしたURLをクリップボードに入れる
  2. 強制的にCtrl+Tを発生させて新しいタブを表示させる
  3. 強制的にCtrl+Bを発生させてクリップボード内のURLを貼り付けて移動させる
  4. 1~3を繰り返す

こんなんで本当に大丈夫なのか? と思ったが、どうやらCPUを他に取られていると新しいタブの生成や貼り付けてからの移動で微妙に時間を取ってしまい、次の入力がズレてしまう時があったのでwaitを入れることにした。上手く開かない時はwaitの数字を大きく設定する。waitがちゃんと入っていればしっかり開かれるようだ。

正規表現はPerlメモから拝借した。非リンクだけじゃなくh抜き等にも対応するため、最低限スラッシュ2個さえあれば反応するようにしてる。そこら辺で不都合があるなら適当に弄るといいだろう。

openallurl.ahk

追記1

選択範囲のソースを取得できることをすっかり忘れてた。というわけでJavaScriptで全て解決するっぽいのでがんばる。

一応ahk経由だとポップアップブロックが発生しないというメリットが一応あるんだがな。そこら辺は使う人次第か。

追記2

渡した分だけウインドウが作られたって書いたけど、設定を良く見たらSDIにチェックが入っているせいだった。チェック外してみたところ、コマンドラインでも普通にタブが開いた。

Info

関連のあるエントリ
2007-05-16 あの素晴らしいCSSを二度三度
2007-02-05 AutoHotKeyでOperaにクリップボード内のURLを全部開かせる
2006-11-21 AutoHotKeyでOperaにCopyURL+
2006-11-22 AutoHotKeyでOperaでもUserJSをインストールできるようにする
2007-11-14 続・ニコニコ動画視聴補助スクリプト for Opera
新しいエントリ(日付順)
Operaで選択範囲内のあらゆるURLを一気に開く
古いエントリ(日付順)

Comment

投稿したコメントは公開されません。サイトオーナーのみが閲覧できます。
返信等を希望する場合は、コメント内に連絡先のメールアドレスかサイトのURLを入力してください。

2007
0110

Tagsahkopera

最新のエントリ
注目のエントリ(はてな)
ゲーム攻略

暴満館 ~The House of Full Violence~
Powered by WordPress.
About | Contact | 新着のエントリ情報 RSS