检查服务正在从DLL运行

时间:2010-07-30 06:25:32

标签: windows-7 windows-services

我在Windows7计算机中注册了COM上下文菜单DLL(以显示资源管理器上下文菜单)。在DLL中,我检查了服务是否在我的系统中运行。该服务在“本地系统帐户”下运行。

我已按OpenSCManagerQueryServiceStatus检查了服务状态。它似乎在XP中没有任何问题。但在Windows7中,有时我会收到“拒绝访问”错误,有时我得到错误的结果...(例如,服务正在运行,但它显示状态为服务停止。)我不知道如何在Windows7中检查这一点。

我还检查了我的exe是否正在运行

HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, aProcesses[i]);

但是当我作为服务运行时,这在Windows7中也无效。

有人可以更新我如何检查服务是否正在通过DLL运行?

注意:DLL由Explorer加载。

1 个答案:

答案 0 :(得分:0)

您可能正在运行UAC(http://en.wikipedia.org/wiki/User_Account_Control),这可能会限制您从非管理上下文访问服务。以管理员身份运行资源管理器时,您的应用程序是否有效?