Winziges Problem!



  • Hi,

    wie kann ich erst den Text so umformen, dass sich erst das Fenster öffnet und danach das Programm startet - und nicht umgekehrt? Habe bereits etwas rumprobiert!

    #pragma comment(lib, "user32.lib")
    #include <windows.h>
    #include "Form1.h"
    #include "stdafx.h"
    
    using namespace TastendruckSimulation;
    
    void SetNumlock(BOOL bState)
    
    {	  	
          BYTE keyState[256];
    
          GetKeyboardState((LPBYTE)&keyState);
          if( (bState && !(keyState[VK_NUMPAD3] & 1)) ||
              (!bState && (keyState[VK_NUMPAD3] & 1)) )
    
    	  {
    		  for(;;)
    		  {
    
    		  Sleep(3000);
    	   // press key
              keybd_event( VK_NUMPAD3,
                           0x63,
                           KEYEVENTF_EXTENDEDKEY | 0,
                           0 );
    
           // release key
              keybd_event( VK_NUMPAD3,
                           0x63,
                           KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
    					   0);
    
    		  }
    	  }
    }
    
    int main()
    
    {	
    	SetNumlock( TRUE );
    
    	// Aktivieren visueller Effekte von Windows XP, bevor Steuerelemente erstellt werden
    	Application::EnableVisualStyles();
    	Application::SetCompatibleTextRenderingDefault(false); 
    	SetNumlock( TRUE );
    	// Hauptfenster erstellen und ausführen
    	Application::Run(gcnew Form1());
    	return 0;
    }
    

    Danke im Voraus! 😉



  • wie kann ich erst den Text so umformen, dass sich erst das Fenster öffnet und danach das Programm startet - und nicht umgekehrt? Habe bereits etwas rumprobiert!

    Das ergibt keinen Sinn - wenn das Programm noch nicht gestartet ist, kann es auch kein Fenster anzeigen.

    Was willst Du erreichen?



  • Ich möchte, dass sich beim öffnen der exe erst ein fenster auftut und direkt dananch die SetNumlock ausgeführt wird.



  • Dann musst Du den Aufruf von SetNumlock() z.B. in den Konstruktor der Form1 Klasse verschieben - oder z.B. den Load Event der Form aboniernen und im Handler die Funktion aufrufen.

    Als erstes würde ich ein separates H und CPP File machen und dort die SetNumlock Funktion reinmachen (nicht den Aufruf).



  • Sorry LaKo15,

    aber was du programmierst, ergibt überhaupt keinen Sinn!
    Windows arbeitet komplett ereignisorientiert! Wenn du aber jetzt in deiner NumLock-Funktion eine Endlosschleife "for(;;)" programmierst, so wirst du nichts weiter erreichen als daß Windows dann "die Anwendung reagiert nicht mehr" ausgeben wird.

    Lerne ersteinmal die Grundlagen der Programmierung (und wenn du WinForms benutzen willst, dann steig auf C# um!!!)...

    P.S. Für das Abfragen der Tastatur gibt es schon entsprechende Ereignisse: KeyDown, KeyPress, KeyUp.



  • oh... hatte ich gar nicht gesehen, das mit der Endlosschleife.. das ist natülich quatsch!


Anmelden zum Antworten