2013-04-18 5 views
2

Visual Studio를 사용하여 C++에서 Windows 서비스를 만들었으므로 이제는 서비스에서 exe 파일을 실행하고 싶습니다. 이 서비스는 컴퓨터가 시작할 때마다 시작되도록 설정되어 있습니다Windows 서비스를 사용하여 프로그램을 시작하는 방법은 무엇입니까?

저는 exe 파일의 경로를 찾기 위해 C:\MyDirectory\MyFile.exe과 같은 코드를 사용해야하지만 실제로 서비스에서 파일을 실행하는 방법을 알고 있습니까?

은 내가 프로세스 시작 방법 here에 대해 읽어하지만 난 그것을

답변

1

당신은 EXE 파일을 실행하려면 서비스에서 CreateProcess를 기능을 사용할 수 있습니다 사용하는 방법을 모르겠습니다.

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); 
} 
+0

코드 주셔서 감사합니다. 그러나 일부 컴파일 오류가 발생합니다. 해당 코드가 완료되지 않았거나 헤더 파일을 추가해야합니까? – user2295419

+0

@ user2295419 #include를 포함하십시오 . 링크를 참조하십시오 http://msdn.microsoft.com/en-us/library/ms682512(VS.85).aspx – shivakumar

+0

은 여전히 ​​오류 경로가 있으며 cmd는 알 수없는 식별자입니다 – user2295419

관련 문제