如何知道可执行文件是控制台还是GUI?好象要读文件,如何做!!??

解决方案 »

  1.   

    若是GUI的话应该有FORM吧,列举进程,找到与命令行相应的进程,看其中有无FORM
    个人猜想
      

  2.   

    gui 应该都有窗体吧,不管是不是隐藏的
      

  3.   

    我想,有几个方法应该可以解决?
    第一个,是搜索EXE资源,如果用VC写的程序,里面有Dialog的,用Delphi/CB写的,有Form的;其它的就不知道了。另外一个,可以查看Exe的导入函数,使用窗口的应该用到CreateWindow(Ex)等GDI Windows函数。
      

  4.   

    为什么一个控制台应用程序与一个GUI应用程序在WINDOWS中显示的图标不一样呢?所以我想是一定有办法判断的!
    Windows 窗体和控制台应用程序之间有什么区别?答案很简单。实际上唯一的区别就是控制台应用程序将输出结果发送到控制台窗口,而 Windows 窗体应用程序则不然。当然这只是在默认情况下。至于 Windows 窗体应用程序为什么不能有控制台窗口,则没有解释。这是MSDN上的解释,我个人认为,所有的console程序只有main()函数,而没有winmain函数的,而GUI程序正相反,所以我认为从这点上可以区别出来!
      

  5.   

    创建一个快捷方式,马上就可以看出来。在快捷方式上,用鼠标右键点击,选
    择“属性”,控制台程序和GUI程序的快捷方式的“属性”是不一样的。控制
    台程序比GUI程序多好几个页面。
      

  6.   

    windows api中有这个函数的,可惜我忘了名字了!
      

  7.   

    也可以读起始字节,每个win32程序都包含“this program can not run in dos mode” 或者 “this program must be run under win32”,起始出是一个int 3中断入口,如果在dos运行,则调用int 10显示出上述字符,呵呵。如果你对pe头感兴趣,可以和我联系!
      

  8.   

    不见得, 32bit的console就没有“this program can not run in dos mode” !
      

  9.   

    谁说窗口APP不能有控制台窗口,一样可以!
      

  10.   

    这么做没有什么意义,控制台程序可以创建GUI界面,而GUI也可以创建控制台。至于 smhpnuaa(天将降大任于斯人也!)所说的是判断16位程序和32位程序。
      

  11.   

    有个API函数可以得到 GetBinaryInfo()可以判断,很简单的。