Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2013年09月07日] [更新 2021年10月26日] Delphi 一般・その他 [未分類 - OS の操作等]
   
[ ファイル名を指定して実行 ] のダイアログ
動作確認等 Windows 7 U64(SP1), Windows 8.1, Windows 10 ビルド 10586
[整理番号 - 1700]







[ ファイル名を指定して実行 ] ダイアログ


下図は Windows 7 の [ファイル名を指定して実行] のダイアログです.
このダイアログの名前の入力欄にプログラムの実行ファイル名やコマンドを入力すると,それらのプログラムやコマンドを実行することができます.



図1
[ファイル名を指定して実行]
  • [名前] に calc.exe と入力しているので,[OK] ボタンをクリックすると電卓が起動する
  • notepad だとメモ帳が起動する
  • D:\ と入力すると,ドライブ D がエクスプローラで表示される

  • ワードの新規起動は winword
  • エクセルの新規起動は excel
  • エクスプローラの起動は explore
  • フォトの起動は ms-photos: (Windows 10)

[ファイル名を指定して実行] のダイアログは,[Win] + [R] のキー操作で起動できます.[Win] は Windows キーと呼ばれるキーのことです.このキーがないキーボードもあります.



図2
[Win] キーの場所
  • [ファイル名を指定して実行] ダイアログは [Win] + [R] で起動できる




01_[ ファイル名を指定して実行 ] で実行可能なコマンド類


[ファイル名を指定して実行] のダイアログでは,EXE, BAT, CMD ファイル等の実行可能なファイルは,そのファイル名を指定すれば実行できます.その他のファイルも,そのファイルの拡張子に対して [既定のプログラム] が設定されていればそのプログラムで開くことができます.

ここでは,それ以外,特殊フォルダや仮想フォルダ,システムの設定,コントロールパネル関係のダイアログ等を表示するためのコマンド類について確認していきます.

AppUserModelId と settingcontent-ms ファイル関係は,本ページの後半に説明があります.



[備考 1]
長いコマンドの文字列は,タイプミスを防ぐため,通常は文字列を選択してコピーし,ダイアログの入力欄に貼り付けます.コピーには [Ctrl} + [C],貼り付けには [Ctrl] + [V] のキー操作が使用できます.

[備考 2]
[ ファイル名を指定して実行 ] で実行可能な特定のコマンドや,コマンドの一覧というものが存在するわけではありません.[ ファイル名を指定して実行 ] のダイアログは,文字通り,ファイル名を指定して実行するためのダイアログです.実行形式のファイルやプログラム,あるいはコマンドを実行するツールとして [ファイル名を指定して実行] のダイアログが利用できるということです.




01-1_各種システム関係ダイアログとツール類の起動コマンド


Windows 付属のメモ帳等,あるいはワード,エクセルは,以下のコマンドで起動できます.


notepad       // メモ帳を起動
mspaint       // ペイントを起動
calc          // 電卓を起動
cmd           // コマンドプロンプトを起動
powershell    // パワーシェルを起動
explorer      // エクスプローラを起動 (ショートカットキーは [Win] + [E])
winword       // ワードを起動
excel         // エクセルを起動


当サイトの以下の記事に,コントロールパネル関係の設定ダイアログや各種ツール類の起動コマンドの例があります.
最初のリンクの記事には 170 を超えるコマンドの例が,次のリンクの記事には 50 以上のコマンドの例を掲載していますが,実際にはもっと多くのコマンドがあります.



例えば,下の最初のコマンドを実行するとデバイスマネージャーの設定画面を表示します.2 番目のコマンドでは,システム情報のダイアログが表示されて,自分のコンピュータにインストールされている Windows のバージョン等を知ることができます.


control.exe /name Microsoft.DeviceManager
control.exe /name Microsoft.System


[備考]
上のリンクの記事中のコマンドの先頭部分の %SystemRoot%\System32\ は省略可能です.これはシステムフォルダを意味しています.システムフォルダ内は自動で検索してくれます.このような状態を「パスが通っている」といいます.パスが通ったフォルダにあるプログラムやファイルは,そのフォルダ名を省略しても実行したり開くことができます.
また,コマンドの文字列の拡張子 .exe (ドットエクゼ) も省略可能です.




01-2_特殊フォルダやコントロールパネル関係 CLSID (GUID) 一覧


以下のリンクは CLSID 値 (GUID) と呼ばれる値のリストです.CLSID は,特殊フォルダやシステム関係のダイアログ等を識別する値のことです.この値を Shell コマンドとして実行します.



例えば以下の最初のコマンドを実行するとコントロールパネルを表示します.2 番目のコマンドでは [すべてのタスク] と呼ばれる設定関係のリストを表示します.3 番目のコマンドは通知領域 (タスクバーの右端のアイコン類) のアイコンの表示の設定ダイアログを起動します.

explorer はなくても動作しますが,後述のエクスプローラのアドレスバーでコマンドを実行した時に違いがあります.explorer があると新規にエクスプローラを起動して表示し,explorer がないと,現在のエクスプローラで表示します.


explorer shell:::{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}
explorer shell:::{ED7BA470-8E54-465E-825C-99712043E01C}
explorer shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}


