Autor |
Beitrag |
Silas
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Di 10.04.07 20:48
Hallo!
Ich möchte hier ein kleines, (hoffentlich) lebenserleichterndes Programm vorstellen, dass ich entwickelt habe.
Der Name des Programms kommt von der Verwendungsart, für die ich es eigentlich geschrieben habe: Für die erleichterung des Cheat-Eingebens (Ja, ich gestehe, ich verwende Cheats!).
Mithilfe des Programms kann man jeder der F-Tasten einen String zuweisen (oder auch nicht), der automatisch eingegeben wird, sobald man sie drückt. Das ganze funktioniert global, also auch, wenn die Anwendung im Hintergrund läuft. Damit ist das Programm aber auch dann geeignet, wenn z.B. die Zwischenablage nicht ausreicht.
Die Zuordnungen lassen sich in eine Textdatei mit der Endunt .cht speichern (INI-Format) und wieder einlesen.
Einloggen, um Attachments anzusehen!
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
Zuletzt bearbeitet von Silas am Fr 13.04.07 13:03, insgesamt 2-mal bearbeitet
|
|
F34r0fTh3D4rk
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Di 10.04.07 20:54
ich glaube, dass das aber nicht unbedingt bei jedem Programm/Spiel funktioniert, es sei denn du machst das ganze auf Treiberebene. Welche Spiele hast du getestet ?
wenn ich eine andere F Taste wähle und da was eintrage, muss ich erst deaktivieren und aktivieren, damit die änderung wirksam ist, solltest du ändern
mfg
|
|
Silas
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Mi 11.04.07 15:24
Das Abfragen der F-Tasten läuft über GetAsyncKeyState (für Hooks war ich zu faul), das senden der Strings über keybd_event.
Getestet hab ich das Programm nur mit GTA: Vice City (dafür hab ich's auch eigentlich entwickelt, weil ich es leid war jedesmal mir mit "getthereamazinglyfast" für ein neues Auto die Finger kaputtzutippen wenn das alte geschrottet war, vor allem weil das bei mir ungefähr alle dreißig Sekunden der Fall ist ). Da funktioniert es einwandfrei.
Die Sache mit dem Aktivieren/Deaktivieren-Knopf ist (zumindest ursprünglich) Absicht gewesen, weil bei jedem Aktivieren die Edits und Checkboxen in Arrays übertragen werden (meines Wissens ist es deutlich resourcenschonender, ständig ein Array mit "for" zu durchlaufen als jedes Mal die Komponente erst mit "FindComponent" ausfindig zu machen und dann die jeweilige Eigenschaft auszulesen).
Ich hab jetzt eine neue Version hochgeladen, das Button-Chaos ist beseitigt (jetzt läuft alles über Menüs) und es gibt einen Eintrag, mit dem sich im aktivierten Zustand die Edits und Checkboxen neu einlesen lassen.
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
Silas
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Fr 13.04.07 13:06
Ich würde jetzt gerne noch die Möglichkeit einbauen, Tasten festzulegen, die zusätzlich zur F-Taste gedrückt werden müssen (also Ctrl, Alt, usw.).
Also es gibt drei Checkboxen (Ctrl, Alt und Shift), die nach Modifiers_* übertragen werden. Wenn eine ausgewählt wurde (Modifiers_? = true) und sie gedrückt ist (Boolean(GetAsyncKeyState(VK_?)) = true), dann soll der Cheat gesendet werden
Wie mach ich da am einfachsten die Abfrage? Bis jetzt ist mir nur Delphi-Quelltext 1: 2:
| if ((Modifiers_Alt and Boolean(GetAsyncKeyState(VK_MENU)) or ((not Modifiers_Alt) and (not Boolean(GetAsyncKeyState(VK_MENU))) and (Modifiers_Ctrl | eingefallen. (Ich hoffe ich hab mich mit den Klammern nicht vertan)
Danke schon mal im Voraus!
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
F34r0fTh3D4rk
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Fr 13.04.07 19:47
Delphi-Quelltext 1:
| if Boolean(GetAsyncKeyState(VK_MENU)) and not (Boolean(GetAsyncKeyState(VK_ALT) xor Modifiers_alt) |
wäre glaube ich eine möglichkeit, dann darfst du aber auch nicht die alt taste drücken, wenn der modifier aus ist das machst du dann für alle (alt shift und ctrl)
mfg
|
|
Silas
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Sa 14.04.07 19:06
Ich steck jetzt an dieser Stelle fest: Wenn kein Modifier ausgewählt ist funktioniert's (also activatemodifiers = false), sobald aber einer ausgewählt ist funktioniert es nicht mehr... er scheint nicht erkennen zu können ob Ctrl gedrückt ist... ich komm hier einfach nicht weiter:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| procedure TCheatForm.Timer1Timer(Sender: TObject); var i: byte; begin if LastCallTime + 300 < GetTickCount then begin if ActivateModifiers then begin if (Boolean(GetAsyncKeyState(VK_CONTROL)) and not (Boolean(GetAsyncKeyState(VK_CONTROL)) xor Modifiers_Ctrl)) and (Boolean(GetAsyncKeyState(VK_MENU)) and not (Boolean(GetAsyncKeyState(VK_MENU)) xor Modifiers_Alt)) and (Boolean(GetAsyncKeyState(VK_SHIFT)) and not (Boolean(GetAsyncKeyState(VK_SHIFT)) xor Modifiers_Shift)) and (Boolean(GetAsyncKeyState(VK_LWIN)) and not (Boolean(GetAsyncKeyState(VK_LWIN)) xor Modifiers_Win)) and ((Boolean(GetAsyncKeyState(VK_CONTROL)) and Boolean(GetAsyncKeyState(VK_MENU))) and not ((Boolean(GetAsyncKeyState(VK_CONTROL)) and Boolean(GetAsyncKeyState(VK_MENU))) xor Modifiers_Alt)) then begin for i := 0 to 11 do if (ListActive[i]) and (Boolean(GetAsyncKeyState(VK_Fkey[i]))) then SendKeyString(ListCheat[i]); end; end else begin for i := 0 to 11 do if (ListActive[i]) and (Boolean(GetAsyncKeyState(VK_Fkey[i]))) then SendKeyString(ListCheat[i]); end; end; end; |
@F34r0fTh3D4rk: Dein Codestück müsste meines Erachtens eigentlich schon stimmen (Danke!!!)
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
Silas
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Di 17.04.07 18:54
*schieb* ( )
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
|