【问题标题】:how to check if a program is started and running perfectly by windows service?如何检查程序是否由Windows服务启动并完美运行?
【发布时间】:2015-04-27 08:21:49
【问题描述】:

我有以下代码可以从我的 Windows 服务启动程序。当程序有 UI 时,我可以看到它在会话 0 中运行,但该进程没有显示在任务管理器中。那么如何才能知道一个无UI的程序是不是被服务启动并完美运行的呢?

SHELLEXECUTEINFO sei;
ZeroMemory( &sei, sizeof( SHELLEXECUTEINFO ) );
sei.cbSize = sizeof( SHELLEXECUTEINFO );
sei.fMask = 0;  
sei.lpVerb = NULL;
sei.nShow = SW_HIDE;
sei.lpFile = "display_A_Simple_Win32_Window.exe";   
sei.lpParameters=L"";

【问题讨论】:

  • 你想怎么知道?人工检查?还是签入代码? net start 将打印正在运行的服务。
  • @senfen 手动检查没问题。我不想检查服务是否正在运行。我想检查服务是否正确启动了第三个程序以及该程序是否正在运行。

标签: c++ service


【解决方案1】:
LPCTSTR mName = "name.exe";
hnd = CreateMutex(NULL, TRUE, mName);
if(GetLastError()==ERROR_ALREADY_EXISTS && WAIT_ABANDONED !=   WaitForSingleObject(hnd, 0x180)){
 ....................
    //name.exe was started//
 ................
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2021-12-07
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多