[備考]
Shell (シェル) は,Windows の機能を使用するための機能または機能の総称です.
エクスプローラもコントロールパネル,コントロールパネルでの設定操作も Windows の Shell が提供しています.Windows 用のアプリケーションを開発するプログラマがよく使用する shell32.dll という DLL には,シェルの操作用の関数が多く含まれています.


上の最初のコマンドを Windows10 で実行した結果です.[コントロールパネル] の表示となっています.表示は,前回コントロールパネルを表示した時の表示形式となっています.



図3

上の 2 番目のコマンドを Windows 10 で実行した結果です.[全てのタスク] というタイトルになっています.設定操作関係の全てのリストに近いと思われます.この表示は GodMode (神モード) と呼ばれているようです.



図4

下図は,3 番目のコマンドの Windows 10 における実行結果です.通知領域アイコン (タスクバーの右端の アイコン類) の表示の設定ダイアログを起動します.設定のタイトルは「タスクバーに表示するアイコンと通知の選択」となっています.これらは常駐アプリのアイコンです.



図5




01-3_特殊フォルダ等をエクスプローラで表示するシェルコマンド


上で述べた CLSID の値は記号の羅列で,実際にはどのフォルダを意味するのか分かりません.特殊フォルダ等は,実際のフォルダが判別しやすいようなコマンドが用意されています.
次のリンクには,主に特殊フォルダを表示するための Shell コマンドの一覧があります.



例えば以下のコマンドを実行すると,どちらも,現在ログインしているユーザの [ライブラリ] のフォルダをエクスプローラで表示します.表示後,エクスプローラのアドレスバーの右端の空白部分をクリックすると,その特殊フォルダの実際のフォルダのパス名が表示されます.

この 2 つのコマンドは,後述のエクスプローラのアドレスバーでコマンドを実行した時に違いがあります.explorer.exe があると新規にエクスプローラを起動して表示します.explorer.exe がないと,現在のエクスプローラで表示します.


explorer.exe shell:UsersLibrariesFolder
shell:UsersLibrariesFolder


図6
shell:UsersLibrariesFolder の実行結果
  • Windows 10 で実行
  • 現在のユーザの [ライブラリ] フォルダを表示

[備考 1]
プログラム言語を使用してプログラムを作成すれば,以下のリンクの図のように,Shell コマンドのリストやフルパスを取得することができます.


[備考 2]
特殊フォルダを定義した環境変数を [ファイル名を指定して実行] のダイアログで実行すると,その特殊フォルダをエクスプローラを起動して表示します.
例えば %APPDATA% を実行すると,C:\Users\<ユーザー名>\AppData\Roaming というフォルダを表示します.表示後,エクスプローラのアドレスバーの右端の空白部分をクリックすると,その特殊フォルダのフルパスが表示されます.





01-4_ms-settings: URI スキーム一覧


Windows 10 では UWP (ユニバーサル Windowsプラットフォーム) が実装されました.それに伴い設定アプリを起動するための ms-settings: URI スキームと呼ばれるコマンドが実装されています.
以下のマイクロソフトのページにその一覧が掲載されています.



例えば次の最初のコマンドを実行すると,システムの設定画面が表示され,[電源とスリープ] の項目が選択された状態となります.2 番目のコマンドは,[詳細情報] という設定ページを表示します.3 番目のコマンドは,マウスカーソルのサイズや色の設定を表示します.


ms-settings:powersleep
ms-settings:about
ms-settings:easeofaccess-mousepointer


この他,アプリの起動に関する下表のような URI スキームもあります.Windows 8 / 8.1 にも実装されている URI スキームもありますが,実装されていてもスキーム名が異なる場合があります.
URI スキームという表現はありませんでしたが,http:, mailto: は Windows 7 でも使用可能です.

下表以外のアプリの URI スキームは,[既定のプログラム] [関連付けを設定する] ダイアログを以下のコマンドで表示して確認できます.[説明] の先頭が URL: となっているのが該当します.この [名前] の末尾に : (コロン) を追加して実行すれば,[現在の既定のプログラム] が起動します.
このコマンドは,Windows 10 の新しいバージョンでは「既定のアプリ」となっていて, URI スキームの確認はできません.


control.exe /name Microsoft.DefaultPrograms /page pageFileAssoc


http: URI スキーム HTTP の URI スキーム.既定のブラウザが起動
mailto: URI スキーム メールの URI スキーム.既定のメールソフトの起動
ms-windows-store: URI スキーム Windows ストアアプリの URI スキーム
ms-call: URI スキーム 通話アプリの URI スキーム
ms-chat: URI スキーム チャットアプリの URI スキーム
ms-people: URI スキーム People アプリの起動
bingmaps: URI スキーム
ms-drive-to: URI スキーム
ms-walk-to: URI スキーム
Windows マップアプリの起動
例 1 : 東京を中心とした地図を表示するコマンド
    bingmaps:?cp=35.681298~139.766247
例 2 : 西脇市を検索して表示するコマンド
    bingmaps:?where=西脇市


