Tastendruck simulieren



  • Hallo

    klar funktioniert AnsiString::Length().
    Du darfst nur nicht vergessen, das bei AnsiString die Zählung der Zeichen bei 1 anfängt.

    Ansosnsten zeig mal deinen Code, der nicht funktioniert (was im übrigen keine ausreichende Fehlerbeschreibung ist)

    bis bald
    akari



  • Hm, mit dem AnsiString Length komm ich nicht weiter^^

    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
      Timer1->Interval = 100;
      AnsiString Text = Edit1->Text;
      int Leng = AnsiString->Length(Text);
      int i;
      for (i = 1, i <= Leng, i++)
      {
          keybd_event(Text[i], 0, 0, NULL);
          keybd_event(Text[i], 0, KEYEVENTF_KEYUP, 0);
      }
      keybd_event(13, 0, 0, NULL);
      keybd_event(VK_CONTROL, 0, 0, NULL);
      keybd_event(13, 0, KEYEVENTF_KEYUP, 0);
      keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
    }
    


  • Ändere

    int Leng = AnsiString->Length(Text);
    

    in

    int Leng = Text.Length();
    


  • Ah, gut, jetzt klappt es einigermaßen.
    Aber wenn ich als Text "a" eingeb, wird immer "1" ausgegeben... Bei "b" dann "2" usw....

    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
      AnsiString Text = Edit1->Text;
      int Leng = Text.Length();
      int i;
      for (i = 1; i <= Leng; i++)
      {
          keybd_event(Text[i], 0, 0, NULL);
          keybd_event(Text[i], 0, KEYEVENTF_KEYUP, 0);
      }
      keybd_event(13, 0, 0, NULL);
      keybd_event(VK_CONTROL, 0, 0, NULL);
      keybd_event(13, 0, KEYEVENTF_KEYUP, 0);
      keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
    }
    


  • Also, was für einen Grund hat es, das der Text in Zahlen konvertiert wird? oO


Anmelden zum Antworten