今まではVASSAL Global Key Commandの一括化とAutoHotkeyで指定キーからアプリが起動できるで
VASSALユニットの画像名称を取得してきた。
しかし、その中で使っているVBScriptが将来廃止されるとの事で、代替方法を見つける必要がある。
その方法を以下にメモしておく。
1.実現方法
1.1基本的な考え方
(1)VBScriptファイルとバッチファイルを使わない。
(2)UWSファイルをPowershellから起動する。
(3)コマンドプロンプトを非表示にする為にPowershellのHiddenオプションを使う。
(補足)今までのバッチファイルを直接起動すると、コマンドプロンプトが必ず表示される。
1.2具体的な方法
(1)UWSファイルのショートカットを作り、以下の設定を行う。ポイントは次の3つ。
(A)リンク先のPowershellのオプションにWindowStyle Hiddenを指定。
→コマンドプロンプトを非表示にする為。
(B)リンク先のPowershellのオプションにExcecutionPolicy RemoteSignedを指定。
→PowerShellスクリプトを実行可能にするため為。
(C)実行時の大きさを最小化にする。
→コマンドプロンプトを非表示にする為。(この設定をしないと一瞬コマンドプロンプトを表示する)
(2)ahkファイルの内容は、起動するプログラムを今までのVBScriptファイルではなく、
上記のショートカットに変更する。(下図の枠内)
2.実行結果
海兵第2連隊第1大隊のユニットにカーソルを置いてF1キーを押すと
下図のように小ウィンドウが表示されて画像名称を取得できる。
この時にコマンドプロンプトは表示されない。
3.参考資料
下記のWEBページにお世話になりました。ありがとうございます。
・Windowsでウインドウを表示しないスクリプトの実行方法
<個人的な感想>
いや~、PowerShellは分かり難くエラー発生、動作しないなど苦戦した。
諦めかけていた時に上記WEBページを見つけて何とか実現できた。とても有り難い。
なお、直ぐに今回の代替方法に移行するか、暫く様子を見て移行するかは今後決める予定。