ms-settings: URI スキームで表示した設定関係のパネル (設定アプリの(画面,ダイアログ) です.左上の表示が全て [設定] となっています.これが,他のコマンド類で表示したダイアログとは違います.
この [設定] パネルが,これまでの [コントロールパネル] に相当します.



図7
ms-settings: の実行結果
  • Windows 10 で実行
  • [スタート] ボタンをクリックしたメニューで [設定] を選択した時と同じダイアログ
図8
ms-settings:powersleep の実行結果
  • Windows 10 で実行
  • [電源とスリープ] の設定ページ




01-5_Windows 10 の Microsoft Edge と IE 11 の起動


Windows 10 で実装された Microsoft Edge は以下のコマンドで起動できます.
1, 2, 3 番目のコマンドは AppUserModelId (AUMID) の値を使用しています.4 番目と 5 番目のコマンドは URI スキームを使用しています.


// 起動してホームページを表示
shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge
//
起動して指定ページを表示
"shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" www.gesource.jp/weblog/ // 起動してBingでの検索結果を表示 "shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" Delphi TBitmap // 起動してブランクのページを表示 microsoft-edge:about:blank // 起動して当サイトのトップページを表示 microsoft-edge:http://mrxray.on.coocan.jp/index.htm


Windows 10 で IE 11 (Internet Explorer) をコマンドで起動する場合,AppUserModelId を使用しても,実ファイルのフルパスで指定しても,iexplore.exe だけでも起動します.


shell:AppsFolder\Microsoft.InternetExplorer.Default
"shell:AppsFolder\Microsoft.InternetExplorer.Default" http://mrxray.on.coocan.jp/
"%ProgramFiles%\Internet Explorer\iexplore.exe"
"%ProgramFiles%\Internet Explorer\iexplore.exe" http://mrxray.on.coocan.jp/index.htm
iexplore.exe http://mrxray.on.coocan.jp/index.htm


コマンドとして,インターネットのウェブページのアドレスだけを指定した場合,Windows 7 / 8.1 ではデフォルトのブラウザ (既定のプログラム) でそのページを表示します.
Windows 10 の場合,[このファイルを開く方法を選んでください] というダイアログが現れたら,そのダイアログでブラウザを選択します.



[備考 1]
UWP (ユニバーサル Windows プラットフォーム) のアプリである Microsoft Edge は,上記のように AppUserModelId の値で Shell コマンドを使用するか,microsoft-edge: URI スキームを使用すると起動できます.

[備考 2]
2020年1月に Microsoft Edge は,Chrome 版と呼ばれる Google の Chromium をベースとしたブラウザになりましたが,UWP アプリとしての機能も残されています.Chrome 版の Microsoft Edge は,コマンド MSEdge で起動できます.




01-6_Windows のバージョン確認用のコマンド


Windows のバージョン確認には,以下のコマンドが使用できます.


// Windows のバージョン情報ダイアログを表示するコマンド
winver

// [Windows の仕様] があるダイアログを表示 (ショートカットキーは [Win] + [Pause] )
ms-settings:about

// Windows の内部バージョンとビルド番号確認用のコマンド
cmd ver

// システム情報のダイアログを表示 (先頭に Windows のバージョンがある)
msinfo32


図9
Windows のバージョン情報




02_Windows 7 の [スタート] に [ ファイル名を指定して実行 ] を追加


[ファイル名を指定して実行] のダイアログは,Windows XP では [スタートメニュー] にありました.
Windows 7 ではなくなっています.
Windows 7 の場合,[ファイル名を指定して実行] のダイアログは [Win] + [R] でも表示できますが,スタートメニューからマウス操作で表示できると便利です.その設定方法です.

まず,タスクバーの何も表示されていなところで,マウスの右ボタンをクリックします.現れたポップアップメニューから [プロパティ] を選択します.


図10
プロパティ
  • タスクバーの何もないところで,マウス右ボタンをクリック
  • [プロパティ] をクリック

現れたダイアログの [スタートメニュー] タブを選択します.
そこの [カスタマイズ] ボタンをクリックします.
表示されたダイアログの [ファイル名を指定して実行] コマンドという,項目をクリックしてチェックボックスにチェックを入れます.


図11
項目をチェック
  • [スタートメニュー] タブ
  • [カスタマイズ] をクリック
  • [ファイル名を指定して実行] コマンドをチェック

ダイアログを閉じて,画面左下の [スタート] ボタンをクリックすると,[ファイル名を指定して実行] というメニューが追加されています.


図12
スタートメニューに追加される




03_Windows 8.1 の [ ファイル名を指定して実行 ] ダイアログ


Windows 8.1 には [スタート] メニューに [ファイル名を指定して実行] があります.
Windows 8.1 の [ファイル名を指定して実行] ダイアログは,下図のように,画面左下のウィンドウズのロゴ (スタートボタン) の上で,マウスの右ボタンクリックのメニューから起動できます.



図13
[ファイル名を指定して実行]
  • 左下の [スタートボタン] でマウスの右ボタンをクリック
図14
起動したダイアログ




04_Windows 10 の [ ファイル名を指定して実行 ] ダイアログ


Windows 10 には [スタート] メニューに [ファイル名を指定して実行] があります.
Windows 10 の [ファイル名を指定して実行] ダイアログは,下図のように,画面左下のウィンドウズのロゴ (スタートボタン) の上で,マウスの右ボタンクリックのメニューから起動できます.



図15
[ファイル名を指定して実行]
  • 左下の [スタートボタン] でマウスの右ボタンをクリック
図1 図16
起動したダイアログ

[スタート画面] にピン留めするには,以下の操作を行います.
[ファイル名を指定して実行] のダイアログを表示中であれば,タスクバーのアイコン上でマウスの右ボタンクリックのメニューから操作できます.



図17
[すべてのアプリ] をクリック
  • 左下の [スタートボタン] をクリック (マウスの左ボタン) すると図のメニューが表示される
図18
以下の手順を実行
  • [Windows システムツール] を展開 (↓をクリック)
  • [ファイル名を指定して実行] でマウスの右ボタンをクリック
  • [スタート画面にピン留めする] をクリック
図19
ピン留めの削除方法
  • [スタート] ボタンをクリックしてスタート画面を表示
  • ピン留めした画像の上でマウスの右ボタンをクリック
  • [スタート画面からピン留めを外す] をクリック




05_エクスプローラで [ ファイル名を指定して実行 ]


エクスプローラ (Windows Explorer) の アドレスバーも [ファイル名を指定して実行] のダイアログとして利用できます.
その実際の例です.



図20
コマンドの実行
  • アドレスバーの右の空白部分をクリック
  • コマンドを入力して [Enter]
図21
起動したダイアログ
図22
実行したコマンドのフルパス
  • コマンド実行後にアドレスバーの右の空白部分をクリックする

コマンドプロンプトを起動すると,エクスプローラで表示しているフォルダをカレントディレクトリとして起動します.カレントディレクトリの移動の手間が省けます.
管理者権限での起動はできません.エクスプローラを管理者権限で起動しても,コマンドプロンプトは一般ユーザ権限での起動となります.



図23
コマンドプロンプトの起動
図24
起動したコマンドプロンプト
  • 現在のフォルダがカレントディレクトリになっている

[備考 1]
エクスプローラからフォルダやファイル名をコマンドプロンプトにドラッグ・アンド・ドロップすれば,コマンドプロンプトにそのフォルダ名等を貼り付けることができます.この時,パス名に空白文字ある場合,自動的に " (ダブルクォーテーション) が付加されます.あらかじめ CD 等の文字列をタイプしておけばカレントディレクトリの移動操作に利用できます.

この機能は,コマンドプロンプトを管理者権限で実行している時は利用できません.


[備考 2]
[スタートメニュー] からコマンドプロンプトを起動する時,カレントディレクトリを指定して起動できます.コマンドプロンプトのプロパティダイアログを表示して,[ショートカット] タブの [作業フォルダ] でディレクトリを設定します.


[備考 3]
エクスプローラは [Win] + [E] で起動できます.
[ファイル名を指定して実行] のダイアログでは,explorer.exe または explorer で起動できます.





06_[ ファイル名を指定して実行 ] のショートカットを作成


デスクトップに [ファイル名を指定して実行] のショートカットを作成する手順です.

Windows 7 の場合は,以下の最初のパス名を,Windows 8.1 と Windows 10 の場合は 2 番目のパス名を,エクスプローラのアドレス欄に入力して [Enter] キーを押します.そうすると [ファイル名を指定して実行] がある場所が表示されます.このファイルを選択して,マウスの右ボタンで表示されるメニューから [コピー] をクリックします.
次にデスクトップ画面で,マウスの右ボタンクリックのメニューから [ショートカットの貼り付け] を選択します.


※ Windows 7
C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories

※ Windows 8.1 / 10
C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools


[備0考 1]
上のパス名を [ファイル名を指定して実行] のダイアログで実行しても,[ファイル名を指定して実行] がある場所を開くことができます.

[備0考 2]
記事のタイトルは [ファイル名を指定して実行] のショートカットの作成ですが,エクスプローラで表示中のファイルは,同じ方法で,任意の場所にショートカットを作成できます.


図25
目的のファイルをコピー
  • [ファイル名を指定して実行] を選択
  • ポップアップメニューで [コピー] をクリック


  • [ポップアップメニュー] は,マウスの右ボタンクリックで表示されるメニューのこと
図26
ショートカットの貼り付け
  • デスクトップのポップアップメニューで [ショートカットの貼り付け] をクリック
  • 元がショートカットなので [貼り付け] でもよい

上の操作の説明で示した [ファイル名を指定して実行] ファイルの場所は,次のようにして調べることができます.
下図は Windows 7 の場合です.スタートメニューで [ファイル名を指定して実行] があるのは [アクセサリ] です.そこで,[アクセサリ] を [エクスプローラ] で表示します.



図27
[ファイル名を指定して実行] がある場所

Windows 10 では,下図のような操作で元のファイルがある場所を開くことができます.
スタートメニューの [ファイル名を指定して実行] で,マウスの右ボタンクリックのメニューから [その他] に移動します.そこでメニューを展開して [ファイルの場所を開く] をクリックします.



図28




07_[ ファイル名を指定して実行 ] のコマンドのショートカット作成


前項の方法は,[ファイル名を指定して実行] そのもののショートカットを作成する手順でした.
[ファイル名を指定して実行] のコマンドのショートカットを作成するには,以下のどちらかのコマンドのショートカットを作成します.ショートカットの作成方法は,後述の [デスクトップにコマンドのショートカットを作成] を参考にしてください.

最初のコマンドのショートカットを [管理者として実行] で起動しても,[ファイル名を指定して実行] のダイアログは管理者権限では実行できません.
rundll32.exe のショートからから起動する場合は,管理者権限で起動できます.ただし,ダイアログの表示位置は画面の左下とはなりません.また,ダイアログの説明文も表示されません.


explorer.exe shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}
rundll32.exe shell32.dll,#61




