keyboard_key

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • keyboard_key

    Hi,
    um Tasten zu simulieren benutze ich immer

    Quellcode

    1. keyboard_key_press(ord('H'));
    2. keyboard_key_press(ord('E'));
    3. keyboard_key_press(ord('L'));
    4. keyboard_key_press(ord('L'));
    5. keyboard_key_press(ord('O'));
    6. keyboard_key_press(vk_space);
    7. keyboard_key_press(ord('D'));
    8. keyboard_key_press(ord('U'));
    9. keyboard_key_press(ord('D'));
    10. keyboard_key_press(ord('E'));
    11. keyboard_key_press(vk_enter);
    Alles anzeigen


    Nun wollte ich den ausbauen, und zwar.

    Programm auf:
    Box: wie viele Texte siollen es denn sein ?
    Box: Bitte geben sie ihren Text ein
    Box: Nun bitte das Intervall in dem es geschireben werden soll (Zeitabstand)

    Nun schreibt er in diesem Intervall den Text. ABER mit simulierten Tasten.

    jemand eine Ahnung wiedas geht ?
    Projekte:

    Interesse ? PM mir ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von t3mp3st ()

  • DIes müsste ganz einfach gehen. Du nimmst den Text aus der ersten Abfrage (var_text) und gibts die einzelnen Buchstaben in diesem Intervall aus (var_time). Wobei der Intervall Wert in einem Alarm sein wird.
    Ich nehme an das du etwa sowas meinst...

    EDIT: Oder um es gleich noch mit deinen "Box: wie viele Texte siollen es denn sein ?" zu schreiben in intervall2.zip
    Dateien
    • intervall.zip

      (1,76 kB, 201 mal heruntergeladen, zuletzt: )
    • intervall2.zip

      (1,83 kB, 217 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von lucky90 ()

  • Ganz einfach...
    ... du musst nur das was du in den dtext geschrieben wird eigendlich in der keyboard_key_press-Funktion eingeschrieben.
    Etwa so:

    GML-Quellcode

    1. keyboard_key_press(ord(string_copy(var_text,var_i,1)))

    Leider müssen alle Buchstaben groß geschrieben werden um den Buchstbane press richtig zu nutzen.
    Deshalb musst du alles in Großbuchstaben konvertieren aber trotzdem bleiben die Buchstaben alle im keyboard_string klein... Das ist recht doff auch für leer-Zeichen... du musst also erst eine Übersetzung für das gesammte Script schreiben. Momentan hab ich das nicht gemacht... aber sicherlich wirds du das Ihrgend wann tun müssen wenn du den Keystring brauchst... Wozu braucht du eigendlich den Keystring? Den Keystring kannst du nähmlich im Intervall manipulieren bzw. du kannst neben den funktionen noch tasten drücken die dann auch im keystring sind. d.h. du kannst auch die intervll funktion ne ganze menge zeichen hinzu fügen...

    EDIT: So, ich hab dir das mal gemacht. Das Draw Event dient zum prüfen. Nur die Großschreibung der Wörter die du groß eingeben hast sind nicht groß geschrieben... Das musst du mit Shift Ihrgend wie machen... aber ich hab jetzt nicht den Nerv gehabt das zu programmieren da ich nicht weiß ob du das brauchen wirst.
    Dateien
    • intervall3.zip

      (1,86 kB, 206 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von lucky90 ()

  • Nun, ich habe einen dedicated Server programmiert. So daas ist nun eine Konsole. Und ich wollte ein Progi das automatisch in die Konsole schreibt. groß/klein ist egal....aber ist es normal da...nun irgendwie hat die gm6 Probleme mit "transkey" :( ?( ? nur finde den Fehler nicht...für mich scheint das richtig zu sein =(
    Projekte:

    Interesse ? PM mir ;)
  • Daraus nehme ich das du dich mit GML garnicht auskennts... ich hab nur vergessen vom probieren einen Restcode zu löschen...
    Ich habs dir gleich richtig gemacht. Es wir alles klein ausgeben...
    Dateien
    • intervall3.zip

      (1,86 kB, 193 mal heruntergeladen, zuletzt: )
  • ...ich weiss ich nerve =(....



    Nunja....ich habe momentan nicht viel Zeit GML zu lernen (ABI), deshalb versuche ich es meistens zu umgehen, falls es jedoch ger nicht gehen sollte kann ich trotzdem einige Sachen.

    Nur noch ein letzte Frage,
    Ich habe an allen mir logisch erscheinenden Stellen versucht "keyboard_key_press(vk_enter);" einzufügen, um den fertigen String mit einem simulierten enter abzuschliesen. Doch wenn ich es asuführe erscheint keine oft keine Fehlermeldung sondern schliest sich einfach... :heul:.
    Muss nur die Stelle wissen...
    Projekte:

    Interesse ? PM mir ;)
  • Ist doch kein Problem...

    Zu erst muss den Automatisch eingebauten Enter ausbauen den ich eingebaut habe. Im Create Event in den Zeilen findest du folgenden Code:

    GML-Quellcode

    1. for(var_a=1;var_a<=var_ntext;var_a+=1) {
    2. var_text+=string_upper(get_string('Geben Sie einen Text ein!','Hallo Welt!')+'#');
    3. }

    Füge statt den oberen diesen ein:

    GML-Quellcode

    1. for(var_a=1;var_a<=var_ntext;var_a+=1) {
    2. var_text+=string_upper(get_string('Geben Sie einen Text ein!','Hallo Welt!'));
    3. }


    Zu guter letzt musst du nur noch den Enter hinter jeden Wort anfügen. Diesen Code im Alarm Event:

    GML-Quellcode

    1. var_i+=1;
    2. keyboard_key_press(ord(string_copy(var_text,var_i,1)));
    3. alarm[0]=var_time;

    ersetzen gegen diesen hier:

    GML-Quellcode

    1. var_i+=1;
    2. keyboard_key_press(ord(string_copy(var_text,var_i,1)));
    3. if (string_length(var_text)==var_i) {
    4. keyboard_key_press(vk_enter);
    5. }
    6. alarm[0]=var_time;

    So das wars schon. Das Enter aus dem Pressevent wird nicht angezeigt... ein nachteil hat alles... es scheint keine Sonderzeichen zu schreiben...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von lucky90 ()

  • hmmm so ähnlich hatte ich es... das Problem ist aber, er macht enter erst nach dem letzten Intervall. Also wer hier am letzten Buchstaben angekommen ist

    Quellcode

    1. var_i+=1;
    2. keyboard_key_press(ord(string_copy(var_text,var_i,1)));
    3. if (string_length(var_text)==var_i) {
    4. keyboard_key_press(vk_enter);
    5. }
    6. alarm[0]=var_time;


    Das ganze bezieht sich nun auf var_text, sowie ich das sehen also auf alle Intervalle.

    In der Zeile denke muss man was ändern, hmmm...nur mekert er dann wegenen var_time

    Quellcode

    1. if (string_length(var_text)==var_i) {


    Sonderzeichen müssten eventuell über ASCII funktioneren aber die sind nicht notwendig.
    Projekte:

    Interesse ? PM mir ;)
  • Du willst also die Funktion die hinter

    GML-Quellcode

    1. if (string_length(var_text)==var_i) {

    steht versuchen anders auszulösen.
    Leider ist mir noch ein Fehler aufgefallen... diese Funktion führt die Funktion erst nach allen auszuführenden intervall geschriebenen Texten... dh. erst ganz am Schluss kommt das ding. Wir müssen also ein Zeichen zwischen schalten um einiges ganz anders zu machen und zwar so wie du es am anfang wolltest...

    Am besten machen wir aus:

    GML-Quellcode

    1. for(var_a=1;var_a<=var_ntext;var_a+=1) {
    2. var_text+=string_upper(get_string('Geben Sie einen Text ein!','Hallo Welt!'));
    3. }

    erstmal wieder:

    GML-Quellcode

    1. for(var_a=1;var_a<=var_ntext;var_a+=1) {
    2. var_text+=string_upper(get_string('Geben Sie einen Text ein!','Hallo Welt!')+'#');
    3. }

    und ver ändern

    GML-Quellcode

    1. var_i+=1;
    2. var_dtext=string_copy(var_text,var_i,1);
    3. keyboard_key_press(ord(var_dtext));
    4. if (string_length(var_text)==true) {
    5. keyboard_key_press(vk_enter);
    6. }
    7. alarm[0]=var_time;

    zu

    GML-Quellcode

    1. var_i+=1;
    2. keyboard_key_press(ord(string_copy(var_text,var_i,1)));
    3. if (string_char_at(var_text,var_i)=='#') {
    4. keyboard_key_press(vk_enter);
    5. }
    6. alarm[0]=var_time;

    Somit kommt zu mindest nach jedem Text ein Enter und nicht nur ganz zum Schluss.
    Das was ich glaube aus deinem Text verstanden zu haben mit var_time wäre zu aufwendig die Zeit dafür zu berechnen und dann auszulösen mit dem Enter...
  • Benutzer online 1

    1 Besucher