2016/09/06 初回アップ
このページで説明すること
私のように次から次へと PCに新しいアプリやツール類をインストールして試していると、以前にインストールしたアプリが何のためのアプリなのか、どんな使い方をするのかと言ったことを忘れてしまうことが多い。しょっちゅう使うアプリならそんなことはないが、年に1~2回、困ったときに使うだけだと使い方を思い出すのに暫く時間がかかって、トラブルで焦っている時には結局使いものにならないこともある。
そんな時に、アプリを実行したら自動でダイアログが開いて、そこにアプリの概要や設定情報、簡単な使い方などが表示されると便利だ。世の中にはそんな便利ツールが有るのではと探しているが、なかなか眼鏡に叶うツールが見つからないので、自力で解決する方法を探してみた。
ついでに、デスクトップのアイコンという繋がりで、Windows8辺りから起動時に頻繁に表示されるようになった UAC(「このアプリを実行しますか?」という警告ダイアログ)を表示させないようにする方法についてもメモしておく。
いつものお約束で、ここで書いたことは単に私が実験的に試した結果であって、結果の保証はもちろん既存システムへの思わぬ弊害や問題がないことを保証するものではありません。情報を利用する場合は、利用者自身の適切な判断と責任で行って下さい。
1.アプリを実行したら、まず必要情報を表示したい
例えば、たまにしか使わないスクリーンキャプチャアプリを使おうとして起動したら起動画面がいきなりタスクバーに隠れてしまって起動したかどうか分からなかったり、私の場合ローカルサーバーを立ててその上で自作の perlや PHPのスクリプトをテストしたいと思って、 XAMPPとか an_httpd などというツールを導入してあるんだが、これらのツールでは テスト用のファイルを置く場所(フォルダ)や、そのファイルをブラウザ上で表示させる表示のさせ方を知らないと使えない。(勿論 Webには使い方などの情報は溢れるほどあるが、独自に設定をカスタマイズしてあったりすると、設定ファイルを開いて追いかけないと分からないし、設定ファイル自体どこに何の設定があるかなんて覚えていない。)
仕事でスクリプトを書いているのではないし、しょっちゅう使うわけでもなく、アイデアが湧いた時やトラブルが生じた時だけにそうしたツールを使うので、そうした情報は一々記憶していられない。その割に性格柄初期設定のまま使うことは稀で、何がしかカスタマイズしてしまう悪い癖もあって、使う度に設定内容を思い出すのが大変。
そんなことも分かっているので、簡単な自分用忘備録を HTMLやメモ帳で作って、アプリの実行ファイルのフォルダーに置いてあるが、今度はそれを忘れてしまっていることも多い。(実際に、前回作ったことを忘れて同じような忘備録ファイルは2つも3つも出来ている!)
そこで考えたのが、そんなアプリを起動したら最前面に最低限必要な情報をダイアログで表示させられればいい、ということ。欲を言えば簡単にテキスト情報だけ、ちょっと手間をかけたら HTMLなどで図面入りの簡易説明書みたいなもの、どちらも表示出来れば尚良いだろう。
2.具体的な手順
以下の方法は、デスクトップのショートカットをクリックしたら、アプリの起動と平行して情報ダイアログを最前面に表示させる手順です。
【1】 メモ帳などのテキストエディタを起動して以下を参考にシェルスクリプトを記入する。
<スクリプトの簡単な説明>
1行目の C:\xampp\xampp-control.exe は起動するツールの実行ファイルのパスを指定する。
2行目は変数の宣言なのでそのまま記述。
3~6行目は起動時に表示させる文字列を変数 Msgstrに代入する命令で、表示する文字列は
途中で改行して次の行の文字列を繋げる場合は一旦ダブルクオーテーションを閉じて、
7~8行目は、htmlマニュアル等をブラウザで表示する場合のファイルパスの指定で、8行目の赤字部分のようにファイルのフルパスを指定する。
9行目で、3~6行目で設定した文字列 Msgstr のコメントダイアログを表示させ「OK」ボタンが押されるまで待つ。
その他の注意事項としては、文字列中で ダブルクオーテーションなどの特殊文字を表示させるには、"(ダブルクオーテーション)でエスケープする必要がある。ダブルクオーテーション自身を表示させるには "" と2つ続ける。
また、8行目のファルダパスのようにフォルダ名/ファイル名中に半角スペースがある場合は %20で置き換える必要がある。
【2】デスクトップにアプリ起動用のショートカットを作成する。
上記のスクリプトを拡張子 .vbs で適当な名前(name.vbs など)をつけて、起動するアプリの実行ファイルと同じフォルダに保存する。
そのスクリプトファイルの上で右クリックして、「ショートカットの作成」を行う。
出来たショートカットは切り取って、デスクトップフォルダに貼り付ける。
【3】デスクトップのショートカットのアイコンをアプリのアイコンに変更する。
このままだとショートカットのアイコンは 右図 のようなシェルスクリプトのものになるので視認性が良くない。
スクリプトの中で実行するアプリのアイコンなどに変更したほうが分かりやすい。
作成したショートカットのアイコンのプロパティを開き「アイコンの変更」ボタンを押す。(vbsファイルを直接デスクトップに置くと「アイコンの変更」ボタンは表示されない=変更できないので注意)
アイコンの変更ダイアログが開くので、「参照」ボタンを押して 使いたいアプリの実行ファイルなど、適宜アイコンの表示されているファイルを指定する。(勿論下の一覧から選択するのが簡単だが、アプリに適したアイコンがあることは稀だ)
【4】 その他
上の例で示したスクリプトは一例で、ウインドウズシェルスクリプトではアプリの実行やメッセージの表示以外にもかなり色々出来る。 例えば、ダイアログ表示を先に行い 「OK」ボタンを押してからアプリをスタートさせるには 1行目あるいは8行目の「・・・.Run 」 と言う行を最後の Ret = MsgBox(・・・) の行の下に記述する。 この例では 「OK」ボタンだけが表示されるが、例えば「Yes/No/Cancel」ボタンなどを表示させて押されたボタンによって処理を分岐させることも可能(なはず)。
3.Windows10で厳しくなった UACダイアログを表示させないようにする
Windows Vistaから導入された不正なプログラムの実行を監視して、警告する機能である UAC(ユーザーアカウントコントロール)だが、Windows7 > Windows8とバージョンアップする度に厳しくなって、Windows7 時代に「管理者権限で実行」を行えば回避できていた UACの警告ダイアログが Windows10では消えないケースが増えた。
【1】 比較的多く紹介されている方法は、コントロールパネルなどから「ユーザーアカウント制御設定の変更」を選んで、セキュリティレベルを下げる(「通知しない」に設定する)方法。
しかしこの方法は常にセキュリティレベルを下げてしまうという問題がある。
やはり、特定のアプリの実行だけをセキュリティチェックから除外したいが、Microsoftはそれに直接応える機能を提供していない。
【2】 そこで利用するのがタスクスケジューラという Windowsの基本機能。名前の通り特定の仕事(アプリ)を事前にスケジュールしておいて、設定の時間になったり PCの起動やシャットダウンなどの操作が行われた場合に、登録しておいたアプリを自動で実行するようにできる。しかしタスクスケジューラで設定した時間に必ずしもユーザーが PCの前にいるとは限らないので、仮に UACダイアログが表示されるようなアプリを実行させようとすると UACの 「OK」ボタン入力待ちで止まってしまって用をなさないということも考えられる。
そこで タスクスケジューラは、ここで登録されたアプリに「UACのチェック」をパスして実行するという回避策を準備している。タスクスケジューラだから予め起動するタイミングを設定しておくことが本来の使い方だが、デスクトップのショートカットにタスクを登録してダブルクリックでタスクを即実行させることもできるので UACダイアログの表示なしでアプリの実行ができる。
以下はその具体的手順
【3】 タスクスケジューラの起動とタスクの作成
タスクバーの虫眼鏡アイコン①(「WebとWindowsを検索」)をクリックして開く検索欄②に「task」と入力すると「最も一致する検索結果」③の欄に「タスクスケジューラ」が表示されるのでそこをクリックしてタスクスケジューラを起動する。
タスクスケジューラが起動したら右側の「操作」ペインから「タスクの作成」をクリックする。(注:「基本タスクの作成」ではない)
タクスの作成ダイアログが表示されるので「全般」タブで「名前」にわかり易い名前をつけて、下の方の「最上位の特権で実行する」にチェックを入れる。
「操作」タブを開く。タスクの新規作成の場合、「操作」リストはまだ空欄なので「新規」ボタンをクリック。
「操作」の種類が「プログラムの開始」になっていることを確かめ、「参照」ボタンをクリックして起動するアプリ(UACが表示されるアプリ)の実行ファイルを指定して「OK」ボタンを押す。
最後に「タスクの作成」ダイアログの下の「OK」ボタンを押してタスクの作成を終了する。
タスクスケジューラに戻るので、タスクスケジューラライブラリに作成したタスクの名前があることを確認する。
もしタスクの設定内容を変更したければ、このタスクスケジューラライブラリの一覧上でダブルクリックすれば作成時と同じ画面が開いて修正入力が行える。
【4】 デスクトップのショートカットにタスクの登録をする
タスクスケジューラを終了し、デスクトップを右クリックして「新規作成」>「ショートカット」でショートカットを新規作成する。
「項目の場所を入力」という欄に C:\Windows\System32\schtasks.exe /run /tn "task_sample"
("task_sample"の部分は作成したタスクの名前、各項目の間に半角スペースを忘れない)と入力し「次へ」を押す。
ショートカットの表示される名前に分かりやすい名前をつけて「完了」を押す。
【5】 出来上がったショートカットをダブルクリックして実行すると以下の様なウインドウが一瞬表示されるが、すぐに消えてターゲットのアプリが UACの確認なしに起動する。