AutoHotKey_Lで、引数を動作中のソフトに渡すツール作った。ver.2.1.0

 S2WAは、あらかじめAppListを用意しておき、リスト内のソフトが起動済みならそのソフトに、そうでなければリストの一番上のソフトに、自身が受け取った引数を丸投げするツール。
 例えばいくつかのブラウザを使い分けている環境で、HTTPなどをS2WAに関連付けておけば、リンクを踏んだ時起動済みのブラウザで開かれるため、無駄にブラウザを起動せずに済む。

 ver.2.1.0では、OperaNext15が妙なディレクトリ構成なので、それに対応すべくAppListで正規表現を使えるようにした。

; ////////////////////////////////////////////////////////////////////////////////
;
; S2WA.ahk ver.2.1.0
;
; ////////////////////////////////////////////////////////////////////////////////

  FileEncoding, CP1200

  IfNotExist, %A_ScriptDir%\AppList.txt
  {
    MsgBox, %A_ScriptDir%\AppList.txt が存在しません!
    ExitApp
  }

  for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
    if process.ExecutablePath
      ProcessList .= process.ExecutablePath "`n"

  TrgExe := ""
  Loop, Read, %A_ScriptDir%\AppList.txt
  {
    if !A_LoopReadLine
      continue
    
    StringLeft, CharBuf, A_LoopReadLine, 1
    if ("*" == CharBuf)
      StringTrimLeft, SearchExe, A_LoopReadLine, 1
    else {
      StringReplace, SearchExe, A_LoopReadLine, \, \\, All
      StringReplace, SearchExe, SearchExe, ., \., All
      StringReplace, SearchExe, SearchExe, [, \[, All
      StringReplace, SearchExe, SearchExe, ], \], All
      StringReplace, SearchExe, SearchExe, +, \+, All
      StringReplace, SearchExe, SearchExe, {, \{, All
      StringReplace, SearchExe, SearchExe, }, \}, All
      StringReplace, SearchExe, SearchExe, ^, \^, All
      StringReplace, SearchExe, SearchExe, $, \$, All
      StringReplace, SearchExe, SearchExe, (, \(, All
      StringReplace, SearchExe, SearchExe, ), \), All
    }
    
    if RegExMatch(ProcessList, "im`n)^(" SearchExe ")$", $) {
      MsgBox, %$1%
      TrgExe := $1
      break
    }
  }

  If !TrgExe
    FileReadLine, TrgExe, %A_ScriptDir%\AppList.txt, 1

  Loop, %0%
  {
    CmdlineBuf := %A_Index%
    Run, %TrgExe% "%CmdlineBuf%"
    Sleep, 1000
  }

 使用するには、スクリプトと同じディレクトリにAppList.txtを用意し、S2WAを呼び出すだけ。S2WAはAppListを上から順に起動済みプロセスと照合し、いずれもHitしなければ一番上のソフトを起動する。

 AppListの仕様は以下の通り。

  • 文字コードはUnicode(UTF-16LE)。
  • 1行につきひとつのフルパス。
  • 行が*から始まった場合、その行は正規表現とみなされる。

 ただし、1行目は正規表現であってはならない。OperaNext15を最優先にしたいなら、以下のように記述する。

R:\Opera Next\launcher.exe
*R:\\Opera Next\\.*\\opera\.exe

 WindowsVista以降、httpなどのプロトコルへの関連付けは面倒になっている。詳しくはver.2.0.0の記事参照。


[PR]
by lordnoesis | 2013-06-20 17:57 | Trackback | Comments(0)

