CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 4 of 4

Thread: CreateProcess()

  1. #1
    Join Date
    May 1999
    Posts
    2

    CreateProcess()

    Hi all,

    Does anyone have a sample program that shows how to use the CreateProcess() and TerminateProcess() functions.
    In the OLD MSDN Libraries - 97, there was a sample program called PROCESS that talked about this, but I cant seem to find that in the online MSDN site. Does anyoen have this sample.

    Would appreciate if anyone could send it to my e-mail address. Thanks alot!

    Any help will be highly appreciated.

    Cheers
    jAyesh

    I searched online MSDN from the web, but couldnt find. Could you please
    send me the sample program, as am sure you guys have the old MSDN
    libraries.

    I know its a hassle for you. But I would highly appreciate this.

    Thanks
    jAyesh


  2. #2
    Join Date
    May 1999
    Posts
    327

    Re: CreateProcess()


    Here is the code to run another program using CreateProcess().

    Void RunAnother(LPSTR lpszFilename)
    {
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si); // start child process

    if (!CreateProcess(NULL,
    lpszFilename,
    NULL,
    NULL,
    FALSE,
    0,
    NULL,
    NULL,
    &si,
    &pi))
    {
    Error("CreateProcess Failed");
    return;
    }

    // wait until child process exits
    WaitForSingleObject(ph.iProcess, INFINITE);

    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    }

    So, to run notepad.exe, you type somewhere in your code,

    const char cmdLine[] = "\\windows\\notepad.exe";
    RunAnother(cmdLine);

    I still use WinExec() to run other programs, in which case the code
    to run notepad.exe is;

    const char cmdLine[] = "\\windows\\notepad.exe";
    UINT result = WinExec(cmdLine, SW_SHOW);
    if (result < 32)
    {
    // handle error
    }

    I have never tried using TerminateProcess(). Hope this helps.
    Email me if you have any questions about CreateProcess().


  3. #3
    Join Date
    May 1999
    Posts
    30

    Re: CreateProcess()

    Hi,

    Here is the sample programme for create process.

    Thanks,
    Pabitra


    void CMainFrame::OnToolsConsole()
    {
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    CString strApp = _T("CONSOLE.EXE");

    // Initialize the STARTUPINFO structure.
    memset(&si, 0, sizeof(si));
    si.cb = sizeof(si);
    CreateProcess(
    NULL, // pointer to name of executable module
    (char *)(LPCTSTR) strApp, // pointer to command line string
    NULL, // pointer to process security attributes
    NULL, // pointer to thread security attributes
    FALSE, // handle inheritance flag
    0, // creation flags
    NULL, // pointer to new environment block
    NULL, // pointer to current directory name
    &si, // pointer to STARTUPINFO
    &pi // pointer to PROCESS_INFORMATION
    );
    }


  4. #4
    Join Date
    Apr 1999
    Location
    Arlington, VA
    Posts
    21

    CreateProcess() & Logo Compliance

    Just a quick heads up, the CreateProcess() is now obsolete, and is not compliant with the Windows '95 & NT logo programs.

    For the details, see the MSJ article at http://www.microsoft.com/MSJ/0299/ednote0299top.htm
    and the real logo page at http://msdn.microsoft.com/winlogo/win2000.asp

    Instead use ShellExecute()

    Here’s a quick example:

    if( ( hRc = ShellExecute( AfxGetMainWnd()->GetSafeHwnd(),
    "open",
    szProgramName,
    szCommandLine,
    szWorkingDir,
    SW_SHOW ) ) <= (HINSTANCE)32 )
    {
    // Message that it failed.
    }




Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured