Taipei_Chen522
New Member
How to terminate a program after I call it by ShellExecuteEx ?
SHELLEXECUTEINFO sfi;
TCHAR szFileName[128];
wcscpy(szFileName, TEXT("\\Windows\\calc.exe"));
memset(&sfi, 0, sizeof(sfi));
sfi.cbSize = sizeof(sfi);
sfi.fMask = SEE_MASK_NOCLOSEPROCESS;
sfi.hwnd = hDlg;
sfi.lpVerb = L"open";
sfi.lpFile = szFileName;
sfi.lpParameters = NULL;
sfi.lpDirectory = NULL;
sfi.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&sfi);
Sleep(20000);
sfi.fMask = NULL;
TerminateProcess(sfi.hProcess, -1); <==Can not terminate calc.exe, why ?????
CloseHandle(sfi.hProcess);
SHELLEXECUTEINFO sfi;
TCHAR szFileName[128];
wcscpy(szFileName, TEXT("\\Windows\\calc.exe"));
memset(&sfi, 0, sizeof(sfi));
sfi.cbSize = sizeof(sfi);
sfi.fMask = SEE_MASK_NOCLOSEPROCESS;
sfi.hwnd = hDlg;
sfi.lpVerb = L"open";
sfi.lpFile = szFileName;
sfi.lpParameters = NULL;
sfi.lpDirectory = NULL;
sfi.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&sfi);
Sleep(20000);
sfi.fMask = NULL;
TerminateProcess(sfi.hProcess, -1); <==Can not terminate calc.exe, why ?????
CloseHandle(sfi.hProcess);