c++ - 如何判断当前进程是否为服务(C++、Win32)?

标签 c++ winapi

如何判断运行我的代码的应用程序是服务还是应用程序?为什么我想知道这个 - 我正在编写一些注入(inject)目标应用程序的代码,而该代码无法预先知道此信息,因此它必须自行解决。

我不能依赖从服务控制管理器、启动、停止或命令行参数调用的任何代码。

我目前正在查看 GetConsoleWindow(),我希望它会为服务(无控制台)返回 NULL 并为任何应用程序(有控制台)返回窗口句柄).不确定这个假设的有效性。

有更好的解决方案吗?

最佳答案

从所有正在运行的服务(EnumServicesStatusEx)列表中搜索当前进程 ID(GetCurrentProcessId)?

关于c++ - 如何判断当前进程是否为服务(C++、Win32)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4625270/

相关文章:

c++ - 基于 OpenCV 边缘的物体检测 C++

sockets - 如何使用 Win32 TransmitFile() 传输大于 2,147,483,646 字节 (~2 GiB) 的文件?

c# - 如何获取 Win32Exception 的类型?

java - 如何检查文件是否可读?

windows - 如何在 Windows 上拥有快速且高分辨率的计时器?

c++ - boost::asio::socket 线程安全

c++ - 调色板图像需要有效的调色板

c++ - 除了赋值运算符,C++ 中哪些运算符不会被继承?

c++ - 为什么命名变量调用被解析为 T&& 而不是 const T&?

python - 如何增加Windows上气球弹出通知的时间