2016年2月15日月曜日

Windowsのショートカットで起動オプション

WindowsのEXEは右クリックからショートカットを作成できる。そのショートカットにはリンク先のテキストボックスに起動するEXEのパスがあり、そこにオプションを追加すれば起動オプションとして渡すことができる。

参照:クラウドサービスプラットフォーム Cosminexus:eclipse.exeの-cleanオプションをショートカットに設定する:ソフトウェア:日立

じゃぁスクリーンセーバーにも起動オプションを渡せるのか?と思って試してみた。
御存知の通り、WindowsのスクリーンセーバーはEXEの拡張子をSCRに変更したものだ(そのため中身はEXEと全く同じであり、EXEと同じ動作が可能。なのでウイルスソフトウェア等がスクリーンセーバーに擬態して入ってくることが可能)。
リンク先のEXEをコピーしてSCRに変更、同時にリンク先のファイルもEXEからSCRに変更する。そうすればそのショートカットはスクリーンセーバーになりインストールすることが可能。次にEXEと同じようにリンク先に起動オプションを追加して起動する。そうすると、起動オプションは無視され、実行したファイルパスと"/S"という文字列の2個が渡された。ということで、SCRというショートカットにオプションをつけてもWindows側で不要な文字列は削除するらしい。

さて、"/S"というオプションだが、これは「あなたはスクリーンセーバーとして起動しなさい」とEXEに知らせるためのものらしい。他にはPやCがあり、それぞれ「プレビューモードで動作しなさい」と「コンフィグモードで動作しなさい」という意味らしい(プレビューは基本的にSとして理解していいようだ)。

普段から使用できるソフトウェア(EXE)だが、起動方法によってはスクリーンセーバーとして動作し、起動オプションで設定を渡す、という動作を行いたかったが、そのような動作はできないようだ。正しい動作としては/Cで設定アイアログを表示し、適当なフォルダに設定ファイルを保存、/Sで起動された場合は設定ファイルを読み込んでスクリーンセーバーとして動作、オプションがない場合は通常のEXEとして動作する、あたりが落とし所かもしれない。

0 件のコメント:

コメントを投稿