ファイルプロパティの表示
プログラムから、ファイルのプロパティダイアログを表示する方法です。 お馴染みのこんなダイアログです。
これは Windows のシェルの機能を利用することで、簡単に表示できます。
#include <windows.h>
#include <stdio.h>
void main() {
SHELLEXECUTEINFO sei;
ZeroMemory ( &sei, sizeof(sei) );
sei.cbSize = sizeof(sei);
sei.lpFile = TEXT("C:\\boot.ini");
sei.lpVerb = TEXT("properties");
sei.fMask = SEE_MASK_INVOKEIDLIST | SEE_MASK_NOCLOSEPROCESS;
ShellExecuteEx (&sei);
getchar();
}
#include <stdio.h>
void main() {
SHELLEXECUTEINFO sei;
ZeroMemory ( &sei, sizeof(sei) );
sei.cbSize = sizeof(sei);
sei.lpFile = TEXT("C:\\boot.ini");
sei.lpVerb = TEXT("properties");
sei.fMask = SEE_MASK_INVOKEIDLIST | SEE_MASK_NOCLOSEPROCESS;
ShellExecuteEx (&sei);
getchar();
}
このソースを fp.cpp として保存します。コンパイルは次の通り。
> cl /c fp.cpp
続けてリンクして実行可能ファイルを作成します。> link shell32.lib fp.obj /out:fp.exe
最後の getchar() 関数の呼び出しについて補記します。 ShellExecuteEx は呼び出しはブロックしません。つまり、ShellExecuteEx で Shell に 呼び出しを行ってから直ちに制御が戻ります。このとき、呼び出し元が終了してしまうと ShellExecuteEx から Shell への呼び出しも終了してしまいますので、getchar() を使って プログラムをとめています。目的はプロセスを終了させないことですから、getchar でなくても Sleep 関数などでも構いません。
サンプルコードのダウンロード [fp.zip 474byte]