Win32API ファイルが実行可能であるか調べる GetBinaryType
ファイルが実行可能であるか調べるには、GetBinaryType関数を用いる。
BOOL GetBinaryType ( LPCTSTR lpApplicationName, // ファイルのフルパス LPDWORD lpBinaryType // バイナリタイプ情報 );
#include <windows.h> #include <stdio.h> int main() { char lpBuffer[1024]; GetSystemDirectory(lpBuffer, sizeof(lpBuffer)/sizeof(lpBuffer[0])); strcat(lpBuffer, "\\notepad.exe"); DWORD dwBinaryType; if (!GetBinaryType(lpBuffer, &dwBinaryType)) { puts("GetBinaryType failed."); return 1; } switch (dwBinaryType) { case SCS_32BIT_BINARY: puts("Win32 ベースのアプリケーション"); break; case SCS_DOS_BINARY: puts("MS-DOS ベースのアプリケーション"); break; case SCS_OS216_BINARY: puts("6 ビット版 OS/2 ベースのアプリケーション"); break; case SCS_PIF_BINARY: puts("MS-DOS ベースのアプリケーションを実行する PIF ファイル"); break; case SCS_POSIX_BINARY: puts("POSIX ベースのアプリケーション"); break; case SCS_WOW_BINARY: puts("16 ビット版 Windows ベースのアプリケーション"); break; default: break; } return 0; }