このページの本文へ

前へ 1 2 次へ

Windows Info 第360回

Windowsにおけるプログラム実行ルールをさらに詳しく掘り下げる

2023年01月01日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 前回はcmd.exeとpowershellにおけるプログラム実行ルールを見たが(「Windowsでプログラムを実行するルールをあらためて掘り下げる」)、今回はもう少し突っ込んで、Windowsのプログラム実行ルールを見ることにしよう。

スタートメニューの右クリックや「Win+R」で表示される「ファイル名を指定して実行」なども、最終的にはAPIを介してプログラムを起動している

 Windowsに限らず、OSにはプログラムを起動するAPI(Application Program Interface、アプリケーション用にOSが提供する機能)が用意されている。Windowsには、「CreateProcess」と「ShellExecuteEx」がある。そのほかにもいくつか特殊なプログラム実行機能があるのだが、ここでは通常使うと思われるAPIとして、この2つを見ていくことにする。検証には前回と同じく、Windows 11 Ver.22H2(OSビルド22621.963)を用いた。

 CreateProcessは、基本的なプログラムの実行用のAPIで、実行ファイルを指定して起動する。これに対してShellExecuteExは、Windowsのシェル(Explorer)が提供するプログラム起動用のAPIだ。CreateProcessとの大きな違いは、データファイルを指定して、これに関連付けられたプログラムを使ってデータファイルを「開く」ことでプログラムを起動する機能だ(前回解説した「関連付け起動」)。

 APIの話は細かいし、プログラムを作ったことがない方には、理解しにくいと思われるので、それぞれ概要のみを説明することとする。詳細は下記のMicrosoftの解説ページなどを参照してほしい。なお、WindowsのAPIには、文字列が1バイトコードのみのもの(末尾がA)と文字列に2バイトコードを渡せるもの(末尾がW)の2つがあるが、文字列の形式の違いを除けば動作は同じである。実際には、APIを呼び出すプログラムを作成してテストした。

●CreateProcess
 https://learn.microsoft.com/ja-jp/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessa
●ShellExecuteEx
 https://learn.microsoft.com/ja-jp/windows/win32/api/shellapi/nf-shellapi-shellexecuteexa

CreateProcess

 CreateProcessでは、起動プログラムのパスと拡張子を省略できる。逆に言えば、パスと拡張子を省略しないと、該当のファイルが実行対象となる。ただし、実行できるのは「exe」「com」「bat」「cmd」の4種類。つまり、バイナリ実行ファイルまたはバッチファイルのみである。これ以外の拡張子のファイルを実行することはできずエラーとなる。

 パスを指定して拡張子を省略した場合、CreateProcessでは「exe」が省略されたと仮定する。他の拡張子を探して実行することはない。

 パスを省略した場合も、拡張子の省略は「exe」とみなされる。実行できる拡張子も同じである。しかし、パスを省略した場合、対象プログラムを探索して実行する機能がある。

 CreateProcessでは、まず最初に、CreateProcessを呼び出したプログラムの実行ファイルが置かれていたディレクトリを最初に探す(起動ディレクトリ探索)。これは、アプリケーションが自身に含まれる別のプログラムを起動することが多いからだと考えられる。このときも、拡張子が省略されていれば、exeが仮定され、指定できる拡張子は「exe」「com」「bat」「cmd」の4つである。

 起動ディレクトリ探索で実行すべきファイルが見つからない場合、カレントディレクトリを調べる(カレントディレクトリ探索)。このときも拡張子省略や指定可能な拡張子のルールは同じである。

 それでも見つからない場合には、プロセス環境変数(現在の環境変数)PATHに指定されているディレクトリを順に探索していく(PATH探索)。

 PATH探索でも見つからない場合には、「C:\Windows\System32」と「C:\Windows」に該当実行ファイルがないかを探す(システム探索)。ただし、探すのはこの2つのディレクトリのみで、それらのサブディレクトリは探索対象にならない。

 システム探索でも対象がみつからない場合には、CreateProcessはエラーになり、プログラムは実行されない。

 CreateProcessは、基本的な実行機能であり、あまり多くの機能を持たない。cmd.exeやpowershellは、実行ファイルを自分自身で探し、見つかったプログラムファイルをCreateProcessで実行したり、データファイルであれば、関連付けなどを取得して、編集プログラムを起動していると思われる。

 たとえば、前回解説したPATHEXT実行などは、CreateProcessは対応しておらず、cmd.exeやPowerShellがファイルを自力で検索して、起動しているのだと考えられる。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事
1
【整備済み品】 富士通 ノートパソコン LIFEBOOK MU937 超軽量 薄型ノートPC■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第七世代 Celeron/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
【整備済み品】 富士通 ノートパソコン LIFEBOOK MU937 超軽量 薄型ノートPC■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第七世代 Celeron/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
¥19,800
2
Lenovo ノートパソコン パソコン IdeaPad Slim 3 14.0インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動14.1時間 重量1.39kg ルナグレー 83K00072JP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 14.0インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動14.1時間 重量1.39kg ルナグレー 83K00072JP ノートPC
¥107,800
3
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
¥26,880
4
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥36,979
5
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
¥134,377

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,880
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
¥980
4
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥5,280
7
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥980
8
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥5,545
9
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
¥1,980
10
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
¥880

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン