【问题标题】:How to run a program when a service crashes in Windows in C++?当服务在 C++ 中在 Windows 中崩溃时如何运行程序?
【发布时间】:2020-11-19 05:04:17
【问题描述】:

我想在服务崩溃时运行另一个程序。我知道我应该使用微软提供的SERVICE_FAILURE_ACTIONSChangeServiceConfig2()。但是,我在使用它们时遇到了困难,因为我找不到任何使用这些结构和功能的例子。

如果有人可以向我展示一个实现此功能的示例,我将不胜感激。

【问题讨论】:

    标签: c++ windows visual-studio api visual-c++


    【解决方案1】:

    这并不难。你需要这样的东西:

    SC_ACTION sc_actions = { SC_ACTION_RUN_COMMAND, 0 };
    TCHAR command [] = __T ("path/to/command");
    SERVICE_FAILURE_ACTIONS failure_actions =
        { INFINITE, NULL, command, 1, &sc_actions);
    BOOL ok = ChangeServiceConfig2 (service_handle,
        SERVICE_CONFIG_FAILURE_ACTIONS, &failure_actions);
    

    正如documentation 所述,service_handle 是通过调用OpenService 获得的。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2013-04-20
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    相关资源
    最近更新 更多