If this is any help, here's some code to start and stop a process.
Code:
#include <windows.h>
#include <stdio.h>
HANDLE StartProcess(char *sExe)
{
BOOLEAN bResult = FALSE;
STARTUPINFO SI;
PROCESS_INFORMATION pi;
SI.cb = sizeof(STARTUPINFO);
SI.lpReserved = NULL;
SI.lpDesktop=NULL;
SI.lpTitle = (char*) sExe;
SI.dwX = 400;
SI.dwY = 200;
SI.cbReserved2=0;
SI.lpReserved2=NULL;
SI.dwFlags= STARTF_USEPOSITION;
SI.wShowWindow=SW_SHOWNORMAL;
SI.hStdOutput=GetStdHandle(STD_OUTPUT_HANDLE);
SI.hStdInput=GetStdHandle(STD_INPUT_HANDLE);
SI.hStdError=GetStdHandle(STD_ERROR_HANDLE);
bResult = CreateProcess ((LPTSTR)sExe,
(LPTSTR)NULL,
(LPSECURITY_ATTRIBUTES)NULL,
(LPSECURITY_ATTRIBUTES)NULL,
(BOOL) TRUE,
(DWORD) CREATE_NEW_CONSOLE,
GetEnvironmentStrings(),
NULL,
(LPSTARTUPINFO)&SI,
(LPPROCESS_INFORMATION)&pi
);
return pi.hProcess;
}
int main()
{
HANDLE h;
printf("Starting process\n");
Sleep(1000);
if( h = StartProcess("test2.exe") )
{
printf("Process started\n");
Sleep(5000);
TerminateProcess(h, 0);
printf("process terminated\n");
}
else
printf("Failed to start process\n");
return 0;
}