![]() |
Re: Keybinder - GTA SA
warum es meiner meinung nach schlechter programmierstil ist? weil wenn ich unbedingt tasten simulieren wollte könnte ich auch den zwischenspeicher nutzen. den angeforderten string dort unterbringen und "strg" + "v" simulieren lassen. damit knnte ich dann auch sicher stellen dass der string beliebig verändert werden kann und es wäre wesentlich allgemeiner formuliert. aber ich will eigentlich nicht unnötig viele tasten simulieren. "t" zum öffnen und "enter" zum bestätigen reichen und lassen sich auch nciht umgehen.
PS: sry luckie aber der comment war nicht sehr konstruktiv:( |
Re: Keybinder - GTA SA
Dann mußt du aber immernoch einige Tastenanschläge simulieren
und das andere Programm muß dieses Kopieren ebenfalls unterstützen (wobei du hierbei eventuell glück haben könntest). PS: Wenn soein Hilfsprogramm dann ständig unnötig meine Zwischenablage zerschießt, dann fänd ich das nicht nett. PSS: Wenn du also eh Tasten simulieren mußt, wozu dann zusätzlich noch einen weiteren Weg implementieren, wenn doch schon der erste Weg alle nötigen Möglichkeiten bietet? |
Re: Keybinder - GTA SA
Die zwischenablage wird von fast allen programmen unterstützt.
der user soll selbst entscheiden können welche befehle auf den tastenkombinationen liegen. insofern stelle ich mir den quelltext um alle möglichkeiten abzugreifen recht umständlich vor. Ich bin kein blutiger Anfänger beim programmieren und habe mich hier ans Forum gewand weil ich eben nicht über die zwischenablage gehen will und auch nicht unnötig viele tastensimulationen verwenden will. |
Re: Keybinder - GTA SA
Wieso umständlich?
Hast du dir denn mal das SendKey oder Dergleichen angesehn? ![]() |
Re: Keybinder - GTA SA
ja ich kenne mich mit tastensimulationen aus^^ is kein neugebiet;)
|
Re: Keybinder - GTA SA
Zitat:
Delphi-Quellcode:
//-- EDIT: procedure SendText(ptrData: Pointer; cbLen: Integer); procedure SendText(ptrData: Pointer); var ptrByte: PByte; bShift: Boolean; begin ptrByte := ptrData; while ptrByte^ <> 0 do begin bShift := False; if ((ptrByte^ > $40) and (ptrByte^ < $5B) ) then begin bShift := True; keybd_event(VK_SHIFT, 0, 0, 0); end; if ((ptrByte^ > $60) and (ptrByte^ < $7B)) then begin keybd_event(ptrByte^ - $20, 0, 0, 0); keybd_event(ptrByte^ - $20, 0, KEYEVENTF_KEYUP, 0); end else begin keybd_event(ptrByte^, 0, 0, 0); keybd_event(ptrByte^, 0, KEYEVENTF_KEYUP, 0); end; if bShift then keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); inc(ptrByte); end; end; begin SendText(PChar('Hello world ')); end. |
Re: Keybinder - GTA SA
Erstmal ne Frage: welche funktion hat der übergebene Parameter cbLen? ich denke mal Len steht für Length aber welche länge und warum wird er nicht benutzt?
Inwiefern hilft mir die procedure weiter?:) |
Re: Keybinder - GTA SA
Hallo Millencolin, der ist bei der Strg + C Aktion nicht rausgeflogen.
Vergiss ihn, den brauchst bei Übergabe als PChar nicht. lg. Astat |
Re: Keybinder - GTA SA
Zitat:
HookDll, guckst du da! ![]() lg. Astat |
Re: Keybinder - GTA SA
schuldige habe nen teil vom quelltext einfach überlesen^^
ich nutze fürs erste hotkeys...hatte mir hooks auch schonmal angeschaut jedoch dann von der anwendung abgeschreckt weil ich ja beim user durch eine AntiViren meldung kein Misstrauen säen will:) ich probiere erstmal ein wenig mit deiner procedure rum und melde mich dann morgen wieder;) PS: danke schonmal an himitsu und astat für die in anspruch genommene zeit |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz