如何以编程方式判断Windows PE文件是控制台子系统还是Windows子系统?

Mei*_*uck 2 windows console winapi exe portable-executable

基本上我需要一个程序,它将从控制台对应的窗口.exe中排序.

文件扫描程序:

SortExe(file exe) 
{
 if (IsPeWindows(exe)) 
    {
      AddToList1(exe); 
    }
 else if (IsPeConsole())
    {
    AddToList2(exe); 
    }
 }
Run Code Online (Sandbox Code Playgroud)

我如何实现IsPeWindows或IsPeConsole()?

我不特别介意什么语言解决方案,只要它是c,c ++,c#或visual basic之一.

Ale*_* K. 5

如链接中所述,传递SHGFI_EXETYPESHGetFileInfo()并检查返回值的高/低.