Hallo!
Das Programm ist dein Programm?
Wenn ja sollte doch ein Ersetzen der Tasten reichen? (OnKeyDown)
Wenn nicht helfen dir evtl.
Hooks zum Abfangen der Tasten.
Delphi-Quellcode:
type
...
procedure WMHotKey (var Msg : TWMHotKey); message WM_HOTKEY;
private
KeysPressed : string;
MeineZeichen : TStrings;
ZeichenErsetzenDruch : TStrings;
...
...
// Ins FormCreate für z.B. Taste L:
RegisterHotKey (Form1.Handle, ord ('L'), MOD_CONTROL, ord ('L'));
KeysPressed := '';
MeineZeichen := TStringList.Create;
ZeichenErsetzenDurch := TStringList.Create;
// Hier nun in MeineZeichen alle Zeichenketten rein die ersetzt werden sollen und in
// ZeichenErsetzenDurch das rein durch was die Zeichenkette ersetzt werden soll, z.B.:
MeineZeichen.Add ('L');
ZeichenErsetzenDurch.Add ('lol');
...
procedure TForm1.WMHotKey (var Msg : TWMHotKey);
...
begin
KeysPressed := KeysPressed + Msg.HotKey;
// Schleife... und
if (pos (KeysPressed, MeineZeichen.Strings[i]) = 1) then
begin
if (Length (KeysPressed) = MeineZeichen.Strings[i].Count) then
begin
// Taste ersetzen
end;
end;
end;
// Im FormClose:
UnRegisterHotKey (Form1.Handle, ord ('L'));
Das auf die schnelle daher könnte es Fehler enthalten und es geht zudem sicher noch origineller zu Lösen.
Aber das soll auch nur ein Beispiel sein

Für Taste ersetzen könnte Msg.HotKey := NeueTaste(und weitere) funktionieren.
Bis dahin,
Gruß, Robert