実行ファイルの種類を取得 <TOP>
GetBinaryType 実行ファイルのタイプを取得表示します。
ファイル選択ボタンをクリックするとファイルオープンダイアログが開きます。
目的ファイルをクリックするとファイルの種類を表示します。
'================================================================ '= 実行ファイルの種類を表示 '= (GetBinaryType.bas) '================================================================ #include "Windows.bi" #define SCS_32BIT_BINARY 0 'Windowsアプリケーション #define SCS_DOS_BINARY 1 'DOSアプリケーション #define SCS_OS216_BINARY 5 '16ビットのOS2のアプリケーション #define SCS_PIF_BINARY 3 'PIFファイル #define SCS_POSIX_BINARY 4 'POSIXアプリケーション #define SCS_WOW_BINARY 2 '16bit Windowsアプリケーション ' 実行ファイルの種類を取得 Declare Function Api_GetBinaryType& Lib "Kernel32" Alias "GetBinaryTypeA" (ByVal lpApplicationName$, lpBinaryType&) Var Shared Text(3) As Object Var Shared Button1 As Object For i = 0 To 3 Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) Text(i).SetFontSize 14 Next Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 Var Shared sFile As String '================================================================ '= '================================================================ Declare Sub BinTypeGet edecl () Sub BinTypeGet() Var BinType As Long Var Msg As String Var Ret As Long sFile = GetDlgItemText("Text3") Ret = Api_GetBinaryType(sFile, BinType) If Ret <> 0 Then Msg = "選択されたファイルは " Select Case BinType Case SCS_32BIT_BINARY Msg = Msg & "Win32ベースアプリケーション" Case SCS_DOS_BINARY Msg = Msg & "MS-DOSベースアプリケーション" Case SCS_OS216_BINARY Msg = Msg & "16ビットOS/2ベースアプリケーション" Case SCS_PIF_BINARY Msg = Msg & "MS-DOSベースアプリケーションを実行するPIFファイル" Case SCS_POSIX_BINARY Msg = Msg & "POSIX ベースアプリケーション" Case SCS_WOW_BINARY Msg = Msg & "16ビットWindowsベースアプリケーション" End Select Else Msg = "実行可能ファイルではありません!" End If Text(3).SetWindowText Msg End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() sFile = WinOpenDlg("ファイルのオープン", "C:\*.*", "全てのファイル(*.*)", 0) If sFile <> Chr$(&H1B) Then Text(2).SetWindowText sFile BinTypeGet End If End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End