Fehler in Tastendrucksimulations-Programm =)



  • Hallo,
    das hier ist mein Programm, welches wenn die entsprechende Taste gedrückt wurde (F1-F9) die Tasten dann immer mit einer kleinen Pause ausführt.
    Das sollte so gehen: Wenn man z.b. F1 und F2 drückt wird F1 und F2 immer wieder emuliert, solange bis mit F12 wieder alle laufenden Behle abgebrochen werden.
    F12 sollte dann alle Werte wieder auf 0 setzten
    damit diese Bedingungen nicht mehr Erfüllt sind:
    if(GetAsyncKeyState(0x70) || a1==1) und so weiter
    Das Problem ist wenn ich F12 gedrückt wird
    dann hört es trotzdem nicht auf F1-F9 zu Emulieren.
    Könnte es vielleicht sein das der entsprechende key mit keybd_event
    gleich wieder ausgelöst wird?
    Vielen dank

    #include <windows.h>
    #include <iostream>
    #include <string>
    
    using namespace std;
    extern "C" void __declspec(dllexport) Funktion()
    {   
      int a1=0; 
      int b2=0;
      int c3=0;
      int d4=0;
      int e5=0;
      int f6=0;
      int g7=0;
      int h8=0;
      int i9=0;
      while(true) 
      { 
        if(GetAsyncKeyState(0x70) || a1==1) 
        { 
                                  a1=1;
    
                keybd_event(VK_F1 , 0, 0L, 0L); 
          Sleep(100);
          keybd_event(VK_F1, 0, KEYEVENTF_KEYUP, 0L); 
          lol:;
          Sleep(200);
        } 
         if(GetAsyncKeyState(0x71) || b2==2) 
        { 
          b2=2;
                keybd_event(VK_F2 , 0, 0L, 0L); 
          Sleep(100);
          keybd_event(VK_F2, 0, KEYEVENTF_KEYUP, 0L); 
          Sleep(200);
        } 
         if(GetAsyncKeyState(0x72) || c3==3) 
        { 
          c3=3;                         
                keybd_event(VK_F3 , 0, 0L, 0L); 
          Sleep(100);
          keybd_event(VK_F3 , 0, KEYEVENTF_KEYUP, 0L); 
          Sleep(200);
        } 
        if(GetAsyncKeyState(0x73) || d4==4) 
        { 
          d4=4;
                keybd_event(VK_F4 , 0, 0L, 0L); 
          Sleep(100);
          keybd_event(VK_F4 , 0, KEYEVENTF_KEYUP, 0L); 
          Sleep(200);
        } 
         if(GetAsyncKeyState(0x74) || e5==5) 
        { 
          e5=5; 
                keybd_event(VK_F5 , 0, 0L, 0L); 
          Sleep(100);
          keybd_event(VK_F5 , 0, KEYEVENTF_KEYUP, 0L); 
          Sleep(200);
        } 
         if(GetAsyncKeyState(0x75) || f6==6) 
        { 
          f6=6;
                keybd_event(VK_F6 , 0, 0L, 0L); 
          Sleep(100);
          keybd_event(VK_F6 , 0, KEYEVENTF_KEYUP, 0L);  
          Sleep(200);
        } 
        if(GetAsyncKeyState(0x76) || g7==7) 
        { 
          g7=7;
                keybd_event(VK_F7 , 0, 0L, 0L); 
          Sleep(100);
          keybd_event(VK_F7 , 0, KEYEVENTF_KEYUP, 0L); 
          Sleep(200);
        } 
        if(GetAsyncKeyState(0x77) || h8==8) 
        { 
          h8=8;
                keybd_event(VK_F8 , 0, 0L, 0L); 
          Sleep(100);
          keybd_event(VK_F8 , 0, KEYEVENTF_KEYUP, 0L); 
          Sleep(200);
        } 
        if(GetAsyncKeyState(0x78) || i9==9) 
        { 
          i9=9;
                keybd_event(VK_F9 , 0, 0L, 0L); 
          Sleep(100);
          keybd_event(VK_F9 , 0, KEYEVENTF_KEYUP, 0L); 
          Sleep(200);
        }     
            if(GetAsyncKeyState(0x7B)) 
        { 
    //so viele versuche aber es geht nicht
               a1=0; 
                b2=0;
         c3=0;
         d4=0;
                  e5=0;
         f6=0;
          g7=0;
         h8=0;
         i9=0;
                    a1=0; 
                b2=0;
         c3=0;
         d4=0;
                  e5=0;
         f6=0;
          g7=0;
         h8=0;
         i9=0;
                    a1=0; 
                b2=0;
         c3=0;
         d4=0;
                  e5=0;
         f6=0;
          g7=0;
         h8=0;
         i9=0;
                    a1=110; 
                b2=110;
         c3=110;
         d4=110;
                  e5=110;
         f6=110;
          g7=110;
         h8=110;
         i9=110;
        }     
      //  else  {
           //  Sleep(100);
          //   }                       
      } 
    } 
    
    BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
    {
       return TRUE;
    }
    


  • Für solche [Vermutung anfang]Cheating-[Vermutung ende] progs eignet sich AutoIt meiner Meinung nach besser als C++...

    Ausserdem hast du deinen Fehler schon gesagt 😉


  • Mod

    keybd_event hat auch Einfluss auf GetAsynchKeyState! Dir ist klar, dass ein keybd_event genau auch diese Funktione beeinflusst!


Anmelden zum Antworten