OperaNext15を試して、Chrome拡張入れてみた。

 Opera15(以下OPR)のOperaNextが出たので色々いじってみた。なおOperaNextというのは、Operaの次期バージョンのプレビュー版であり、αとかβとかウィークリービルドのたぐいであって、間違っても正式版ではないので注意。

 OPRでは、エンジンがWebKit(Blink)へと変更になるが、スタッフが「Operaらしさはそのまま」といってたもんだから、ワシは「Opera in Webkit」的なものが出てくると思っていた。だがそこに「Chromium Opera Edition」としかいいようがないものが出てきたせいで、ワシのみならず、Operaクラスタは阿鼻叫喚と化したのだった。そのあとでスタッフが「不安定な機能はまだ実装してないだけ」「高速リリース採用するので、いずれOperaらしくなるよ!」などと弁明したため、現状は様子見である。
 などといきなりdisり気味だが、現時点でもChromeの代替としては十分であり、ワシはサブとして使っていたChromeを捨てた! OPRが真にOperaの代替となるまでは、メインはOpera12が続投すればいいじゃない!

 で。OPRでは拡張機能もWebKitの物を使うことになる。Operaの拡張ストアにOPRでアクセスするとOPR対応版だけが表示されるが、その数はまだ多くはない。そこで、OPR拡張がないならChrome拡張を使えばいいじゃない!というのが本題である(前置き長ぇ。

 Download Chrome Extensionを導入することで、普通にChromeストアから拡張をインストールできる。

 普通にChromeのストアに行っても、OPRでは「Chromeに追加」が表示されないので、手動でインストールせねばならない。
 まず、crxファイルをDLする。crxはhttp://clients2.google.com/service/update2/crx?response=redirect&x=id%3D%26uc%26lang%3Den-US&prod=chromeで、IDをはさんだURLで入手できる。IDは拡張の個別ページのURLに含まれている、32文字くらいのアスキー文字列。例えばLastPassのhttps://chrome.google.com/webstore/detail/lastpass/hdokiejnpimakedhajhdlcegeplioahdならhdokiejnpimakedhajhdlcegeplioahdがそうなので、crxのURLはhttp://clients2.google.com/service/update2/crx?response=redirect&x=id%3Dhdokiejnpimakedhajhdlcegeplioahd%26uc%26lang%3Den-US&prod=chromeとなる。OPRで入力しても「Operaのストアじゃないからダメ」といわれるだけなので、IEなどで適当なフォルダに保存する。
 あとは野良拡張と同じ。OPRの拡張管理画面にドロップすると一覧に追加され確認が出るので、吹き出しの「インストール」を押せばおk。

 Opera Next 16では、opera://flags内のDynamic extension toolbar scalingを有効にすることで、アイコンの表示数を増やすことができるが、ウィンドウ幅依存なので表示しきれない可能性がある。

 ただし注意点がいくつかある。OPRの拡張バーは現状、最初の6個までしかアイコンを表示できない。非表示でも拡張自体は有効だが、アクセス手段がアイコンしかない場合は実質、利用不可能となる。アイコンの並び順=インストール順なので、アイコン必須の拡張からインストールし、一時的にアイコンが必要になった場合に上位の拡張を無効化するなどの工夫が必要となる。

 以下、試してみたよさげな拡張。

OPRストア


LastPass -- バージョン情報に「Chrome版」とある。
AdBlock

Chromeストア


はてなブックマーク GoogleChrome 拡張
Tab Manager -- タブ一覧。ファビコンのみ、あるいはファビコンとタイトル。
Tabs Outliner -- タブ一覧。ファビコンとタイトル。ポップアップでなく別ウィンドウ。OPRに未実装の「ウィンドウ間でのタブ移動」が可能。
Tab Expose -- タブ一覧。サムネイル。
theTabs -- タブ一覧。サムネイル。ポップアップでなく独立タブ。ひとつめのウィンドウのみ。
Zoom Text Only -- テキストのみ拡縮。ショートカットキーによる動作だが、設定はアイコンからしかできない。
PageRank -- Googleウェブ履歴にちゃんとタイトルが残る物の中で、シンプルなやつ。
AutoPatchWork
ToggleLink: Select Text From Link -- リンク上でshiftを叩くとただの文字列になる。5秒で元に戻る。


[PR]
by lordnoesis | 2013-06-01 13:30 | テクノロジ | Trackback | Comments(0)
ブログトップ | ファンになる