08_[ ファイル名を指定して実行 ] ダイアログを管理者権限で実行
plRunFileDlg.zip [1,305 KB] 2016年07月05日版(ソースコードなし)
32 ビット Windows 用 + 64 ビット Windows 用


Windows に実装されている [ファイル名を指定して実行] ダイアログは管理者権限 (管理者特権) としては実行できません.
[ファイル名を指定して実行] のダイアログは,一般的なアプリケーションのプログラムではなく,システムにインストールされている DLL 内の関数を呼び出して使用しています.そのため,その DLL 内の関数を実行するプログラムを作成するか,前項のようにショートカットを作成し,そのプロパティを設定する必要があります.

上のアイコン画像をクリックすると,筆者が作成したプログラムをダウンロードできます.ダウンロードしたらブロックを解除してください.



ブロックを解除して plRunFileDlg.zip を解凍 (展開) したら, plRunFileDlg.exe を管理者権限で実行できるようにプロパティを設定します.
plRunFileDlg.exe を選択したら,マウスの右ボタンクリックで表示されるメニューから [プロパティ] をクリックします.下図のダイアログが表示されます.このダイアログの [互換性] のタブを表示して,[管理者としてこのプログラムを実行する] をチェックして,[OK] でダイアログを閉じます.
そして,plRunFileDlg.exe を起動します.



