AGB  ·  Datenschutz  ·  Impressum  







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

Keybinder - GTA SA

Offene Frage von "Millencolin"
Ein Thema von Millencolin · begonnen am 12. Feb 2010 · letzter Beitrag vom 15. Feb 2010
Antwort Antwort
Seite 2 von 3     12 3      
Millencolin

Registriert seit: 12. Feb 2010
11 Beiträge
 
#11

Re: Keybinder - GTA SA

  Alt 14. Feb 2010, 15:40
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#12

Re: Keybinder - GTA SA

  Alt 14. Feb 2010, 16:00
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?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Millencolin

Registriert seit: 12. Feb 2010
11 Beiträge
 
#13

Re: Keybinder - GTA SA

  Alt 14. Feb 2010, 16:22
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#14

Re: Keybinder - GTA SA

  Alt 14. Feb 2010, 17:18
Wieso umständlich?

Hast du dir denn mal das SendKey oder Dergleichen angesehn?
http://www.delphipraxis.net/internal...ct.php?t=85418
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Millencolin

Registriert seit: 12. Feb 2010
11 Beiträge
 
#15

Re: Keybinder - GTA SA

  Alt 14. Feb 2010, 19:21
ja ich kenne mich mit tastensimulationen aus^^ is kein neugebiet
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#16

Re: Keybinder - GTA SA

  Alt 14. Feb 2010, 21:45
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.
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat
Millencolin

Registriert seit: 12. Feb 2010
11 Beiträge
 
#17

Re: Keybinder - GTA SA

  Alt 14. Feb 2010, 22:18
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?
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#18

Re: Keybinder - GTA SA

  Alt 14. Feb 2010, 22:30
Hallo Millencolin, der ist bei der Strg + C Aktion nicht rausgeflogen.

Vergiss ihn, den brauchst bei Übergabe als PChar nicht.

lg. Astat
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#19

Re: Keybinder - GTA SA

  Alt 14. Feb 2010, 22:48
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
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat
Millencolin

Registriert seit: 12. Feb 2010
11 Beiträge
 
#20

Re: Keybinder - GTA SA

  Alt 14. Feb 2010, 23:03
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 01:51 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