2016-06-05 11 views
1

Ich bin kein Experte in AHK, aber vor nicht allzu langer Zeit habe ich einen sehr einfachen Code, um das Verhalten des Apostroph Dead Key zu ändern. Was ich wollte, war, die Taste zu haben, um das Apostroph direkt zu drucken, wenn es allein gedrückt wird und seine normale tote Schlüsselfunktion hat, wenn es mit der rechten Ctrl gedrückt wird.
war mein Code alsAutoHotKey Dead Key Remap funktioniert nicht mehr

$'::send '{space} 
^'::send ' 

folgt plus einige andere Sachen, die ich nicht glaube, ist relevant. Es funktionierte für eine Weile gut, aber in letzter Zeit hörte es auf, ich vermute ein Update oder etwas ähnliches.

Jetzt verhält es sich anders als erwartet, eine einzelne allein druckt ein Apostroph ohne Leerzeichen nach ihm (alles gut bis jetzt), aber wenn ich es mit der STRG-Taste drücke und dann einen anderen Buchstaben druckt nur den Buchstaben von selbst . Wenn ich es zweimal mit Ctrl drücke, druckt es nach dem zweiten Drücken zwei Apostrophe und wenn ich es zum ersten Mal mit Ctrl drücke, gefolgt von nur dem Schlüssel selbst (ohne Ctrl), gibt es zwei Apostrophe gefolgt von einem Leerzeichen aus.

In der Praxis:

Ctrl+' followed by e = <e> with no apostrophe anywhere. 
Ctrl+' followed by r = <r> again with no apostrophe anywhere. 
Ctrl+' followed by Ctrl+' = <''> 
Ctrl+' followed by just ' alone = <'' > 

Das lässt mich sehr verwirrt, jemand irgendwelche Vorschläge hat es wie vor der Arbeit zu erhalten?
Vielen Dank im Voraus.

+0

Könnte es sein, dass Sie den Tastaturtyp von z geändert haben US-Amerikaner nach USA? Sie verhalten sich in Bezug auf tote Schlüssel anders. –

+0

Nein, es scheint international zu sein, auch weil, wenn ich AHK ausschalte, die toten Tasten normal funktionieren. – Skipjack3

Antwort

1

Skipjack3, Meine Schuld, ich habe die beiden Tastaturen in meiner vorherigen Antwort umgeschaltet. Wenn Sie US (anstelle von US International) wählen, gibt es keine toten Schlüssel, die vom Betriebssystem zurückgehalten werden, daher können diese Schlüssel von AHK verwendet werden, um eine Zeichenfolge auszulösen.

So wie ich auf meinem System vor Jahren tat (und auch heute noch ist mit) ist:

:?C*:``a::à 
:?C*:``i::ì 
:?C*:``e::è 
:?C*:``o::ò 
:?C*:``u::ù 
:?C*:``A::À 
:?C*:``I::Ì 
:?C*:``E::È 
:?C*:``O::Ò 
:?C*:``U::Ù 

:?C*:^ :: ; Turn ^{Space} into neutral ^, else^will be used in next vowel. 
    Send, {^}{Space}{BackSpace} 
Return 

:?C*:^a::â 
:?C*:^i::î 
:?C*:^e::ê 
:?C*:^o::ô 
:?C*:^u::û 
:?C*:^A::Â 
:?C*:^I::Î 
:?C*:^E::Ê 
:?C*:^O::Ô 
:?C*:^U::Û 


:?C*:`" :: ; Turn "{Space} into neutral ", else " will be used in next vowel. 
    Send, +{'}{Space}{BackSpace} 
Return 

:?C*:`"a::ä 
:?C*:`"i::ï 
:?C*:`"e::ë 
:?C*:`"o::ö 
:?C*:`"u::ü 
:?C*:`"A::Ä 
:?C*:`"I::Ï 
:?C*:`"E::Ë 
:?C*:`"O::Ö 
:?C*:`"U::Ü 

:?C*:' :: ; Turn '{Space} into neutral ', else ' will be used in next vowel. 
    Send, {'}{Space}{BackSpace} 
Return 

:?C*:`'a::á 
:?C*:`'i::í 
:?C*:`'e::é 
:?C*:`'o::ó 
:?C*:`'u::ú 
:?C*:`'A::Á 
:?C*:`'I::Í 
:?C*:`'E::É 
:?C*:`'O::Ó 
:?C*:`'U::Ú 

:?C*:`'c::ç 
:?C*:`'C::Ç 
:?C*:ss\::ß 
:?C*:ae\::æ 
:?C*:AE\::Æ 
:?C*:oe\::œ 
:?C*:OE\::Π
+0

Es ist nicht genau das, was ich mir erhofft habe, aber in diesem Fall wird es erledigt. Vielen Dank! – Skipjack3