AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi automatisch in bestimmtem Intervall Taste senden
Thema durchsuchen
Ansicht
Themen-Optionen

automatisch in bestimmtem Intervall Taste senden

Ein Thema von microhome · begonnen am 14. Jan 2007 · letzter Beitrag vom 14. Jan 2007
Antwort Antwort
microhome

Registriert seit: 16. Okt 2005
8 Beiträge
 
#1

automatisch in bestimmtem Intervall Taste senden

  Alt 14. Jan 2007, 10:11
Hallo ihr Lieben,
ich hab mal eine Frage zur Simulation von einem Tastendruck und dem Senden von diesem an eine andere Applikation. Ich weiß, dass ersteres schon 1000 Mal behandelt wurde, aber ich weiß nicht wie ich das ganze in Zusammenhang bringen kann.
Folgende Aufgabe ist zu lösen: Ich habe ein Spiel, welches nach 30 Minuten inaktiv wird. Wenn ich jedoch innerhalb dieser Zeit eine Taste drücke, dann verlängert sich diese Zeit entsprechend. Meine Idee ist die, ein einfaches Programm zu schreiben, welches im Hintergrund läuft und alle 15 Minuten den Rechtspfeil eine Sekunde lang (!) an das Programm senden. So dreht sich die Figur im Spiel und die "Deadline" zur Inaktivität wird um 15 Minuten verlängert.

Habt ihr Ideen oder Codeschnipsel, um das Ganze so zu realisieren?



Vielen Dank schonmal im Vorraus!
m!cro
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: automatisch in bestimmtem Intervall Taste senden

  Alt 14. Jan 2007, 10:12
Ein Timer und SendKeys.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
microhome

Registriert seit: 16. Okt 2005
8 Beiträge
 
#3

Re: automatisch in bestimmtem Intervall Taste senden

  Alt 14. Jan 2007, 10:22
Also nen Timer starten, der alle 15 Min einen timer aufruft, der eine sekunde lang sendkeys aufruft?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: automatisch in bestimmtem Intervall Taste senden

  Alt 14. Jan 2007, 10:24
Dein Spiel wird ja vermutlich schon den Focus haben und muss somit nicht erst den Focus erhalten.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
microhome

Registriert seit: 16. Okt 2005
8 Beiträge
 
#5

Re: automatisch in bestimmtem Intervall Taste senden

  Alt 14. Jan 2007, 10:26
Ja, das mit dem Focus hat sich wohl erledigt, weil so wie ich das gerade gelesen habe, sendkeys extra dafür gemacht ist, keys an externe Applikationen zu senden.
  Mit Zitat antworten Zitat
microhome

Registriert seit: 16. Okt 2005
8 Beiträge
 
#6

Re: automatisch in bestimmtem Intervall Taste senden

  Alt 14. Jan 2007, 10:59
So, bisher habe ich folgendes:

procedure TForm4.Button1Click(Sender: TObject);
var i: integer;
begin
for i:=1 to 10 do // = 10 Mal
begin
Keybd_Event(Ord('A'),0,0,0);
sleep (1000);
Keybd_Event(Ord('A'),0,KEYEVENTF_KEYUP,0);
sleep(10000); // alle 10 Sek
end;
end;

Also zum testen alle 10 Sek statt 15 Min. Nur nun habe ich durch die for-Schleife das Problem, dass ich das Ganze nicht stoppen kann. Ich könnte auf die Form noch einen Button für stop legen, aber ich kann ja die Form nicht mehr aufrufen (solange die Schleife läuft)...

Was kann ich da machen? Helfen SpeedButton da weiter?



m!cro
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: automatisch in bestimmtem Intervall Taste senden

  Alt 14. Jan 2007, 11:21
Man nehme: einen Timer mit Interval 15 Minuten und da das senden des Keys. Alternativ könntest du mal nach DelayDelay suchen, das ist ein Sleep ohne Sleep.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: automatisch in bestimmtem Intervall Taste senden

  Alt 14. Jan 2007, 11:22
Zitat von microhome:
So, bisher habe ich folgendes:

procedure TForm4.Button1Click(Sender: TObject);
var i: integer;
begin
for i:=1 to 10 do // = 10 Mal
begin
Keybd_Event(Ord('A'),0,0,0);
sleep (1000);
Keybd_Event(Ord('A'),0,KEYEVENTF_KEYUP,0);
sleep(10000); // alle 10 Sek
end;
end;

Also zum testen alle 10 Sek statt 15 Min. Nur nun habe ich durch die for-Schleife das Problem, dass ich das Ganze nicht stoppen kann. Ich könnte auf die Form noch einen Button für stop legen, aber ich kann ja die Form nicht mehr aufrufen (solange die Schleife läuft)...

Was kann ich da machen? Helfen SpeedButton da weiter?



m!cro
Anstelle einer Schleife könntest Du einen Timer benutze der alle 10 Sekunden ausgelöst wird.
Mit einem Button könntest Du den Timer von enabled auf disabled stellen um die Aktionen
zu starten oder zu unterbrechen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
microhome

Registriert seit: 16. Okt 2005
8 Beiträge
 
#9

Re: automatisch in bestimmtem Intervall Taste senden

  Alt 14. Jan 2007, 11:56
Das ist ne super Idee! Danke dir. Thema gelöst.
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:05 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