[備考 1]
DLL (ディーエルエル) は,複数の関数類 (プログラムで使用する関数) を格納したファイルです.プログラマは,これらの関数類を使用してアプリケーションを開発します.

[備考 2]
一般的に,管理者権限が必要なアプリケーションは,起動時に [ユーザアカウント制御] という管理者への昇格ダイアログを表示するように作られています.そのようなアプリケーションでは,[ファイル名を指定して実行] のダイアログを管理者特権で起動する必要はありません.

管理者権限で実行する必要がないアプリケーションを管理者権限で実行すると,機能の一部が正常に動作しない場合があります.



図29
プロパティの設定
  • 管理者権限で実行 (管理者として実行) できるようにする
図30
管理者への昇格ダイアログ
  • plRunFileDlg.exe を起動すると現れる
  • [はい] をクリック

下図が実際に起動した plRunFileDlg.exe です.
上の図のように,EXE (エクゼ) ファイルを管理者として実行するように設定しておくと,その EXE ファイルの ショートカットから起動しても管理者権限 (管理者特権) で起動します.



図31
plRunFileDlg.exe の実行画面




09_デスクトップにコマンドのショートカットを作成


任意の場所に [ファイル名を指定して実行] で使用可能なコマンドのショートカットを作成する方法です.以下の図の説明ではデスクトップとしています.
よく使用するコマンドのショートカットを作成すると便利です.筆者の場合,テストで使用するコマンドのショートカットを,一時的にデスクトップに作成して使用することがよくあります.

作成したショートカットを実行するということは,[ファイル名を指定して実行] のダイアログを表示しないでコマンドを実行することと同じです.
shell コマンドのショートカットを作成する場合,先頭の explorer.exe は省略できません.



[備考]
記事のタイトルはデスクトップにショートカット作成となっていますが,どのフォルダ内にも同じ手順でショートカットを作成できます.


図32
ショートカットの作成
  • デスクトップでマウスの右ボタンクリック
  • [新規作成]
  • [ショートカット]
図33
コマンドの入力
  • 入力したら [次へ]
  • shell コマンドを入力する場合,explorer.exe は省略できない
図34
ショートカットの名前を入力
  • 入力したら [完了]
図35
作成したショートカット
図36
実行するコマンドの変更
  • ショートカット上でマウスの右ボタンクリック
  • メニューから [プロパティ] を選択
  • リンク先に新しいコマンドを入力する
  • [管理者権限] (管理者として実行) で起動したい場合は [詳細設定] で設定可能




10_ショートカットのアイコンを変更


ショートカットのアイコンは変更できます.
上の図のダイアログで [アイコンの変更] をクリックすると下図のダイアログが現れます.このダイアログの [参照ボタン] で,拡張子が .ICO のアイコンファイルを選ぶか,アイコンが含まれているファイルを選択します.
アプリケーションの実行ファイルである 拡張子が .EXE (エグゼ) のファイルには,そのアプリケーションに関係するアイコンが格納されています.



図37
アイコンの変更
  • shell32.dll
    imageres.dll
    に多くのアイコンがある
    (ファイル名をタイプして [Enter] で表示可能)
  • その他,以下のファイルにもアイコンがある
    imagesp1.dll
    compstui.dll
    dsuiext.dll
    mmcndmgr.dll
    netshell.dll
    pifmgr.dll
    setupapi.dll
    wmploc.dll
    inetcpl.cpl
    main.cpl
    Moricons.dll
    ImageRes.DLL
  • [参照] では単独のアイコンファイルも選択できる
図38
アプリの EXE ファイル内のアイコン類
  • EXCEL.EXE の例

[備考 1]
ショートカットのアイコンを変更しても画像が変化しないことがあります.そのような場合はデスクトップ画面でマウスの右ボタンをクリックして [最新の情報に更新] を選択します.それでも更新されない時は,例えば当サイトの以下のプログラムを使用する方法もあります.

