Konsolen messages abfangen...


  • Mod



  • Also kann ich bei Vista nicht mehr die Konsole bedienen?

    Vista wird mir immer unsympatischer...


  • Mod

    lippoliv schrieb:

    Also kann ich bei Vista nicht mehr die Konsole bedienen?

    Vista wird mir immer unsympatischer...

    Nein, es geht gar nicht! Man kann keine Consolen Fenster subclassen das ist die Aussage.



  • Was willst Du den "Bedienen"?

    Was möchtest Du denn machen? Reicht Dir "ReadConsoleInput" nicht?
    Da hast Du "Focus/Keyboard/Mouse/Menü/Resizing" Events... was willst Du mehr?



  • Ich will lediglich diese Minimize Message abfangen, und dann die Konsole verstecken -was ja geht, da ich es schon mache-...

    Geht dass??



  • Verstecken kannst Du es... GetConsoleWindow... und ShowWindow... Minimize abfangen.... GetConsoleInput mit Resize?



  • GetConsoleInput wurde in diesem Forum erst einmal geschrieben, am 16.01.2008 um 08:36:34...

    Genau dein Post.

    Bei MSDN gibt es auch nichts darüber, es sei denn du hast dich verschrieben...

    Wenn ja, kann ich damit die Messages erhalten?


  • Mod

    lippoliv schrieb:

    GetConsoleInput wurde in diesem Forum erst einmal geschrieben, am 16.01.2008 um 08:36:34...
    Genau dein Post.
    Bei MSDN gibt es auch nichts darüber, es sei denn du hast dich verschrieben...
    Wenn ja, kann ich damit die Messages erhalten?

    Jochen meint vermutlich ReadConsoleInput.
    http://msdn2.microsoft.com/en-us/library/ms684961(VS.85).aspx

    Wenn Du Dir die Consolen Funktionen in der MSDN angesehen hättest wärst Du vermutlich selber darauf gekommen. Viele sind es nicht...
    http://msdn2.microsoft.com/en-us/library/ms682073(VS.85).aspx



  • Ich wusste, etwas ähnliches hatte ich schonmal gelesen.

    Ich dachte mit Input währe was anderes gemeint, kann dir auch nicht sagen was.

    Danke werds mir ansehen.



  • void getConsolMessage( void )
    {
    	HANDLE consol = GetStdHandle( STD_INPUT_HANDLE );
    
    	MSG consolMessage;
    
    	INPUT_RECORD consolRecord[128];
    
    	DWORD numberOfRecords;
    
    	int i = 0;
    
    	while( 1 )
    	{
    		ReadConsoleInput( consol, consolRecord, 128, &numberOfRecords );
    
    		for( i = 0; i < numberOfRecords; i++ )
    		{
    			switch( consolRecord[i].EventType )
    			{
    				case WINDOW_BUFFER_SIZE_EVENT:
    					ResizeEventProc( consolRecord[i].Event.WindowBufferSizeEvent );
    				break;
    			}
    		}
    	}
    	_endthread();
    }
    
    void ResizeEventProc( WINDOW_BUFFER_SIZE_RECORD size )
    {
        MessageBox( NULL, "Text", "Titel", MB_OK );
    }
    

    Ich warte hier sehnlich auf eine MessageBox, aber es kommt keine, auch wenn ich minimieren klicke... 😡
    Es ist echt schrecklich 🙄

    Ist dass überhaupt dass was ihr meint 😕
    Ich bin bestimmt wieder voll dran vorbei ne 😃

    Danke für alle Antworten


  • Mod

    Da Jochen ein Fragezeichen hinter das Resize gesetzt hat vermute ich, dass er es nicht genau weiß ob es geht.

    Ich vermute mal, dass es nicht geht.

    Du könntest aber einfach das Windows Handle Dir besorgen (siehe mein Link, oder GetCOnsoleWindow) und prüfen ob es minimiert ist.

    Ansonsten, wen interessiert ob ein Console Window minimiert wird, vor allem wen mein Prozess von jemandem anderen gestartet wurde? Evtl. gibt es ja gar kein Window?

    Was bezweckst Du damit? Oder bist Du evtl. überhaupt auf dem falschen Weg und müsstest eine GUI Applikation bauen?



  • Hey Martin,
    es geht immer noch um diese NaDiA geschichte.

    Es ist meine Applikation (oder halt die von uns Auszubildenden) die in der cmd.exe gestartet wird, und sofort in den Tray geht.

    Bei einem klick auf den Icon kommt sie wieder hervor.

    Bei einem klick auf Minimieren verschwindet sie in die Task-Bar was unschön ist, da die Application wieder in den Tray gehen soll.

    Dass habe ich über isIconic() und einen 200ms Timer gelöst.

    Ich habe es nicht hinbekommen die gewollte information zu bekommen, obwohl es wohl nach MSDN möglich sein sollte...
    Ich habe aber das printf() nicht bekommen...
    (bei mir währs ne MessageBox gewesen 🤡 )

    (wieso der Link nicht geht, weiss ich nicht)


Anmelden zum Antworten