tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
1464
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    webraccoon Tutorials.de Gastzugang
    Hallo Forum,

    ich suche schon eine geraume Zeit nach einer Möglichkeit eine Schleife laufen zu lassen, etwa für eine Stoppuhr-Funktion und diese auf Tastendruck anhalten zu lassen.

    Mit getchar() oder getch() habe ich das Probiert, hier wird die Schleife zwar gestartet, aber
    auch erste weitergeführt, wenn eine Taste gedrückt wird.

    Jemand eine Idee

    gruss
    webraccoon
     

  2. #2
    Shaijan Shaijan ist offline Mitglied Silber
    Registriert seit
    Mar 2004
    Beiträge
    57
    Hi ...
    ich weiß nicht wie man das gut lösen kann für eine Beliebige Taste.
    Aber du kannst es mit GetKeyState für eine Taste realisieren.

    z.b.
    Code :
    1
    2
    3
    4
    5
    
    //zählschleife
    for(int i=0;GetKeyState(VK_RETURN) != TRUE;i++)
    {
    ...
    }

    dies würde i so lange erhöhn bis du irgendwann die Enter-Taste drückst ... vorrausgesetzt ich habe GetKeyState richtig angewandt, aber kannst ja mal in der MSDN schaun.

    Gruß
    Shai
     

  3. #3
    webraccoon Tutorials.de Gastzugang
    hmm,

    ist auf jedenfall ein Anfang. Kannst Du mir auch sagen welche header ich einbinden mus

    gruss
    webraccoon
     

  4. #4
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Oder so:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
     
    #include <stdio.h>
    #include <stdlib.h>
     
     
    int main()
    {
         while(!_kbhit())
         {
              // mache etwas
         }
     
         return 0;
    }


    mfg
    umbrasaxum
     

  5. #5
    webraccoon Tutorials.de Gastzugang
    hi,

    ja danke, das funktioniert. Ich habe !kbhit versucht. Was bedeutet der Unterstrich davor?
    Eine Frage habe ich noch und vielleicht kannst Du sie mir beantworten:

    Ich möchte das Programm mit Ctrl-C verlassen. Kannst Du mir verraten wie ich diese Kombination abfrage?

    gruss
    webraccoon
     

  6. #6
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Ja was bedeutet der Unterstrich davor?! Gute Frage, der gehört aufjedenfall zu kbhit und es wurde halt so gemacht...


    Solche Kombinationen fragst du am besten mit GetKeyState ab wie Shaijan das schon beschrieben hat, selber kann ich dir weiter ncihts dazu sagen da ich die Funktion noch nie Benutzt hab.


    mfg
    umbrasaxum
     

  7. #7
    Flo@pg Flo@pg ist offline Mitglied
    Registriert seit
    Apr 2002
    Beiträge
    15
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    int wertA = GetAsyncKeyState(VK_RETURN);
     
    if(wertA!=0){
    Taste Gedrückt
    }else{
    Taste nicht gedrückt
    }

    bzw. für die stoppuhr:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    int wertA;
    while(wertA == 0){
     
    wertA = GetAsyncKeyState(VK_RETURN);
     
    Timer Funktion ausführen(+1 Sekunde)
     
    ::Sleep(1000);
     
    }

    --> int wertA = GetAsyncKeyState(VK_RETURN);
    Hier steht in der Klammer welche Taste "überwacht" werden soll hier im Beispiel ist es die "Return" Taste, wenn sie gedrückt ist gibt sie glaub ich einen negativen Wert zurück, aber bin mir da momentan nicht ganz sicher aber auf jedenfall ist der Wert dann ungleich 0...


    ne genaue Auflistung der Einzelnen Tasten findest du unter:

    http://msdn.microsoft.com/library/de...alKeyCodes.asp

    Ich seh grad dass du die C Taste mit einbauen willst, die könnte man eventuell so abfragen:

    GetAsyncKeyState(0x43);
    Geändert von Flo@pg (07.02.05 um 02:14 Uhr)
     

  8. #8
    webraccoon Tutorials.de Gastzugang
    hey,

    ja danke genau sowas hat mir gefehlt.
    Hatte eine "Aktion" mit kbhit abgefragt, ist auch ganz gut für einfache Verhältnisse aber nach einigen praktischen Anwendungen, hat sich gezeigt, daß es doch besser ist, wenn man eine bestimmte Taste drückt.

    Gruss
    webraccoon
     

Ähnliche Themen

  1. while-Schleife anhalten
    Von 18LetterLongName im Forum Java
    Antworten: 2
    Letzter Beitrag: 12.02.10, 14:52
  2. Programm anhalten
    Von Schneidoa im Forum Java
    Antworten: 2
    Letzter Beitrag: 05.09.06, 22:46
  3. Threads anhalten und wiederbeleben
    Von bspainkf36 im Forum Java
    Antworten: 3
    Letzter Beitrag: 13.08.05, 12:45
  4. EndlosSchleife per (zB.:esc) anhalten?
    Von vaporizer im Forum Java
    Antworten: 1
    Letzter Beitrag: 02.03.04, 02:06
  5. AS funktion anhalten
    Von PIUPIUPIUPIU im Forum Flash Plattform
    Antworten: 6
    Letzter Beitrag: 24.02.04, 19:57