consolen anwendung fenstern verstecken



  • Hallo leute, habe eine win32 consolen programm geschrieben. in manchen fällen soll das fenster versteckt werden und für den user nicht sicht bar sein, wie macht ich das?
    hat da jemand einen tipp für mich, wie ich dies am einfachsten machen kann?

    gruß
    flo



  • FreeConsole( ) und AllocConsole( ) sind deine Freunde!

    Greetz, Swordfish



  • ok FreeConsole() bringt das consolen fenster in den hintergrund der anderen Fenster aber macht es nciht wie ich es brauche visible. es wird ein ps ausgeführt der länger dauert und der soll nicht in der konsole sichtbar sein eiso auch nicht in der taskleiste auftauchen.



  • dann nimmste

    #include <iostream>
    
    #define _WIN32_WINNT 0x0500 // GetConsoleWindow( ) requires at least Windows 2000
    
    #include <windows.h>
    
    using namespace std;
    
    int main( )
    {
    	cout << "We're waiting for this window to close (5 secounds)..." << endl;
    	for( int i = 1; i <= 5; ++i ) {
    		cout << i << endl;
    		Sleep( 1000 );
    	}
    
    	HWND console = GetConsoleWindow( );
    	ShowWindow( console, SW_HIDE );
    
    	Sleep( 10000 );
    
    	ShowWindow( console, SW_SHOW );
    
    	cout << "...and appearing again" << endl;
    }
    

    Greetz, Swordfish



  • welche includes sind es bei c oder hat man da keine chance auf GetConsoleWindow zu kommen?

    sorry kenn mich mit der MFC nicht so aus



  • danke hab es geschaft,

    noch ne andere frage, ich mach ihrgendwann ein system() aufruf auf ein externes programm. wie bring ich den system in den background weil so wie bei linux ein & gibt es ja nicht oder doch?



  • tuxilein schrieb:

    welche includes sind es bei c oder hat man da keine chance auf GetConsoleWindow zu kommen?

    Hä? C? Das ist eine Funktion der WinAPI!

    tuxilein schrieb:

    sorry kenn mich mit der MFC nicht so aus

    Nix MFC!

    Versuch

    unsigned int WinExec(
      LPCSTR lpCmdLine,  // command line
      UINT uCmdShow      // window style
    );
    

    mit uCmdShow = SW_HIDE

    Greetz, Swordfish



  • danke es geht das & gibt es doch!

    ok dann WinAPI aber ich bin halt hauptsächlich linux/unix progger

    gruß
    flo


Anmelden zum Antworten