以下のリンクのページの先頭にダウンロードのリンクがあります.それをダウンロードして解凍すると,その中の [05_xxxx] というフォルダに Project1.exe というファイルがあります.これを選択して [Enter] キーを押します.そして [Button1] をクリックします.
Project1 の部分は適当な名前に変更しても動作します..exe (拡張子エクゼ) は変更しないでください.拡張子を変更すると動作しません.


[備考 2]
EXE や DLL 内のアイコンの多くはマルチアイコンです.マルチアイコンには同じデザインで異なるサイズ,異なる色数のアイコンが複数格納されています.
以下のページからダウンロードしたファイルに含まれている EnumDllExeIcons.exe を使用すると,EXE や DLL 内のアイコンを一括してマルチアイコンファイルとして保存できます.保存したマルチアイコンファイルは,アイコン画像の作成,編集ソフト等で読み込んで表示できます.

保存したアイコンファイルの画像がエクスプローラの表示で変化しないことがあります.これはエクスプローラのアイコンキャッシャが更新されないために発生します.[ファイル名を指定して実行] のダイアログで以下のコマンドを実行してみてください.
      ie4uinit -ClearIconCache // Windows 7 の場合
      ie4uinit -show          // Windows 10 の場合




11_コントロールパネル関係のショートカットの作成


コントロールパネル関係のショートカットは,以下の方法でも作成できます.
[ファイル名を指定して実行] のダイアログで以下のコマンドを実行します.表示項目から,必要な項目をドラッグ & ドロップすれば,ドロップした場所にショートカットができます.アイコンは,エクスプローラ表示されているものと同じになります.変更する必要はないでしょう.
下図では [プログラムの変更と削除] のショートカットをデスクトップに作成しています.

この手順で作成したショートカットは,前項の方法で作成するショートカットとは違い,実行するコマンドやダイアログの変更はできません.固定したコマンド専用のショートカットとなります.


shell:::{ED7BA470-8E54-465E-825C-99712043E01C}


[備考 1]
[ドラッグ & ドロップ] (引きずって落とす) とは,マウスのボタンを押したら放さないで,そのまま引きずって,別の場所まで移動したらマウスのボタンを放す操作のことです.
特に断り書きがなければ,マウスのボタンを押す,クリックは「左」ボタンを意味します.
& (アンパサンド) という記号は,英語の and (アンド) に相当する記号です.
「ドラッグ & ドロップ」は,D & D と書くこともあります.

[備考 2]
今回はマウスの「左」ボタンのドラッグ & ドロップでショートカットを作成しています.
マウスによるドラッグ & ドロップは,左のボタンか右のボタンによる操作か,元のファイルの種類とドロップする場所によって動作が違います.多くの場合,マウスの「左」ボタンでドラッグ & ドロップすると移動になります.注意してください.


図39
設定ダイアログのショートカット
  • ドラッグ & ドロップすればショートカット作成
  • 名前は [F2] で編集状態にして変更できる
  • プロパティのダイアログからも名前は変更できる


  • ドラック & ドロップを途中で中止するには [ESC] キーを押す

個別の設定ダイアログが必要なければ,コントロールパネルから直接,あるいはコントロールパネルから表示した項目から,必要な項目をドラッグ & ドロップしてもいいかも知れません.
下図は [プログラム] のショートカットを作成しています.



図40
コントロールパネルからショートカットを作成




12_コマンドプロンプトから [ ファイル名を指定して実行 ] を表示


実用的にも必要性としてもほとんど考えられませんが,以下のコマンドをコマンドプロンプトから実行すると,[ファイル名を指定して実行] のダイアログを表示できます.
64 ビット版のコマンドプロンプトから実行した場合は,説明文は表示されません.32 ビットのコマンドプロンプトから実行すれば説明の文章も表示されます.コマンドプロンプトを管理者権限で実行すれば [ファイル名を指定して実行] のダイアログも管理者権限 (管理者特権) で実行されます.


rundll32.exe shell32.dll,#61


次のコマンドでも [ファイル名を指定して実行] のダイアログを表示することができます.
このコマンドでは説明の文章が表示されますが,コマンドプロンプトを管理者権限で実行しても [ファイル名を指定して実行] のダイアログは標準ユーザの権限での起動となります.


start explorer.exe shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}
start shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}



[備考 1]
最初のコマンドの rundll32.exe は,DLL 内の関数を実行するためのプログラムです.
上のコマンドは,shell32.dll 内の 61 番目の関数を実行します.この 61 番目の関数が [ファイル名を指定して実行] のダイアログを表示する関数です.何番目かを示す値を序数と言います.
[ファイル名を指定して実行] というプログラムのファイルは存在しません.

[備考 2]
先頭が shell のコマンド (shell コマンド) をコマンドプロンプトから実行する場合は,上記のように start コマンドの引数として実行します.


図41
コマンドプロンプトから起動
  • 64 ビットのコマンドプロンプトから起動した場合




13_[ ファイル名を指定して実行 ] の履歴を残さない - Windows 7


ネット上に [ファイル名を指定して実行] の履歴を消去する方法の記事があります.
履歴を消去しただけだと,またすぐに履歴が蓄積されます.そこで,実行の履歴を残さない設定をしてみることにします.

下図のダイアログを表示します.タスクバーの何もないところでマウスの右ボタンクリックのメニューから [プロパティ] を選択し,[スタートメニュー] のタブをクリックします.あるいは,次のコマンドを [ファイル名を指定して実行] ダイアログで実行します.


rundll32.exe shell32.dll,Options_RunDLL 3

下図の赤枠の [最近開いたプログラムを [スタート] メニューに保存し表示する] のチェックを外して [OK] ボタンでダイアログを閉じます.
ただし,この設定を行うと,スタートメニューの左側のペインに表示されている [最近開いたプログラムの一覧] も全てなくなります.これでは困るという方は,この方法は利用できません.



図42
[最近開いたプログラムを [スタート] メニューに保存し表示する] をクリックしてチェックを外す
図43
[最近開いたプログラムの一覧] に何も表示されない

スタートメニューの左ペインの項目は, 最近実行したプログラムをシステムが判断してリストしています.したがって,基本的にはコンピュータを使用していると変化します.このリストの項目は自分で作成できますが,最近開いたプログラムとはなりません.固定のメニューとなります.もし,それでも構わないのであれば,上記の履歴を残さない方法が利用できます.

左ペインにプログラム等を表示するには,以下の図の説明のように操作します.
最初の図では,[すべてのプログラム] を表示して,Microsoft Excel 2010 で,マウスの右ボタンクリックでメニューを表示し,そこから [スタートメニューに表示する] を選択しています.
次の図では,デスクトップのプログラムのショートカットで同じ操作をしています.



[備考 1]
個人的には,このようなメニューは固定の方がいいと思っています.
人は,何かを探す時,どこに,どのあたりにあったかという記憶で探します.それが移動してしまっては探しにくくなります.また,システムが勝手に決めた「最近開いたプログラム」ばかりを使うわけではありません.

[備考 2]
履歴を全く残さないのではなく,上の図の設定ダイアログの [カスタマイズ] で,[最近使ったプログラムの表示数] を 1 などの少ない値にすることも考えられます.1 にしておげば,最後に入力したコマンドがいつでも参照できます.
上のダイアログで説明したチェックを外して [適用] をクリックすれば履歴が削除できます.チェックを入れてから [OK] ボタンで閉じれは表示数の設定が有効になります.


図44
スタートメニューに表示する方法
図45
別のプログラムもスタートメニューに追加
図46
スタートメニューに追加したプログラム
  • これらは固定メニューとなる
  • ドラッグ & ドロップで表示の順番の変更が可能
  • マウス右ボタンクリックのメニューから削除が可能
  • デフォルトでは 10 項目まで追加可能




14_[ ファイル名を指定して実行 ] の履歴を残さない - Windows 8.1


Windows 8.1 の場合も Windows 7 の場合とほんど同じです.ただし,ダイアログのタイトル名が違います.表示するタブは [ジャンプリスト] とします.ダイアログを表示するコマンドは Windows 7 の場合と同じです.

下図の赤枠の [最近開いたプログラムを保存する] のチェックを外して [OK] ボタンでダイアログを閉じます.この設定を行うと,ジャンプリストから [最近使ったもの] のリストが消えます.



図47
[最近開いたプログラムを保存する] のチェックを外して [OK] で閉じる

図48
ジャンプリストから [最近使ったもの] のリストがなくなる




15_[ ファイル名を指定して実行 ] の履歴を残さない - Windows 10


Windows 10 の場合は下図のダイアログを表示します.画面左下の [スタート] ボタンをクリックして,[設定] をクリックします.表示されたダイアログで [パーソナル設定] をクリックします.そして左ペインの [スタート] を選択します.あるいは,以下のコマンドを [ファイル名を指定して実行] ダイアログで実行します.


ms-settings:personalization-start

このダイアログで [よく使われるアプリを表示する] をオフにすると,履歴が削除され,それ以降に実行した履歴も残りません.
この設定をすると,Windows 10 の場合も,スタートメニューの [よく使うアプリ] がメニューから消えます.必要であれば,ピン留めの機能で対応することになります.

参考までに,下図の設定前の画面に,[よく使うアプリ] として表示されているアプリは,決して筆者がよく使うアプリではありません.システムが勝手にリストしているだけです.



図49
[スタート] の [よく使われるアプリを表示する] をオフにする
図50
[よく使うアプリ] の一覧が消える
  • 左が設定前
  • 右が設定後




16_AppUserModelId 一覧と AppUserModelId によるアプリの起動
plAppUserModelId.zip [2.0 KB] 2021年10月26日版 (EXE のみ.ソースコードなし)
32 ビット Windows 用 + 64 ビット Windows 用


AppUserModelId として登録されているアプリは,コマンド shell:AppsFolder を実行すれば見ることができます.AppUserModelId の値を見るには,表示方法を [詳細] にして,メニューの [表示] の [詳細表示の設定] をクリックしてダイアログを表示します.そのダイアログで,[AppUserModelid] をチェックすれば一覧に表示されます.
メニューバーが見えてない時は,[整理] [レイアウト] で [メニューバー] をチェックします.

下図はその実行結果です.一覧は表示されていますが,AppUserModelId の値をコピーしたりして取得することはできません.



[備考]
AppUserModelId の概念は Windows 7 で導入されましたが,Windows 7 では shell:AppsFolder は機能しません.
アプリケーションが AppUserModelId の値を指定していない場合,AppUserModelId の値は,そのアプリケーションのインストールの際にシステムが自動的に設定します.


