Avatar billede pfp Nybegynder
01. marts 2001 - 11:27 Der er 20 kommentarer og
1 løsning

Simulering at tastetryk

Hejsa

Jeg har brug for et lille program som kan simulere tryk på skiftevis højre og venstre piletast. Jeg vil gerne have sådan at der fx trykkes 500 gange per minut. Kan dette lade sig gøre?

/Peter F. Poulsen
Avatar billede wisen Nybegynder
01. marts 2001 - 11:31 #1
Ja, men 500 gange pr. minut kan du ikke være sikker på. Du skal bare sende en række WM_LBUTTONDOWN eller WM_RBUTTONDOWN messages...
Avatar billede wisen Nybegynder
01. marts 2001 - 11:32 #2
Der findes en procedure \"sendmessage\"...
Avatar billede wisen Nybegynder
01. marts 2001 - 11:33 #3
Hvad skal det bruges til ? Du skal jo regne med, at vinduet drukner i messages....
Avatar billede borrisholt Novice
01. marts 2001 - 11:39 #4
Du skal bruge WM_KEYDOWN og ikke det andet som wissen siget, fordi WM_LBUTTONDOWN bruges til al klikke med.

Slå WM_KEYDOWN op i din MSDN

Jens B
Avatar billede pfp Nybegynder
01. marts 2001 - 11:57 #5
-> borrisholt

Kan jeg få dig til at lave et eksempel til mig (jeg er helt nybegynder i Delphi). Jeg vil er villig til at give flere point.

/Peter F. Poulsen
Avatar billede borrisholt Novice
01. marts 2001 - 12:00 #6
pfp  >> Det kan du skatens .....

De taste tryk hvad skal de sendes til ? En form et edit felt eller hvad?

Jens B
Avatar billede pfp Nybegynder
01. marts 2001 - 12:04 #7
-> borrisholt

Jeg skal bare have lavet en slags loop som kører i baggrunden hele tiden. Jeg skal bruge det til et internetspil, hvor det går ud på at klikke så mange gange som muligt i løbet af kort tid. Ved godt det lyder underligt, men det er altså det det skal.´

/Peter F. Poulsen
Avatar billede pfp Nybegynder
01. marts 2001 - 12:07 #8
-> borrisholt

http://langtfralasvegas.zulu.dk/?olympics

kan du se helt præcis hvad det skal bruges til :-)

