Apr 012008
 

I’ve seen people asking this question number of times, so for those people here is the answer…

When creating a process via CreateProcess we’ve got to give a STARTUPINFO structure as a parameter which specifies startup options for a process.

Set dwFlags member to STARTF_USESHOWWINDOW to indicate that we will be using wShowWindow member of STARTUPINFO. Then set wShowWindow to SW_HIDE to start a process as hidden.

To start a process as maximized use SW_MAXIMIZE, to start as minimized use SW_MINIMIZE, to start as restored use SW_RESTORE. Look up ShowWindow MSDN to for other options!

STARTUPINFO StartInfo = { 0 };
StartInfo.cb = sizeof( StartInfo );

// Use showwindow field of this structure
StartInfo.dwFlags = STARTF_USESHOWWINDOW;
StartInfo.wShowWindow = SW_HIDE;

PROCESS_INFORMATION pi = { 0 };
CreateProcess( _T( "C:\\windows\\Notepad.exe" ),
               NULL,
               NULL,
               NULL,
               FALSE,
               0,
               NULL,
               NULL,
               &StartInfo,
               &pi );

You won’t see notepad running since it’s hidden, open task manager to see notepad running!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.