[[ ショートカットのプロパティの変更 ]]
まず一番上の`場所:`入力欄に、フォルダ(パス)を指定し、
[リスト] ボタンを押すと、フォルダ中のショートカットの一覧を表示する。
(フォルダを引数にして、これを起動した場合、一覧は 既に表示済み。)
その一覧の中から一つを、クリックして選択すると、
そのショートカットファイルの詳細を表示する。
(ショートカットを引数にして起動した場合、詳細は表示済み。)
[変更] ボタンを押すと、ショートカットを設定する。
リンク切れのショートカットの右クリックで長く待たされる(操作不能になる)
といった事が、かつてあり、リンク先をファイルのプロパティを使わずに
変更する為に作った。そのため直接ファイルを触るのを避け、フォルダを引数に
できるようにしている。
このスクリプト(HTA)への引数は、
フォルダか、ショートカットファイルを、1つのみ受け取る。
( 例えばこれを SendTo に入れて、リンク切れのショートカットを渡そうと
すると、ショートカットファイルの右(反側)クリックで問題が起きるようなら
同様に嵌るだろうから、その親フォルダを引数とした方が良い。)
フォルダを引数とした時は、その中のショートカットのリストを表示する。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
▼各入力欄とボタン
「場所」入力欄と、[リスト] ボタン
「場所」入力欄にフォルダを指定し、
[リスト] ボタンを押す、または欄内で [Enter] を押すと、
フォルダ中に存在するショートカットファイルのリストを表示する。
そのリスト中のどれかのクリックで、その詳細(プロパティ)を表示する。
リスト中の ×印の付いているのは、リンク切れ。
この入力欄に、ショートカットファイルを指定した場合は、すぐに
その詳細を表示する。
「リンク名」入力欄
ショートカットファイルのファイル名。拡張子も含めたもの。
.lnk なら、通常のショートカットファイル。
.url なら、インターネットショートカットファイル。
「リンク先パス」入力欄
リンク先のパス・ファイル名を入力する。
引数部分に付いては、ここでなく、下の欄へ入力の事。
リンク先パスに空白を含んでいても二重引用符は不要。
ここに表示されるパスについては、実際に設定されている値と異なる場合がある
という問題がある。
例えば、環境変数を使っている場合、設定されている値をスクリプトから取得する
と、環境変数が展開(解釈)されたものが得られるが、生の設定値は分からない。
が、環境変数で設定する事は出来る。ただ、設定後、リンク先パスは、再取得して
表示し直すので、展開された値を設定したかのように見える。
「引数」入力欄
リンク先のアプリケーションなどに渡す引数(オプション)を入れる。
(Windowsの)ショートカットのプロパティ(ダイアログ)では、リンク先入力欄にて、
パスの後ろに続けて入力するが、ここでは、この別欄へ書く。
この欄で、一オプション中に、空白文字などを含む時は、
(リンク先パスとは違って)、二重引用符で括る必要がある。
( 本当に必要かどうかは、リンク先アプリケーション次第かも知れないが。)
各チェック欄は、
チェックを入れれば、その項目が入力可能となり、
[変更]や[作成]ボタンを押した時に、この項目を設定する。
どれにもチェックなく、名前も同じなら、
[変更] は、ただ、詳細を再取得し、表示し直す。
[変更] ボタンは、そのショートカットのプロパティを変更する。
チェックが付いている項目を設定し、付いてない項目はスキップする。
もし、名前欄の記述が変更してあるなら、ファイル名を変更する。
( [変更] では、場所欄は参照しないので、移動はできない。)
新規作成したい場合は、 隣の [作成]ボタンを使用。
[作成] ボタンは、ショートカットを新規作成する。
この時は、場所欄をフォルダパス、リンク名欄をファイル名、とする。
_※ 既存のショートカットの詳細表示中に、リンク名を書き変え、
[変更] の方を押すなら、そのショートカット自身のファイル名を変更する。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
▼「リンク先パス」のパス・ファイル名
通常のパスの体裁、X:\xxx といった、ドライブ文字に : コロンと区切りがあるなら、
あるいは指定の環境変数が(パスで)あるなら、
今は存在しないパスを、リンク先に設定できる。
環境変数でパスを設定できるが、スクリプトから設定値を得る時は、
展開された(その時の実測)値になってしまう。
ファイルのプロパティ(ダイアログ)では、設定のままの値が見られる。
ディレクトリ区切り文字 \ を、/ で入力しても通るが、\ で設定される。
( インターネットショートカット(.url)でない、普通のリンクの場合。)
パスが通っている名前(コマンド)を指定した場合、パスに変換されて、
保存される。レジストリの "App Paths" で通っているパスは対象外らしい。
( Windowsのダイアログ -プロパティや新規作成- では、変換されたパスに
環境変数が含まれ得るが、スクリプトからだと、それも展開された
ものになってしまう。)
名前(コマンド)のみを指定は出来ず、その場合はエラーになる。
パスが通っているかは考慮されない。(使われる前に、リンク先の
アイコンを出さなくてはならない等で、探すようなことはしないだろう。)
その名前の前後どちらかに \ を付けるとエラーにはならないが、
勝手に、`C:\名前` というようなパスに改ざんされてしまうようだ。
\ のみ一文字でもエラーにならず設定できるが、
C:\ などと現在のドライブのルートに変えられてしまう。
Shell:xxx (Shellプロトコル?)は、それが解釈されたパスが設定されてしまう。
引数になら、そのままが設定されるので、例えば、
パスに %windir%/explore.exe 、引数に Shell:xxx は出来る。
Shell: をパスに設定するのは、ファイルのプロパティ(ダイアログ)でも
できないようである。新規作成では、指定すると、インターネット
ショートカット(.url)の方が作られる。
プロパティ(ダイアログ)で、リンク先が、グレイ(入力不可)になっている
ショートカットのリンク先は、これでは変更することが出来ない。
これらのリンク先は、取得されるものと、されないものがあるが、
このスクリプトからは、入力不可かどうか判断できない。
プロパティ(ダイアログ)では、リンク先には、アプリケーションを表す名前等が
入っているが、こちらでは、リンク先が得られるものがあり、
例えば、%windir%\Installer\{<CLSID>} や
%APPDATA%\Application Data\Microsoft\Installer\{<CLSID>}
にある exe ファイルを指していたりする。
これらを変更しようとしても無効。
リンク先を ::{~~~} といった形式(~~~は、CLSID)で指定して
作成する事はできるが、そのリンク先を取得することはできない。
[作成] ボタンを押した後、リンク先は、空になってしまうが、
失敗したわけではない。
プロパティ(ダイアログ)で見ると、そのリンク先は、グレイ(入力不可)に
なっている。
リンク先の右端の上の ○ × ? は、リンク切れかどうか、
リンク先が存在しているかどうか、を示す。
( url ショートカットの場合、この判断はしない。)
? は、リンク先が取得できない場合に表示する。
リンク先が存在していても、× リンク切れ(存在していない)と
判断してしまうショートカットがあるようだ。( スクリプトのファイル
の存在を試すメソッドから、false を返される。)
64ビット機のアプリケーションへのショートカットで、機能するリンク
なのに、リンク先には、それが存在しない ( プロパティ・ダイアログで
見ると別の場所がリンク先になっている ) というものがあるようだ。
(多分、WOW64 だか、ファイル システム リダイレクタ だかの問題。)
そのように対応できないショートカットのタイプが幾つかある。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
▼その他の設定項目
各設定項目は、チェックを付けなければ、設定(変更)しない。
インターネットショートカット(URL)では、リンク先以外の設定はできない。
( こちらはテキストファイルなので直接の編集が可能ではある。)
アイコンのパスは、空を設定しようとすると、エラーになるが、
,0 などと、パス部分を省略し、カンマとアイコン番号のみで、
済ませる事ができる。あるいは、, のみで、,0 の指定になる?
指定せず(チェックを付けず)、新規作成するのは問題ない。
( Windows側で自動的に設定してくれる。)
Hotkey と WindowStyle については、ほとんどよく分からない。
またプロパティ(ダイアログ)の方で設定する方が良いと思われる。
Hotkey
構文: [修飾キー]キー
修飾キーは、Alt+ Ctrl+ Shift+ Ext+ 、省略可能、複数指定可能。
キーは、 A-Z 0-9 F1 ~ F12 等
ショートカットファイルのプロパティでは、ショートカットキーの欄で、
文字や数字キーを押すと、Ctrl + Alt + キー と入り、
デスクトップやフォルダで使えたりするが、その設定である。
ただ、そのプロパティ(ダイアログ)で設定するのと違い、
実際に使えるようにはならないかも知れない?。
こちらでは、'Ctrl+Alt+キー' 以外も設定できるが、使い道は分からない。
WindowStyle
1: アクティブ(通常)、3: 最大化、7: 最小化、か?。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
他、
スタートメニュー中などにある展開可能なフォルダのショートカット?
(`種類`には、単にフォルダとある) を、場所に指定した場合、
リストには、展開先のではなく、ショートカットフォルダ自身の中にある
target.lnk ファイル一つしか、現れない。
これには、リンク先=ターゲットのフォルダのパスが指定されている。
(このフォルダの中には、他に Desktop.ini がある。)
(この類のメニューは、Windows 7 では無くなっているかも知れない。)