AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PostMessage problem

Ein Thema von k4ni · begonnen am 29. Jan 2008 · letzter Beitrag vom 23. Feb 2010
Antwort Antwort
Seite 1 von 2  1 2      
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#1

PostMessage problem

  Alt 29. Jan 2008, 03:04
hey leute,

Normalerweise macht man doch damit EINEN tastendruck:
Delphi-Quellcode:
PostMessage(h, WM_KeyDown, $41, 0);
PostMessage(h, WM_KeyUp, $41, 0);
Doch komischerweise schickt er mir dann das "a" zweimal.

Ich hab mir die procedure von EnterText und umgeschrieben.
Und zwar so:

Delphi-Quellcode:
procedure SendText(AText: String);
var lCount, Ky : Integer;
    lScanCode : Smallint;
    h : HWND;
    lWithShift : Boolean;
begin
for lCount := 1 To Length(AText) Do
  begin
    lScanCode := VkKeyScan(AText[lCount]);
    lWithShift := lScanCode and (1 shl 8) <> 0;
   
    if lWithShift then
    PostMessage(Memo1.Handle, WM_KeyDown, VK_SHIFT, 0);

    PostMessage(Memo1.Handle, WM_KeyDown, lScanCode, 0);
    PostMessage(Memo1.Handle, WM_KeyUp, lScanCode, 0);

    if lWithShift then
    PostMessage(Memo1.Handle, WM_KeyUp, VK_SHIFT, 0);
  end;
end;
So sollte eigentlich funktionieren, also wenn der key ein grosses "A" ist das es dann auch ein grosses a macht.
Geht aber nicht da das KeyDown/KeyUp nicht wirklich geht.

Was ist daran dann falsch?
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: PostMessage problem

  Alt 30. Jan 2008, 14:02
[bump] Niemand ne idee? [/bump]
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: PostMessage problem

  Alt 30. Jan 2008, 14:10
normaler Weise macht man einen Tastendruck mit keybd_event
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: PostMessage problem

  Alt 30. Jan 2008, 14:17
Joar schon aber ich möchte es ja geplant mit PostMessage machen
Das problem wäre es ja garnicht dann mach ich einfach nur KeyDown und nicht KeyDown und KeyUp.
Aber das problem ist wenn der char ein großbuchstabe ist dann klickt es ja shift aber nur einmal kurz und lässt es nicht gedrückt bis wieder KeyUp kommt...
hmm
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: PostMessage problem

  Alt 30. Jan 2008, 14:28
Moin k4ni,

Du sollest Dir noch mal die Doku zu WM_KEYUP/WM_KEYDOWN durchlesen, speziell lParam.
Evtl. klappt es besser, wenn Du nicht einfach nur 0 angibst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: PostMessage problem

  Alt 30. Jan 2008, 14:34
Schon , nur mach ich das für ein spiel. Und da muss ich bestimmte lParam's nehmen sonst blockt es die keys.

So in etwa:
Delphi-Quellcode:
lParam := MapVirtualKey(VK_SHIFT, 0);
lParam := lParma shl 16;
Edit: Oh vielen dank! Ich hab mir das mal durchgelesen und es war recht interesant. Ich versuch das mal und hoffe das dieser shift key nicht geblockt ist. (es sind nur bestimmte geblockt)
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: PostMessage problem

  Alt 30. Jan 2008, 14:43
DelphiCheater-PRAXiS

Ich kann nur hoffen, dass dein Account und die Accounts der Leute, die deinen Bot benutzen, gebannt werden.
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: PostMessage problem

  Alt 30. Jan 2008, 14:48
Sind ja keine cheats, ändert ja nichts an der memory. Ist lediglich ein auto-chatter.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#9

Re: PostMessage problem

  Alt 30. Jan 2008, 14:54
Sicher ist das ein interessantes Projekt. Trotzdem sind solche Programme, die von aussen auf das Spiel zugreifen und es (fern-)steuern von Herstellern nicht gern gesehen.

Nicht umsonst gibts z.B. bei WoW 'n Prog ("warden"), was im Hintergrund läuft und Prozesse überwacht, die auf den WoW-Prozess zugreifen und das protokollieren / reporten. Und nicht umsonst hat man dann wieder zig Leute im WoW Forum, die wegen Account-Bans rumheulen, á la "Aber ich hab doch garnichts gemacht ". Die hatten vlt. auch nur 'n "Auto-Chatter" (Anti-AFK-Bot?) am laufen?

Und wer weiß, was aus der Idee (Auto-Chatter) noch wird, wenn dein Konzept greift und du merkst, dass man damit ja auch noch viele andere Sachen machen könnte.
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: PostMessage problem

  Alt 30. Jan 2008, 15:25
Joar zudem ist das ja ziehmlich harmlos den in dem spiel hacken sowieso 40% der spieler. Das ist ein Auto-Chatter nix dagegen .

Nur hab ich jetzt rausgefunden das ich die PostMessage function einfach anderst benützen muss den das geht auch nicht:
Delphi-Quellcode:
procedure SendText(Handle: HWND; AText: String);
var lCount, Ky : Integer;
    lScanCode : Smallint;
    h : HWND;
    lWithShift : Boolean;
begin
for lCount := 1 To Length(AText) Do
  begin
    lScanCode := VkKeyScan(AText[lCount]);
    lWithShift := lScanCode and (1 shl 8) <> 0;

    if lWithShift then
      keybd_event(VK_SHIFT, 0, 0, 0);

    PostMessage(Handle, WM_KeyDown, lScanCode, 0);

    if lWithShift then
      keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
end;
Doch wie kann ich ermitteln ob iScanCode ein großbuchstabe ist?

Edit:
Also ich hab zumbeispiel auch rausgefunden das 1 = 49 ist und ! = 305 .
Aber ob 49 oder 305 beides sendet eine 1.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:38 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