|
|
||||
Tips > |
|||||
実行可能ファイルか確認(GetBinaryType) |
更新 : 2014/09/23 |
||||
|
|
||
解説: いろいろなファイルを検索したり調べているとき、そのファイルが実行ファイルかどうかチェックしたい場合、どうすればいいでしょう? Win32API の GetBinaryType 関数を使うと、指定されたファイルが実行可能であるかどうかを調べることができます。 ファイルが実行可能であれば、関数からバイナリタイプ情報が返るので、ファイルのタイプも分かります。 ちょっと寄り道: BOOL GetBinaryType ( LPCTSTR ApplicationName, // 調べたいファイルのフルパス LPDWORD BinaryType // バイナリタイプ情報 ); 戻り値 実行可能ファイルなら 0 以外の値、実行可能でなければ 0 が返ります。 BinaryType パラメータには、ファイルのタイプが格納されます。 使用例: アプリケーションを起動して Button をクリックすると Label に "実行可能ファイルです。" などの メッセージが表示されます。 準備としては、Button、Label を適当に配置するだけです。 Button1 の OnClick イベントで、GetBinaryType 関数を使って、メモ帳(Notepad.exe)が実行ファイルなのかどうか調べています。 余裕のある方は、少し頑張って、BinaryType パラメータをチェックするコードを追加してみてください。BinaryType にはファイルの種類が格納されますので、SCS_32BIT_BINARY などと比較することで、"Win32 ベースのアプリケーション" 等が判定できます。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { DWORD type; if (GetBinaryType("C:\\Windows\\Notepad.exe", &type) != FALSE) Label1->Caption = "実行可能ファイルです。"; else Label1->Caption = "実行可能ファイルではありません。"; } //------------------------------------------------------------------- |