jeudi 12 mars 2015

How to use setevent to stop process handler


I'm trying to createProcess then inherit process handle to event handle



HANDLE app_event;

TCHAR* path = L"C:\\My.exe";
STARTUPINFO info;
PROCESS_INFORMATION processInfo;

ZeroMemory(&info, sizeof(info));
info.cb = sizeof(info);
ZeroMemory(&processInfo, sizeof(processInfo));

CreateProcess(path, NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo);

ThreadId = processInfo.dwThreadId;


app_event = CreateEventW(nullptr, TRUE, FALSE, nullptr);
DuplicateHandle(GetCurrentProcess(), processInfo.hProcess,
GetCurrentProcess(),
&app_event,
0, FALSE,
DUPLICATE_SAME_ACCESS);
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);


and I'm creating thread for event


But when I call setEvent to stop process


The process don't stop and i got stuck at WaitForSingleObject



SetEvent(app_event);

WaitForSingleObject(app_thread, INFINITE);


Am I doing something wrong?


Sorry I'm new to C++.




Aucun commentaire:

Enregistrer un commentaire