ファイルプロパティの表示

プログラムから、ファイルのプロパティダイアログを表示する方法です。 お馴染みのこんなダイアログです。

これは 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();
}

このソースを 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]

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説