ダウンローダ Irvineは、大きめのファイルや複数のリンクに分けられている細かいファイル(ネット小説系は、やけにリンク細切れが多くて、後でゆっくり見たい時大変)をダウンロードするのに便利なんですね。
今だったら、DCさくらの方がWindows7も正式サポートしているんで、こっちの方が良いと思うんですが、何故か こっちを使い続けています。
Windows7の動作報告関係のページだと、Irvine使えるよ!って報告例が多いのですが、一部の方は使えないよ。と報告している方も居るようですね。
- Irvineフリー版|Windows 7 アプリケーション動作報告リスト
http://w7.vector.jp/softrev/detail.php?s_no=20263 - Windows 7 @ ウィキ - 対応ソフト(x64)
http://www15.atwiki.jp/win7/pages/30.html
自分のマシンは、Windows7(x64)でIE9の環境(正確にはメインブラウザはSleipnir)なんですが、Irvineは ちゃんと使えています。(Irvine 1.3.0)
ただ、ちゃんと使えるようにする為には、ちょっとしたテクニックがあるようです。現時点で、判っている事を、メモしておきます。
Tips1.Program Files フォルダ以外にインストールする
これは結構有名なようです。
- Program Filesの読み取り専用を解除できません。 - Microsoft Answers
http://answers.microsoft.com/ja-jp/windows/forum/windows_7-files/program/7333d51a-f8db-4164-b87e-ed5a2b01245f - Windows Vista & 7のUAC対策について
http://www.trycut.com/uac.htm - Windows Vista/7 のファイルの仮想化(Virtualization)について
http://pasofaq.jp/windows/vista/virtualstore.htm
自分の場合、適当なフォルダを掘って、その中にIrvineを入れて動かしています。
Tips2.実行ファイルに管理者権限を与えずに動かす
先のwikiでは、管理者権限与えて動かせば。とありますが、どうも管理者権限を与えてしまうと、IEの右クリックメニューによる Irvine連携が機能しなくなるようです。
(もしかしたら、最初の起動だけは管理者権限必要かも知れません)
これ、何で気づいたかと言うと、オレオレなスクリプトで、Irvineにダウンロードアイテムを登録しようとした際に気づいたんですね。
JavaScriptで、IrvineにアクセスするActiveXオブジェクトを起動しようと思って、簡単なJavaScriptを書いたんですよ。
o = new ActiveXObject('Irvine.Api'); WScript.Echo(o);
これを実行したら、以下のエラーが出てきたんですね。
$ cscript test.js Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. test.js(1, 1) (null): 要求された操作には管理者特権が必要です。
これを見て、「はっ」と気づいたんですよ。IEの右クリックメニューでも、「オブジェクトが生成できない」とか言ってたな。と。
で、Irvineの実行ファイルに与えていた管理者権限を外したら、ちゃんとIEの右クリックメニューからの「Irvineへ登録」が機能し始めた次第です。
テケトーな予想ですが、以下の動きじゃないかな?と思ってます。
- 管理者権限で起動した際、自分のアカウントとは別の専用アカウントで起動。
- スクリプトからアプリのActiveXオブジェクトを得ようとする(new ActiveXObject(...))。
- スクリプトのアカウントはxxさん、アプリのアカウントは管理者権限さん。
アカウントが違うので、アプリへのアクセスを蹴られる。 - 結果、ActiveXオブジェクトの生成に失敗する。
要するにクライアントのアカウントと、Irvineのアカウントを同じにしろや。って事です。
だから、Irvineに管理者権限を与えてしまうと、クライアント 例えばスクリプトやIEやSleipnirも管理者権限で起動しないと、連携出来ないって寸法な訳ですね。
最後に
という訳で、ちょっとした気づきでした。
後、おまけですが、Irvineにダウンロードアイテムを登録するには、ぶっちゃけ以下のコードで大体OKのようです。
var Irvine = new ActiveXObject('Irvine.Api'); var IrvineItem = new ActiveXObject('Irvine.Item'); IrvineItem.Url = ダウンロードしたいURL; IrvineItem.FileName = ダウンロード時のファイル名; Irvine.Current.AddItem(IrvineItem);
APIリファレンスは、 http://hp.vector.co.jp/authors/VA024591/doc/api.txt にあります。