図51
AppUserModelId アプリ一覧
  • AppUserModelId を実行
  • 表示方式を [詳細] にする
    (右の赤枠から)
  • メニューの [表示] [詳細表示の設定] のダイアログで AppUserModelid チェック
  • カラム (列) をドラッグ & ドロップして見える位置に移動

上のダウンロードのアイコン画像をクリックすると,筆者が作成したプログラムをダウンロードできます.ダウンロードしたらブロックを解除してください.
ブロックを解除して plAppUserModelId.zip を解凍 (展開) したら, plAppUserModelId.exe を起動して [一覧取得] ボタンをクリックします.下図のように AppUserModelId として登録されているアプリの一覧が取得できます.項目を選択してダブルクリックするとそのアプリが起動します.



図52
AppUserModelId の一覧
  • [コピー] は取得リストのクリップボードへのコピー
  • コピーするとエクセルに貼り付けできる




17_settingcontent-ms ファイルの一覧と実行
plsettingcontent.zip [1,611 KB] 2016年08月01日版 (EXE のみ.ソースコードなし)
32 ビット Windows 用 + 64 ビット Windows 用


Windows 8 では,システム関係のダイアログ起動の設定ファイルが,以下のフォルダにまとめて配置されるようになりました.拡張子は表示されませんが .settingcontent-ms です.設定内容は XML で記述されています.これらのファイルを実行すれば,ファイルに応じたダイアログが表示されます.


%LocalAppData%\Packages\windows.immersivecontrolpanel_cw5n1h2txyewy\LocalState\Indexed\Settings\ja-JP


上のダウンロードのアイコン画像をクリックすると,筆者が作成した settingcontent-ms ファイルの一覧を取得するプログラムがダウンロードできます.ダウンロードしたファイルのブロックを解除して解凍 (展開) したら,plsettingcontent.exe を起動します.
[一覧取得] ボタンをクリックすると一覧が取得できます.少し時間がかかります.
下図はその実行結果です.筆者の Windows 10 の環境では 526 項目ありました.項目を選択してダブルクリックするか [Enter] でそのダイアログを表示します.

リストの上の表示は,選択ファイルの拡張子付きのフルパスです.この文字列をコピーして [ファイル名を指定して実行] のダイアログで実行すれば,該当するダイアログを表示します.[コメント] はファイルのプロパティの [コメント] の値です.ダイアログのタイトルではありません.
これも必要であれば,既に述べた方法で,このファイルのフルパスをコマンドとしたショートカットをデスクトップ等に作成することもできます.



[備考]
settingcontent-ms ファイルは,コンピュータウィルスの感染に利用されていることが明らかになったため,2018年8月14日の WindowsUpdate で対策されています.その後にリリースされた Windows 10 (新規購入の Windows 10) には,このファイルがありせん.したがって,上のリンクからダウンロードした EXE ファイルを実行しても一覧は取得できません.


図53
settingcontent-ms ファイルの一覧
  • [コピー] は取得リストのクリップボードへのコピー
  • コピーするとエクセルに貼り付けできる




18_エクセルやワードの起動とコマンドプロンプトからの起動


エクセルやワードも,本ページの最初の図の説明に書いてある通り,[ファイル名を指定して実行] のダイアログで起動できます.エクセルは excel.exe,ワードは Winword.exe で起動できますが,.exe は省略可能です.大文字小文字の区別は必要ありません.

拡張子の .exe が省略できるようになっているのは,システムの [環境変数] に登録された拡張子は省略可能となっているからです.拡張子は,そのファイルの種類を表しますから,実際には付けた方がいいかも知れません.

プログラムは,システムフォルダ等のバスの通った場所にない場合,ディレクトリ名が必要ですが,エクセルやワード等はディレクトリ名を省略することができます.ディレクトリ名が省略できるプログラムは,レジストリにその設定情報があります.
特に,エクセルやワードはバージョンが異なるとインストール先のディレクトリも異なるため,EXE のある場所を直接指定して起動するよりも合理的です.


必要性がある場面は思い付きませんが,コマンドプロンプトからもエクセルやワードのプログラムが起動できます.
コマンドプロンプトには多くの専用のコマンドが用意されています.それらのコマンドを使用して何かの情報を取得したり操作することができます.一方 [ファイル名を指定して実行] のダイアログは,コントロールパネル等のダイアログを表示したりするには便利です.

下図はエクセルの場合です.shell: コマンドと同じように,start コマンドの引数 (パラメータ) として実行します.エクセルのブックファイルの場合,通常は,拡張子 .xls に対応する [既定のプログラム] がエクセルになっています.したがって,起動するプログラムをエクセルにしなくても開くことができます.



図54
コマンドプロンプトからプログラムを起動
  • excel.exe では起動不可
  • start excel.exe
    で起動できる
  • .exe を省略して start excel でも起動可能
  • 電卓は start calc または calc だけで起動できる
  • メモ帳は start notepad または単に notepad で起動可能

テキストファイルの場合,通常はテキストエディタと呼ばれるメモ帳などが [既定のプログラム] となっています.したがって,テキストファイルをエクセルで開くには,明示的に excel.exe を指定して実行することになります.



図55
テキストファイルをエクセルで開く例