Autor |
Beitrag |
Unknown
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Mo 02.06.08 12:31
Hallo,
ich hab mir ma nen Prog gebastelt, mit denen ich Strings oder TastenBefehle an inaktive Fenster Senden kann.
Das war alles noch gut und einfach.
Um die ganzen Handles rauszubekommen habe ich WinSpy benutzt.
Hier mein jetziger Code:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure SendString(ClassnameParent, ClassnameChild, Windowname :PAnsiChar); var wndMain,wndChild: HWND; i: Integer; s: string; begin wndMain := FindWindow(ClassnameParent,Windowname); if wndMain <> 0 then begin wndChild := FindWindowEx(wndMain, 0, ClassnameChild , nil); s := 'Klappt :D'; for i := 1 to Length(s) do SendMessage(wndChild, WM_CHAR, Word(s[i]), 0); end; end; |
Und dann aufgerufen mit :
Delphi-Quelltext 1:
| SendString('WordPadClass', 'RICHEDIT50W', 'Test - WordPad'); |
Das lief alles ganz gut =).
Nur möchte ich jetzt ein DirectX Programm ansprechen, halt nen kleinen Bot schreiben =).
Nur bekomme ich mit WinSpy nicht die geschünschten Handles.
Jetzt meine Frage, wie könnte ich das machen.
Danke schonmal für Hilfen
MfG Unknown
|
|
Unknown 
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Mo 02.06.08 18:22
Kann mir keiner helfen ?
Es handelt sich um das Spiel FlyFF.
Wenn das einen was sagt.
Strings wie "Hallo", "Geh Weg ! ^^" und so schicken.
MfG Unknown
|
|
Unknown 
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Di 03.06.08 14:04
Hmmm.... Vielleicht habe ich meine Frage schlecht gestellt.
Also, um mit dem obigen Code Arbeiten zu können brauche ich doch Handles etc.
Wie bekomme ich die aus einem Spiel heraus.
Sprich das Fenster selber und die Buttons die im Spiel sind.
Wenn ihr was nicht versteht, fragen, nicht nix sagen.
MfG Unknown
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Di 03.06.08 20:20
Hmm..ich weiß nicht, ob das bei einem Spiel einfach so ohne weiteres Möglich ist..
Hast du da mal versucht, mit WinSpy draufzugehen?
Kannst du das Spiel im Fenstermodus starten?
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
Unknown 
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Di 03.06.08 20:31
WinSpy => Ja
Fenstermodus => Ja
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Di 03.06.08 20:45
Hmm...ich glaub nicht, dass du auch großartig viele Möglichkeiten hast, darauf zu kommen..denn das ganze wird ja nicht so programmiert wie Delphi, sondern eher gezeichnet - oder irre ich mich?
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Di 03.06.08 20:49
ZeitGeist87 hat folgendes geschrieben: | Hmm...ich glaub nicht, dass du auch großartig viele Möglichkeiten hast, darauf zu kommen..denn das ganze wird ja nicht so programmiert wie Delphi, sondern eher gezeichnet - oder irre ich mich? |
Korrekt. Siehe hier. 
|
|
Unknown 
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Di 03.06.08 20:49
Ja das tust du  .
Ich meine , bzw ich weiß, das Buttons in 3D Programmen auch Handles haben  .
btw, viel Spaß bei CSS, vllt treffen wir uns da ;D
@Marc: also wenn ich mit C++ und directX progge haben die immer ne bestimmte ID, und somit doch auch ein Handle oder ?
--- Moderiert von Narses: Beiträge zusammengefasst---
Und ´kann man den ne Nachricht einfach ans fenster senden ?
|
|
Unknown 
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Fr 06.06.08 14:41
Weiß echt keiner wie man das Handle rausfinden könnte oO
Ich will ja nur Befehle ans Fester senden....
MfG Unknown
|
|
Clemens L.
      
Beiträge: 158
Win Xp SP3
D6 Enterprise, Turbo Delphi Explorer
|
Verfasst: Fr 06.06.08 14:56
Das Handle vom Fenster kannst du anhand des Fenstertitels erhalten!
Delphi-Quelltext 1:
| Handle := FindWindow(nil,WindowTitle); |
Glaub jedenfalls das es so geht!
|
|
_frank_
      
Beiträge: 343
Erhaltene Danke: 1
Win XP
Delphi 3 Prof / Turbo Delphi Explorer
|
Verfasst: Fr 06.06.08 15:49
was für Befehle willst du an das fenster schicken bzw. was soll das Spiel damit machen?
wenn es nur Tastenkombinationen (bzw. Tastatureingaben) sind hilft evtl. KeybdEvent. ich denke mal, anders kommst du nicht ran ohne dich direkt per DirektX dazwischenzuhängen.
HTH Frank
_________________ EB FE (die wahrscheinlich kürzeste Endlosschleife der Welt  )
BA 01 00 00 00 52 EB 09 BB 4D 11 86 7C FF D3 EB 0D E8 F2 FF FF FF 63 68 61 72 6D 61 70 00 C3
|
|
Unknown 
      
Beiträge: 184
Win XP
Delphi 7
|
Verfasst: Fr 06.06.08 15:52
Wie ihr oben sehen könnt, habe ich den code schon fertig, nur finde ich mit WinSpy nicht den Handle, bzw. den windowTitle
|
|
Clemens L.
      
Beiträge: 158
Win Xp SP3
D6 Enterprise, Turbo Delphi Explorer
|
Verfasst: Fr 06.06.08 15:57
Den Fenster-Titel kann man im Fenstermodus von DirectX-Spielen normal in der Titelleiste ausgelesen werden! 
|
|