このブログは気が向いたときにしか更新しません。
生存確認等はtwitterでどうぞw

2011年3月15日火曜日

Chrome用Irvine拡張

Chrome用のIrvine連携拡張としてはderawさんのIrvine拡張が既にありますが、 ircom.exeをShellExecuteExで呼び出している関係上、コマンドライン文字列に長さの制限があり、しかもXP, Vista, Win7でそれぞれその長さがどうも違うらしいというやっかいな問題があります。
で、どのみちNPAPIでC++からIrvineと通信するならいっそのことircom使わずに直接COMを使って呼び出すのが良いと思ったので、 上記拡張のNPAPIであるnpproc.dllのソースを元にして作ってみたのがこちらの拡張です。
直接COMを使って呼び出すのでircomなどのパスを設定する必要はありません。

基本的な機能はderawさんのものと同一で、リンクや画像をalt+クリック(または左ボタンを押しながら右クリック)してIrvineに送ったり、ポップアップメニューからページ内のすべてのリンクをIrvineに送ったり出来ます。

alt+クリックや左ボタンを押しながら右クリックはそれぞれオプションでOn/Offできます。
なお、オプション設定は設定中に開いていたタブには効力がありません。

download: irvineapi.crx ver. 0.3.2 (2011/05/10)

30 コメント:

  1. Irvine拡張とても便利に使わせて貰っています。

    左ボタンを押しながら右クリックを無効にしているのですが、マウスジェスチャー(Smooth Gestures - バージョン: 0.15.2)をしようすると右クリック長押しの際にIrvineが起動してしまいます。
    chromeはver11.0.696.65です。OSはXPです。
    Irvineが勝手に起動しないようにできれば嬉しいのですが、宜しくお願いします。

    返信削除
  2. オプションが意図通りに動かなくなってたみたいなので修正しました。
    あと、alt+クリックを有効にするかどうかのオプションを追加。

    返信削除
  3. Irvineを設定する(パスを設定)する箇所がわかりません。
    (オプションにはチェックボックスが二つしか表示されません。)
    win 7 x64
    chrome 11.0.696.71

    返信削除
  4. そもそもパスの設定は不要です。

    返信削除
  5. >そもそもパスの設定は不要です。
    あら・・・・失礼しました。
    では他の問題で動作しないのですね。

    ちなみに
    ・環境変数pathの設定
    ・irvineの設定
    などは不要なのでしょうか?

    現在起きている現象としては、
    ・irvineにリンクが送られない(そもそもアプリが立ち上がらない)
    ・ツールバーのボタンを押下して出てくる各機能が押せない(文字が選択できるようになってる)
    です。

    irvine1_3_0(先ほど書き忘れました)

    返信削除
  6. 1回だけirvineを管理者権限で起動してやればCOM情報がシステムに登録されるので、path設定etcは不要です。

    ツールバーのボタンを押して出てくるメニュー項目上でカーソルがテキスト選択のになってるのは正常動作です。
    クリックすれば各機能が呼び出されますが、irvine呼び出しがうまくいってない場合は何も起きないので押せないと思ったのでしょう。

    返信削除
  7. 拡張機能ページをデベロッパーモードにしてIrvineApi extensionのところのbackground.htmlをクリックしてDeveloper Toolsウィンドウを開いて、ツールバーのConsoleをクリックすると動作ログが見れます。
    それを見ればどこでエラーが起きてるのかわかると思います。

    返信削除
  8. デバックモードで実行し、Consoleを見てみましたが、わかりませんでした・・・

    ・Errors,Warningsはそれぞれ出力なし。

    logを見て見たのですが、処理をすると
    IrvApi → invoke → addUrl
    で、ログの出力が終わっています。

    取得したURLをirvineに渡せていないのでしょうか?

    返信削除
  9. addUrlまで動いてるのならあとはCOM呼び出しがうまくいってないって事ですね。
    そこから先は基本的にircom.exe使った方法と同じなので、firefoxとかのircom.exe使った拡張できちんと呼び出せるかどうかチェックしてみて下さい。

    あと、そもそもIrvineApi extensionは最新版(0.3.2)ですか?OS等のバージョンの記載はありましたが、拡張についてはないのでどうなのかわかりません。
    この拡張は自動更新には対応してないので自分で最新版をインストールしないと駄目ですよ。

    返信削除
  10. IrvineApi extensionは最新版を使用しています。
    また、firefoxの拡張では正常に動いています。。

    なんだろ・・・

    返信削除
  11. だったら原因不明なので、こちらとしては対処不能です。
    どうしても動かしたいなら一応ソースは同梱してるんでそちらでデバッグしてみて下さい。
    irvine呼び出しの本体であるirvineapi.dllはVC++2010 Express Editionでビルドできます。

    返信削除
  12. 動きましたのでご報告します。

    ソースみてデバッグは敷居が高いので、
    もう一度再インストールしてみようと思い立ち、やってみたところ動きました。

    ・chromeの再インストール
    ・IrvineApi etensionの再インストール
    ・Irvineの再インストール *2

    正直何が原因だったのか分からないのですが、とりあえず動いたのでヨシとします。

    お付き合い頂いてありがとうございました。

    返信削除
  13. 何度管理者権限で起動してからやっても、はじめての軌道は管理者権限で実行する必要があります。と出て自動的に起動ができません。どうすればいいでしょうか?

    返信削除
  14. そもそも何を管理者権限で起動しましたか?
    もしそれがchromeだとしたら見当違いです。
    そのメッセージはirvineが出している物なのでirvineを管理者権限で起動してください。
    irvineを管理者権限で起動したにもかかわらずそれが出るのならどうしようもないので使うのは諦めましょう。

    返信削除
  15. Chrome用Irvine拡張非常に重宝しております。

    動作についてはChromeとIronのそれぞれで確認しました。
    そこでリクエストなのですが、リファラーをつけて Irvine へ送るようになりませんでしょうか。個人的には常にリファラーをつけたいのですが・・・。

    よろしくお願いします。

    返信削除
  16. リンク全部送るのにはリファラ付けてるけど単品で送る方には付けてなかったですね。
    一応スクリプトでIrv.Download使ってるところをIrv.AddUrlAndReferer使うように少し書き換えれば付けられますけど、やる気無いなぁ。

    Irvine側で適当なリファラ付けるように設定すれば事足りるんで。

    返信削除
  17. パッケージが無効です:CRX_FILE_NOT_READABLE
    と出てインストール出来ないのですが…

    返信削除
  18. 画像付リンクの場合imgとa hrefと両方登録されちゃうのはどうになかならないでしょうか?

    返信削除
  19. 両方登録されるのはわざとそうしています。どうにかしたいなら自分で改造してください。

    返信削除
  20. パッケージが無効です:CRX_FILE_NOT_READABLE
    と表示される方へ

    自分の場合はcrxファイルを一度ダウンロードし、ダウンロードしたフォルダとは別のフォルダに移してから試してみるとインストールできました。

    返信削除
  21. 重宝しております。ふと気づいたのですが、
    file:///F:/などで始まるローカルhtmlでIrvineへURLが渡っていないようです。
    検証いただければ幸いです。

    返信削除
  22. そりゃmanifest.jsonで http:// か https:// でしか動かないように設定してますから動くわけ無いですよ。
    ローカルファイルに対しても動くようにする気なんてまったく無いですから、どうしても動かしたいなら自分で改造してください。

    返信削除
  23. 今日irvineをインストールさせていただいたのですが、「すべてのURLを送る」「すべてのURLを送る(IMGを含む)」「リンクのインポート」のすべてがクリックしても作動しないんです
    Alt+左クリックや左クリック+右クリック等他のやり方をごちゃ混ぜにしながらガチャガチャやってたら、
    一度だけirvineの方にURLがたくさん並んだんですが、それ以降成功しなくて・・・
    よろしければ分かりやすい解説をお願いいたします
    因みにwindows vistaです

    返信削除
  24. Alt+左と左+右はデフォルトでは機能しないようになってるので、オプション画面で使いたいものにチェックをつけてやる必要があります。
    まずはそこを確認して下さい。
    あとページの読み込みタイミングなどによってはうまく機能しない場合もあるので、きちんと読み込み終わってから操作したほうが良いでしょう。

    返信削除
  25. 迅速な対応大変感謝してます
    しかし、指摘をいただく前の、両方チェックしていた時と、指摘後の片方のみにチェックした時の動作は全く一緒でした
    どちらでも「Alt+左クリック」を押すと通常のダウンロード・保存が作動するので、元々ショートカット的なものだったんですね
    恐らく私のインストールの仕方がどこかで間違っていて、chromeとirvineが噛みあってないと思います
    今から、私がirvineをインストールするまでの流れを書かせていただきますので、よければ参考にしてください
    お手数かけまして申し訳ないです・・・

    返信削除
  26. まず公式サイトにてirvineをインストールしました
    そして、「chrome irvine」と検索してhttp://neta-times.net/entries/676/の流れに沿ってderaw様の最新版拡張機能をインストールしました
    この拡張機能は、オプションが白紙しか表示されなかったので、改良版のb2ox様の拡張機能をインストールしました(「irvineapi.crx」「shellexec.crx」「wifky-plugins」の3つのうち「irvineapi.crx」のみをインストールしました)
    ファイルを開いて、「irvineapi.crx」をchromeのブラウザ画面の右上の設定ボタン(モンキーレンチみたいな工具マーク)の左隣までドラッグし、ドロップしました
    すると「irvineapi extensionをインストールしますか?」という画面が出てきたのでインストールしました
    オプションでirvineへの送り方の選択が表示されるようになりました

    これが一連の流れです
    どこかインストールの仕方に間違いがありましたでしょうか?
    PCに関してはあまり知識がないので、分かりやすく解説していただけると助かります
    夜分遅くに何度も、そして厚かましい質問や要求をしてしまい大変申し訳ありませんでした
    本日はこれで失礼します、返信は明日の午後になると思います

    返信削除
  27. なんでderaw氏版とうちのを両方共入れるのかなぁ。キーバインド被るから誤動作して当然。
    deraw氏版のほうはアンインストールして下さい。

    返信削除
  28. 返信ありがとうございます
    早速deraw様のほうをアンインストールしました
    しかしirvineへURLを送る・リンクをインポートするという作業がどうしても作動しないようです
    右クリックが出来るサイト、出来ないサイトでそれぞれ試したところ、出来る方では右クリックの項目にirvineapiが出ていて、そこにカーソルを合わせるとURLを送る・リンクの抽出が選択できます
    出来ないサイトではブラウザ画面右上の「Irv」マークを押すことで同様の選択ができます
    しかし両方とも押しても反応がなく、URLを送る・リンクをインポートすることが出来ませんでした
    他にどこか間違いはなかったでしょうか?
    もしかしたら私の持っているPCでは力不足なのかも知れませんね、もちろん私自身の知識も足りませんが

    返信削除
  29. この拡張がchrome plusで動かないのは仕様ですか?

    返信削除
  30. ChromePlus 1.6.3.1以降での動作チェックはしてないしする気も無いので知りません。
    わざわざChromePlusで動かなくなるように作りこんだ覚えは無いので仕様ではありません。

    うちではGoogle Chrome 17で問題なく動いてます。

    返信削除