Prozess wird erzeugt(durch Code) und auf ShowWindow( GetConsoleWindow(), SW_HIDE ) gesetzt[...]



  • [...]und dann kommt ein 1200!sekunden!-Sleep.

    Nach ca. 15 - 20 sekunden taucht das Formwieder auf.
    Es schreibt auch nciht in das Logfile in das es schreiben soll!!!

    Starte ich es allerdings per hand funktioniert alles, es schreibt ins richtige Logfile und bleibt versteckt...

    Hat wer ne ahnung?

    int main( void )
    {
        //code
        ShowWindow( GetConsoleWindow(), SW_HIDE );
        Sleep( sleepTime );
        //code
        return 0;
    }
    


  • Ihr Code und Ihre Problembeschreibung erscheinen mir nicht aussagekräftig genug, als daß man Ihnen helfen könnte. Bitte stellen Sie ausreichend Programmcode zur Verfügung und formulieren Ihr Problem konkreter, damit ich oder ein anderes Forum-Mitglied Ihnen Hilfe zuteil werden lassen können.

    Es grüßt Sie herzlichst,
    Ihr rofler



  • Ok ich werde mal ein wenig mehr Posten, wobei ich nicht unbedingt weiß was Sie genau brauchen...

    int main( void )
    {
    	while( 1 )
    	{
    		//code der unwichtig ist
    		ShowWindow( GetConsoleWindow(), SW_HIDE );
    		Sleep( 1200000 );
    	}//while(1)
    
    	return 0;
    }
    

    Der Rest hat wirklich nur was mit der Programmfunktionalität zu tun...
    ahso ich ahbe auch mal das gemacht:

    int main( void )
    {
    	while( 1 )
    	{
    		//code der unwichtig ist
    		ShowWindow( GetConsoleWindow(), SW_HIDE );
    		MessageBox( NULL, "vor dem Sleep", "hier", MB_ICONWARNING );
    		Sleep( 1200000 );
    		MessageBox( NULL, "nach dem Sleep", "hier", MB_ICONWARNING );
    	}//while(1)
    
    	return 0;
    }
    

    und zwischen dem "vor dem Sleep" und "nach dem Sleep" erscheint das Form wieder...
    Wie gesagt dies Passiert nur wenn das Programm aus einem anderen Programm über CreateProcessWithLogonW geöffnet wird.
    Wenn ich es über Kontextmenue "Als Administrator ausführen..." starte funktioniert es... 😮


  • Mod

    1. Wenn eine Konsolenanwendung nicht erscheinen soll, dann muss dieser Prozess mit CREATE_NO_WINDOW erzeugt werden.
    2. Warum erzeugst Du überhaupt eine Consolenanwendung, wenn diese soweiso kein Konsolenfenster haben soll. Erzeue ein Windows Applikation.

    BTW: Eine Suche in dem Forum hätte Dich sofort zum Ziel gebracht.



  • Aber dann muss ich doch erst mein Programm registrieren usw. oder brauche ich das nur für ein Windows-Fenster?

    Werds auf jeden fall mal Testen. Danke gar nicht dran gedacht 😉


  • Mod

    lippoliv schrieb:

    Aber dann muss ich doch erst mein Programm registrieren usw. oder brauche ich das nur für ein Windows-Fenster?

    Rembrandt... Bahnhof?

    Was hat ein Windows Programm mit registrieren zu tun.
    Lies mal bitte die Doku zu SUBSYSTEM CONSOLE/WINDOWS
    http://msdn2.microsoft.com/de-de/library/fcc1zstk(VS.80).aspx



  • Me@MinGW !VisualStudio...
    Me@100%Code !Eigenschaftenklickerei...

    Me@Anfänger 😉

    Ich schreibe meine C Dateien quasi im Editor(von Windows) nicht in VisualStudio... Da gibt es keine Eigenschaften.

    Da schreibe ich main oder WinMain...
    Werds gleich mal umschreiben,
    danke trotzdem für dienen Post werds später mal brauchen 🙂



  • einfach gesagt
    mit Konsolenfenster

    int main( void )
    

    Windowsprogramm -> ohne Konsolenfenster

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    

    natürlich musst du noch was in deiner IDE einstellen.
    Und ja die Suche hätte dir hier bestimmt weitergeholfen!

    schirrmie



  • Das war klar, bin ja nich sooo neu in der API,
    nur dachte ich wen nich irgendwas mit WinMain mache, muss ich regsiterclass und so machen, und das sind ca 30 - 50 Zeilen extra, brauch ich in dem Miniprog nich 😉

    Aber RegisterClass is für das Fenster, wenn ich eines erstell ne?
    danke trotzdem.


Anmelden zum Antworten