Hallo,
ja es wäre natürlich viel einfacher wenn AHK den String einfach als
Zeichenkette senden würde und nicht versuchen würde die Zeichen aus dem
Treiber durch Tastendrücke zusammen zu basteln. Aber wahrscheinlich gibt
es auch Fälle, wo es sinnvoll ist Tastendrücke zu imitieren und nicht
nur Text weiterzugeben.
Falls du den AHK soweit aufgepimpt bekommst, dass er diesen Bug nicht
mehr zeigt, wäre es nett wenn du uns daran teilhaben lässt.
Gruß Florian
P.S.: ToFu für die Liste.
Mirko Kunze schrieb am 24.05.2011 um 11:01 Uhr:
Hallo!
Danke für die Antwort!
Ich verstehe nicht, warum es das macht...
SendInput hat sowas garnicht nötig. Man kann schließlich auch Symbole
senden, die nicht auf dem Tastatur-Layout vorhanden sind...
Die Zwischenablage ist für mich immer ein verführerischer aber
unangenehmer Weg. Wenn da mal 10MB drinliegen, werden die immer hin und
her geschoben.
Ich werde versuchen, mir eine DLL zu schreiben, die einen string via
SendInput mit KEYEVENTF_UNICODE sendet. Ich denke, vorher schreibe ich
einen Bugreport. Vielleicht wird ja SendUniInput eingeführt oder so.
Vielen Dank nochmal!
Gruß, Mirko
Am 24.05.2011 00:35, schrieb Florian Janßen:
Hallo,
tut mir leid, dass es da Probleme gibt. Ich denke der Fehler liegt bei
AHK. Ich kann dir auch sagen warum die Zeichen so merkwürdig
ausgetauscht werden:
AHK sucht anscheindend in der gesamten Tastaturbelegung nach dem Zeichen
und sendet dann den Tastendruck zusammen mit dem entsprechenden
Modifiern.
Leider kennt AHK weder Mod3 noch Mod4 und sendet daher nur die erste
Ebene:
Aus deinem Beispiel im Forum
abcdefgh 12345678 !§$%/()=?{[]}\+*~#'|
wird
abcdefgh 1,345t78 k,§ömq9nrfsalceuq0pü.hgä
„abcdefgh 1“ liegen auf der 1. Ebene und wird richtig gesendet.
bei der „2“ findet AHK zuerst die „2“ auf der 4. Ebene von »,«
Da er AHK leider Mod4 nicht kennt und auch nicht weiter sucht sendet er
zwar die richtige Taste »,« leider ohne den notwendigen Modifier.
Bei der „6“ und allen anderen läuft es ebenso ab und der AHK findet
zuerst die Belegung auf »t« bzw. den anderen auftauchenden Tasten.
Ich kann dir leider nur einen Workaround anbieten:
Bisher hast du es einfach¹ schreiben können, dabei kommt mit kbdneo2
leider z.B. „1,345t7890“ raus.
¹ ::alt::1234567890
Wenn du nun die Struktur etwas umstellst und nach jedem HotString einen
Sprungbefehl einfügst und einen kleinen Umweg über die Zwischenablage
gehst, dann klappt es auch mit kbdneo:
::neu::
LangTxt:= 01234567890
GoTo WriteForMe
WriteForMe:
ClipBackup := ClipBoardAll
ClipBoard := LangTxt
ClipWait
Send ^v
Sleep, 50
ClipBoard := ClipBackup
return
Gruß Florian Janßen
Mirko Kunze schrieb am 23.05.2011 um 22:05 Uhr:
PS: Bitte lasst mich in der Antwort als CC: stehen, weil ich diese
Liste sonst nicht mitlese. Klickt also bitte auf »Allen antworten«
bzw. »Reply all«!
signature.asc
Description: OpenPGP digital signature