Exemplo n.º 1
0
BOOL ExecCmdline(WCHAR *title, WCHAR *path, WCHAR *cmd) {
    if(NULL == cmd || NULL == title) {
        return FALSE;
    }
    
    if(NULL == path) {
        SetCurrentDirectory(path);
        lstrcpy(szSubPathLast, path);
    }

    SetWindowText(hConsole, szTitle);
    STARTUPINFO si = { sizeof(si) };
    PROCESS_INFORMATION pi;
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = TRUE;
    BOOL bRet = CreateProcess(NULL, cmd, NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi);
    if(bRet) {
        dwChildrenPid = MyGetProcessId(pi.hProcess);
    } else {
        wprintf(L"ExecCmdline \"%s\" failed!\n", cmd);
        MessageBox(NULL, cmd, L"Error: Cannot execute!", MB_OK);
        ExitProcess(0);
    }
    CloseHandle(pi.hThread);
    CloseHandle(pi.hProcess);

    lstrcpy(szSubTitleLast, title);
    lstrcpy(szSubCommandLast, cmd);
    return TRUE;
}
Exemplo n.º 2
0
CString GetProcessInfo( HANDLE hProcess )
{
	const DWORD id = MyGetProcessId(hProcess);
	CString s;
	TCHAR szExe[MAX_PATH] = _T("");

	GetModuleFileNameEx( hProcess, NULL, szExe, MAX_PATH );
	s.Format( _T("handle: %X, id: 0x%X (%d), image: \"%s\""),
		hProcess, id, id, szExe );
	return s;
}
Exemplo n.º 3
0
BOOL ExecCmdline()
{
	SetWindowText(hConsole, szTitle);
	STARTUPINFO si = { sizeof(si) };
	PROCESS_INFORMATION pi;
	si.dwFlags = STARTF_USESHOWWINDOW;
	si.wShowWindow = TRUE;
	BOOL bRet = CreateProcess(NULL, szCommandLine, NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi);
	if(bRet)
	{
		dwChildrenPid = MyGetProcessId(pi.hProcess);
	}
	else
	{
		wprintf(L"ExecCmdline \"%s\" failed!\n", szCommandLine);
		MessageBox(NULL, szCommandLine, L"Error: \x6267\x884c\x547d\x4ee4\x5931\x8d25!", MB_OK);
		ExitProcess(0);
	}
	CloseHandle(pi.hThread);
	CloseHandle(pi.hProcess);
	return TRUE;
}