我使用visual studio在c ++中创建了一个Windows服务,现在我想让服务运行一个exe文件。该服务设置为每次计算机启动时启动
我知道我需要使用代码来定位exe的路径,例如C:\MyDirectory\MyFile.exe
但是如何从服务中实际运行该文件?
我读过有关流程启动方法here,但我不确定如何使用它
答案 0 :(得分:1)
您可以在服务中使用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);
}