Create no window,but still creates it

Started by
5 comments, last by noatom 10 years, 11 months ago

STARTUPINFO si = {0};
    PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
	si.wShowWindow = FALSE; 
	si.dwFlags = STARTF_USESHOWWINDOW;
    // Start the child process.
    if( !CreateProcess( NULL,chrPathtoExeFile,NULL,NULL,TRUE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi ))
    {
        //printf( "win32::CreateProcess Error::: (%d).\n", GetLastError() );
        return;
    }

    // Close process and thread handles.
    //CloseHandle( pi.hProcess );
    //CloseHandle( pi.hThread );

This line is the problem:

CreateProcess( NULL,chrPathtoExeFile,NULL,NULL,TRUE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi )

why does it create the window when i launch a certain app? i want the windows of that app to be invisible

Advertisement
Is the process you are spawning a console app? If not, then the CREATE_NO_WINDOW flag doesn't apply.

no it's not,but even without that flag,the window still appears

SiCrane meant that if you're creating a process that isn't a console application, the CREATE_NO_WINDOW flag is ignored... i.e. only console applications will spawn without a window.

but how do i launch a certain exe as invisible?

Is it a 3rd party application or your own application?

If it is your own application you can setup command line arguments to hide the window.

If it is a 3rd party application, then you can get the top level window handle with FindWindow then call ShowWindow to hide it. I've never done it myself but I guess it could work...

thanks renega,it worked

This topic is closed to new replies.

Advertisement