AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Keybd_event funktioniert nicht?

Ein Thema von CuddlyBunny · begonnen am 10. Feb 2012 · letzter Beitrag vom 10. Feb 2012
Antwort Antwort
CuddlyBunny

Registriert seit: 10. Feb 2012
5 Beiträge
 
#1

Keybd_event funktioniert nicht?

  Alt 10. Feb 2012, 16:29
Hi. Ich hab was für 'n Spiel programmiert, das mir dann mit 'n paar Timern sagt, wann bestimmte Einheiten respawnen.
Jedenfalls will ich das dann auch in den Chat schreiben lassen für mein Team. Das schreiben funktioniert auch eigentlich so wie es soll (wenn ich z.B. im Editor bin, und das Event triggert, das die Wörter schreiben lässt, werden die Sätze in den Editor geschrieben). Wenn ich allerdings im Spiel bin, funktioniert es nicht. Das Programm mit seinen Ursprungsfunktionen klappt super wenn ich im Spiel bin, nur wird eben nichts geschrieben.

Ich hab Delphi nur in der Schule gelernt, daher bin ich nicht wirklich gut. Ich hoffe ihr könnt mir sagen was ich machen muss / was ich eventuell vergessen habe.
Hier ist ein bisschen Beispielcode:

Code:
procedure TForm1.Type_Blue;
begin
// blue //
keybd_event(66, 0, 0, 0);
keybd_event(76, 0, 0, 0);
keybd_event(85, 0, 0, 0);
keybd_event(69, 0, 0, 0);
keybd_event(32, 0, 0, 0);
end;
Code:
procedure TForm1.TmYBLUETimer(Sender: TObject);
begin
if YBD <> 0 then
  begin
  YBD := YBD -1;
end;

if YBD = 30 then
  begin
    if AutoVoice = 'TRUE' then sndPlaySound('sound\your-blue-30.wav', SND_ASYNC);
    if AutoSend = 'TRUE' then Type_Blue;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Keybd_event funktioniert nicht?

  Alt 10. Feb 2012, 16:49
Du lässt die Tasten ja nicht wieder los, sondern drückst sie nur. Vielleicht hilft Dir der Code aus der Code-Library weiter: EnterText

P.S.: Willkommen in der DP
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Keybd_event funktioniert nicht?

  Alt 10. Feb 2012, 16:54
Hi. Ich hab was für 'n Spiel programmiert, das mir dann mit 'n paar Timern sagt, wann bestimmte Einheiten respawnen.
Jedenfalls will ich das dann auch in den Chat schreiben lassen für mein Team. Das schreiben funktioniert auch eigentlich so wie es soll (wenn ich z.B. im Editor bin, und das Event triggert, das die Wörter schreiben lässt, werden die Sätze in den Editor geschrieben). Wenn ich allerdings im Spiel bin, funktioniert es nicht. Das Programm mit seinen Ursprungsfunktionen klappt super wenn ich im Spiel bin, nur wird eben nichts geschrieben.
Könntest Du vielleich noch einmal versuchen zu erklären um was es geht?
Bei mir ist nur "Banhof Kofferklauen" angekommen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Keybd_event funktioniert nicht?

  Alt 10. Feb 2012, 16:58
Das ging mir ähnlich, ich habe mir dann nur den Code angeschaut
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
CuddlyBunny

Registriert seit: 10. Feb 2012
5 Beiträge
 
#5

AW: Keybd_event funktioniert nicht?

  Alt 10. Feb 2012, 17:27
Ja ich bin nicht der Beste im Erklären.

Also ich spiele ein Spiel, bei dem gibt es so bestimmte Einheiten, die wenn man sie tötet, nach 5 Minuten respawnen. (League of Legends)
Wenn ich also diese Einheit töte, drücke ich eine Taste, und ein Timer läuft los, der eine Variable die auf 300 (für 300 Sekunden) ist, runterzählen lässt.
Wenn die Variable auf 30 ist, wird ein Event ausgelöst, bei dem mit der Simulation von mehreren Tastendrücken ein Satz in den Chat des Spiels geschrieben
werden soll. Das heißt also ich muss "Enter" simulieren, damit sich der Chat öffnet, danach muss ich das "Wort" simulieren, und danach muss ich erneut
"Enter" simulieren, damit er das Wort abschickt.

Jetzt zum Problem: Wenn ich versuche "Enter" zu simulieren, steht im Spiel nur "Type /help for a list of commands".
Das heißt irgendwie nimmt dieses Spiel die Simulation von "Enter" als ein Command auf.
Es funktioniert jetzt inzwischen alles, bis auf das "Enter" drücken.

Thx schonmal
- nico
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Keybd_event funktioniert nicht?

  Alt 10. Feb 2012, 17:36
Jetzt zum Problem: Wenn ich versuche "Enter" zu simulieren, steht im Spiel nur "Type /help for a list of commands".
Das heißt irgendwie nimmt dieses Spiel die Simulation von "Enter" als ein Command auf.
Es funktioniert jetzt inzwischen alles, bis auf das "Enter" drücken.
Also es handelt sich nicht um ein von Dir geschriebenes (Spiel-)Programm, dann hätte ich Dir etwas anderes vorgeschlagen, sondern Du willst eine Programmbedienung durch ein von Dir geschriebenes Programm simulieren. Soweit richtig verstanden?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
CuddlyBunny

Registriert seit: 10. Feb 2012
5 Beiträge
 
#7

AW: Keybd_event funktioniert nicht?

  Alt 10. Feb 2012, 17:39
Ja. In diesem Spiel(Programm) will ich (mit meinem selbstgeschriebenem Programm) mehrere Tastendrücke simulieren.
  Mit Zitat antworten Zitat
CuddlyBunny

Registriert seit: 10. Feb 2012
5 Beiträge
 
#8

AW: Keybd_event funktioniert nicht?

  Alt 10. Feb 2012, 17:53
Ich hab den Bug gefunden. Die Simulation der Tastendrücke die ich in meinem Programm gemacht hab, kam zu schnell hintereinander. Ich hab zwischendurch ein Sleep(30) eingefügt, und jetzt funktionierts Trd danke dass ihr euch zeit genommen habt^^
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz