如何使用Windows服务启动程序

how to start a program using a windows service?

本文关键字:启动 程序 服务 Windows 何使用      更新时间:2023-10-16

我使用visual studio在c++中创建了一个windows服务,现在我希望该服务运行exe文件。该服务设置为每次计算机启动时启动

我知道我需要使用代码来定位像C:MyDirectoryMyFile.exe这样的exe的路径,但我如何从服务中实际运行文件?

我在这里读到关于进程启动方法,但我不确定如何使用它

您可以在您的服务中使用createprocess函数来运行exe。

TCHAR* path = L"C:\MyDirectory\MyFile.exe";
STARTUPINFO info;
PROCESS_INFORMATION processInfo;
ZeroMemory( &info, sizeof(info) );
info.cb = sizeof(info);
ZeroMemory( &processInfo, sizeof(processInfo) );

if (CreateProcess(path, NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
    ::WaitForSingleObject(processInfo.hProcess, INFINITE);
    CloseHandle(processInfo.hProcess);
    CloseHandle(processInfo.hThread);
}