Schleife ?! :o

T

tBLo

Ich hab hier n paar zeilen die meine tastaturLED's zum blinken bringen:

keybd_event(144, 0, 0, 0); // Num Lock
keybd_event(144, 0, 0x02, 0); // an
Sleep(100);
keybd_event(144, 0, 0, 0); // Num Lock
keybd_event(144, 0, 0x02, 0); // aus
Sleep(50);


keybd_event(20, 0, 0, 0); // Caps Lock
keybd_event(20, 0, 0x02, 0); // an
Sleep(100);
keybd_event(20, 0, 0, 0); // Caps Lock
keybd_event(20, 0, 0x02, 0); // aus
Sleep(50);

keybd_event(145, 0, 0, 0); // Scroll Lock
keybd_event(145, 0, 0x02, 0); // an
Sleep(100);
keybd_event(145, 0, 0, 0); // Scroll Lock
keybd_event(145, 0, 0x02, 0); // aus
Sleep(50);

Jetzt will ich aber das diese Zeilen immer wiederholt werden und meine Tastatur dauerhaft blinkt. Könnt ihr mir sagen wie ? Brauch' ich da ne schleife, wenn ja welche ?

pls help me
<~ nuB :confused:
 
kommt drauf an ob es nach ner bestimmten zeit wieder aufhören soll oder bis in alle ehwigkeiten weiterblinken soll dann musst ne endlosschleife drum rum machen, dann hörts nimmer auf

Code:
While(); // endlosschleife keine besoinders elegante lösung erfüllt aber den zweck
{
keybd_event(144, 0, 0, 0); // Num Lock 
keybd_event(144, 0, 0x02, 0); // an 
Sleep(100); 
keybd_event(144, 0, 0, 0); // Num Lock 
keybd_event(144, 0, 0x02, 0); // aus 
Sleep(50); 


keybd_event(20, 0, 0, 0); // Caps Lock 
keybd_event(20, 0, 0x02, 0); // an 
Sleep(100); 
keybd_event(20, 0, 0, 0); // Caps Lock 
keybd_event(20, 0, 0x02, 0); // aus 
Sleep(50); 

keybd_event(145, 0, 0, 0); // Scroll Lock 
keybd_event(145, 0, 0x02, 0); // an 
Sleep(100); 
keybd_event(145, 0, 0, 0); // Scroll Lock 
keybd_event(145, 0, 0x02, 0); // aus 
Sleep(50);
}
 
Zuletzt bearbeitet:
Hi.

"while" muß natürlich klein geschrieben werden, innerhalb der while-Bedingung muß ein Ausdruck stehen (z.B. true oder 1) und das Semikolon hinter den beiden runden Klammern von while muß weg.

Gruß
 
Hi,

Eine Schleife, die von selbst nach einer gewissen Zeit aufhört gibt es nicht.
Die musst du schon selber programmieren.
time() z.B. liefert dir die Anzahl der Sekunden, die seit 1970 vergangen sind.

#define DIFF 3600 // Sekunden -> 1 Stunde

Code:
  time_t start,t;    // Startzeit und Hilfsvariable
  time (&start);     // Start festlegen

  // Differenz zwischen Start und aktuellem Wert (sec)
  while (time(&t)-start <DIFF) {    

    .
    .    
  }

Gruß,
murpsel

p.s.
Wenn du schon immer fast dasselbe machst, kannst du auch eine zweite(3.) Schleife
innerhalb while-Schleife definieren. Das macht das Ganze etwas kürzer.
also in etwa so:

Code:
  int Taste[3]={144,20,145};
  int Zeit[2]={50,100};
  time_t  start,t;

  time(&start);

  while (time(&t)-start < DIFF)    {
    for (int i=0;i<3;i++) {
      for (int k=0; k<2;k++) {
        keybd_event(Taste[i], 0, 0, 0); // Num Lock 
        keybd_event(Taste[i], 0, 0x02, 0); // an 
        Sleep(Zeit[k]); 
      }
    }
  }
 
Zuletzt bearbeitet:
Danke erstmal..

Wenn ich jedoch 2 verschiedene Zeiten haben will: Button1 = 10 Sek {z.B.}
Button2 = 20 Sek {z.B.}

Wie kann ich 2 [oder nochmehr] DIFF's definieren ?

Respekt, tBLo-.
 
Zurück