/Peter F. Poulsen
Avatar billede wisen Nybegynder
01. marts 2001 - 12:24 #9
DOH ! Piletast != Musetast; Min fejl :(
Avatar billede pellelil Nybegynder
01. marts 2001 - 13:23 #10
Af ren nysgærighed: i hva\' forbindelse har du brug for 500 taste tryk i minuttet ?
Avatar billede borrisholt Novice
01. marts 2001 - 13:29 #11
pfp >> problemet er ikke at simulere et taste tryk. Det er ikke svært men jeg kan altså ikke finde handlet til den kontrol på siden der skal have dem ... Hvis du kan være vært ved et handle til kontrollen så skal jeg lave resten ...

Jens B
Avatar billede borrisholt Novice
01. marts 2001 - 14:02 #12
pfp>> Hvordan ser man hi-scorelisten ?

Jens B
Avatar billede borrisholt Novice
01. marts 2001 - 14:37 #13
Nå du er vist gået hjem .. men her kommer svaret altså ....

Først skal vi skaffe os et handle til vinduet det skal have dine taste tryk.... Når så det er gjort skal det hardcodes ind i applicationen som så re-kompileres ....

Windows har en smart feature med at den vil fortælle dig handlet på det vindue du holder musen hen over .....

Altså :
  Sæt en timer timer der opdaterer tit fx. 10 gange i sekundet på din form.
giv den en OnTimer event :

procedure TForm1.Timer1Timer(Sender: TObject);
var
  Point : TPoint;
begin
  GetCursorPos(Point);
  Caption := IntToStr( WindowFromPoint(Point));
end;

 
Så skal vi lige sikere os at din applikation forbliver øverst:

procedure TForm1.FormCreate(Sender: TObject);
begin
  FormStyle := fsStayOnTop;
end;

Sidst men ikke mindst skal vi have en knap man trykker på nå det hele skal begynde .. Så sådan en sætter du også på.

Giver den et onclick event :

procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  Timer1.Enabled := false;
  for i:= 0 to 5000 do
  begin
    SendMessage(1376722,WM_KEYDOWN,VK_RIGHT,0);
    SendMessage(1376722,WM_KEYDOWN,VK_LEFT,0);
  end;
end;

BEMÆRK :
  1376722 er det handle som vinduet havde på min computer det er HELTSIKKERT ikke det samme hos dig.

(Husk at lave en lille form, så den ikke står i vejen)

Øvelsen består nu i at skaffe dig et handle til vores spil... kompiler applikationen, og kør den.
Luk siden op og hold musen hen over spillet. Det tal der står i titel baren skal du huske.

Luk så din applikation.

Det tal fra før skal Sendmessage så have som første argument. Applikationen skal nu rekompileres, med det nye tal.

Så er du klar !

Start spillet op, og når du ønsker det trykker du på button1 og vupti skyder du en 3-4 km !

Jens B
Avatar billede borrisholt Novice
05. marts 2001 - 09:59 #14
pfp >> Hvis du kan bruge svaret må du MEGET gerne lukke efter dig ...

Jens B
Avatar billede pfp Nybegynder
05. marts 2001 - 10:38 #15
borrisholt >> Undskyld jeg ikke har vent tilbage før. Hvordan er du siger jeg finder det handle?

/Peter F. Poulsen
Avatar billede borrisholt Novice
05. marts 2001 - 10:40 #16
Først skal vi skaffe os et handle til vinduet det skal have dine taste tryk.... Når så det er gjort skal det hardcodes ind i applicationen som så re-kompileres ....

Windows har en smart feature med at den vil fortælle dig handlet på det vindue du holder musen hen over .....

Altså :
  Sæt en timer timer der opdaterer tit fx. 10 gange i sekundet på din form.
giv den en OnTimer event :

procedure TForm1.Timer1Timer(Sender: TObject);
var
  Point : TPoint;
begin
  GetCursorPos(Point);
  Caption := IntToStr( WindowFromPoint(Point));
end;

Jens B
 
Avatar billede pfp Nybegynder
05. marts 2001 - 10:43 #17
borrisholt >> Jeg skal sende tastetrykkene til et spil der er på en hjemmeside og jeg ved ikke hvordan jeg finder handlet til vinduet.

/Peter F. Poulsen
Avatar billede borrisholt Novice
05. marts 2001 - 10:49 #18
Peter >>
  Lav det program jeg har beskrevet.
  Kompiler det og start det op.
  Luk den pågældende side op, og hold musen hen over spillet.
  I captionen på applikationen, du lige har lavet står det er tal.
  Husk på det fordi det er dit handle. Det skal så bare hardcodes ind i applikationen.
 
Følg brugs anvisningen i øvrigt.

Kan du ikke vise MIG hvor man finder en top10 eller noger ligende ?

Jens B
Avatar billede borrisholt Novice
05. marts 2001 - 10:59 #19
bemærk : Når du reloader siden eller lukker den skal du have et nyt handle....

Jens B
Avatar billede pfp Nybegynder
05. marts 2001 - 11:12 #20
borrisholt >>

Tak nu virker det perfekt! Jeg tror faktisk at de har fjernet Top 10 listen, fordi de fandt ud af at der var nogen der snød :-)

/Peter F. Poulsen
Avatar billede borrisholt Novice
05. marts 2001 - 11:14 #21
snød ? Hvem mig ?

Jens B
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester