我要做一个任务,找出在后台运行的进程/exe/application。 即:该进程正在运行,但没有任何 UI/窗口可见,尽管它是一个 Windows GUI 应用程序。我想阅读 EXEheader。 header 包含一个名为“子系统”的字段,应用程序将在其下运行以及它需要的接口(interface)类型。 但它返回 Windows GUI,确实如此。但我希望 teo 检测该应用程序是否有任何窗口。此应用程序也不是一项服务,就好像它是一项我可以轻松阅读信息的服务。 如果你们中的任何人能对所提出的问题有所了解,我将很高兴。
温暖的问候.. 萨尔夫
最佳答案
如果我正确理解你的问题,你想知道正在运行的应用程序是否有任何可见的窗口。
为此,您可以调用 EnumWindows
获取所有顶级窗口。对于每个窗口,请调用 GetWindowThreadProcessId
获取进程 ID 和 GetWindowLong(hwnd, GWL_STYLE)
获取窗口样式。测试 WS_VISIBLE
的样式以查看窗口是否可见。遍历所有窗口并查看您的进程是否拥有可见窗口。如果你没有进程 ID,你可以用 EnumProcesses
得到它们。 .
关于c++ - 无窗口应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1784516/