共用方式為


GetBinaryTypeW 函式 (winbase.h)

判斷檔案是否為可執行檔 (.exe) 檔案,如果是,則判斷哪個子系統會執行可執行檔。

語法

BOOL GetBinaryTypeW(
  [in]  LPCWSTR lpApplicationName,
  [out] LPDWORD lpBinaryType
);

參數

[in] lpApplicationName

要判斷可執行檔類型之檔案的完整路徑。

根據預設,名稱限製為MAX_PATH個字元。 若要將此限制延伸至 32,767 寬字元,請在路徑前面加上 “\\?\”。 如需詳細資訊,請參閱 命名檔案、路徑和命名空間

提示

從 Windows 10 版本 1607 開始,您可以選擇移除MAX_PATH限制,而不需預先加上 “\\?\”。 如需詳細資訊,請參閱 命名檔案、路徑和命名空間 的一節。

[out] lpBinaryType

要接收 lpApplicationName所指定之檔案之可執行檔類型相關信息的變數指標。 定義下列常數。

價值 意義
SCS_32BIT_BINARY
0
以 32 位 Windows 為基礎的應用程式
SCS_64BIT_BINARY
6
以 64 位 Windows 為基礎的應用程式。
SCS_DOS_BINARY
1
以 MS-DOS 為基礎的應用程式
SCS_OS216_BINARY
5
以16位OS/2為基礎的應用程式
SCS_PIF_BINARY
3
執行 MS-DOS 型應用程式的 PIF 檔案
SCS_POSIX_BINARY
4
POSIX – 型應用程式
SCS_WOW_BINARY
2
以16位 Windows 為基礎的應用程式

傳回值

如果檔案是可執行檔,則傳回值為非零值。 函式會設定 lpBinaryType 所指向的變數,以指出檔案的可執行文件類型。

如果檔案不是可執行檔,或函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 如果檔案是 DLL,則最後一個錯誤碼會 ERROR_BAD_EXE_FORMAT

言論

或者,您可以呼叫 SHGetFileInfo 函式,在 uFlags 參數中傳遞 SHGFI_EXETYPE 旗標,以取得相同的資訊。

符號連結行為— 如果路徑指向符號連結,則會使用目標檔案。

在 Windows 8 和 Windows Server 2012 中,下列技術支援此功能。

科技 支援
伺服器消息塊 (SMB) 3.0 通訊協定 是的
SMB 3.0 透明故障轉移 (TFO) 是的
具有向外延展檔案共用的SMB 3.0(SO) 是的
叢集共用磁碟區檔案系統 (CsvFS) 是的
復原檔案系統 (ReFS) 是的
 

注意

winbase.h 標頭會將 GetBinaryType 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winbase.h (包括 Windows.h)
連結庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

檔案管理功能

SHGetFileInfo

符號連結