Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Keybinder - GTA SA (https://www.delphipraxis.net/147614-keybinder-gta-sa.html)

Millencolin 14. Feb 2010 15:40

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

himitsu 14. Feb 2010 16:00

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?

Millencolin 14. Feb 2010 16:22

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.

himitsu 14. Feb 2010 17:18

Re: Keybinder - GTA SA
 
Wieso umständlich?

Hast du dir denn mal das SendKey oder Dergleichen angesehn?
http://www.delphipraxis.net/internal...ct.php?t=85418

Millencolin 14. Feb 2010 19:21

Re: Keybinder - GTA SA
 
ja ich kenne mich mit tastensimulationen aus^^ is kein neugebiet;)

Astat 14. Feb 2010 21:45

Re: Keybinder - GTA SA
 
Zitat:

Zitat von Millencolin
ja ich kenne mich mit tastensimulationen aus^^ is kein neugebiet;)

Na dann,...

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.

Millencolin 14. Feb 2010 22:18

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?:)

Astat 14. Feb 2010 22:30

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

Astat 14. Feb 2010 22:48

Re: Keybinder - GTA SA
 
Zitat:

Zitat von Millencolin
Inwiefern hilft mir die procedure weiter?:)

Rufst Du mit einem Hotkey, oder in einer Hook-Dll auf, und schon hast Du den schönsten Keybinder.

HookDll, guckst du da!

http://www.delphipraxis.net/internal...835&highlight=

lg. Astat

Millencolin 14. Feb 2010 23:03

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 03:46 Uhr.
Seite 2 von 3     12 3      

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