Show
Ignore:
Timestamp:
07/24/08 00:56:34 (5 years ago)
Author:
dennis
Message:

Die SendUnicodeChar-Methode um den GDK-Workarround von Matthias Wächter ergänzt.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • windows/autohotkey/neo20.ahk

    r683 r687  
    156156 
    157157    CHANGEHISTORY: 
     158                  Revision 687 (von Dennis Heidsiek): 
     159                  - Die SendUnicodeChar-Methode um den GDK-Workarround von Matthias W�chter erg�nzt 
     160                  - (An/Aus) Icons an Favicon der neuen Homepage angepasst 
    158161                  Revision 645 (von Martin Roppelt): 
    159162                  - Ellipse zus�tzlich auf M3+x;  
     
    48254828SendUnicodeChar(charCode) 
    48264829{ 
    4827    VarSetCapacity(ki, 28 * 2, 0) 
    4828  
    4829    EncodeInteger(&ki + 0, 1) 
    4830    EncodeInteger(&ki + 6, charCode) 
    4831    EncodeInteger(&ki + 8, 4) 
    4832    EncodeInteger(&ki +28, 1) 
    4833    EncodeInteger(&ki +34, charCode) 
    4834    EncodeInteger(&ki +36, 4|2) 
    4835  
    4836    DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28) 
     4830   IfWinActive, ahk_class gdkWindowToplevel 
     4831   { 
     4832      StringLower, charCode, charCode 
     4833      send "^+u" . SubStr(charCode,3) . " " 
     4834   } else { 
     4835      VarSetCapacity(ki, 28 * 2, 0) 
     4836 
     4837      EncodeInteger(&ki + 0, 1) 
     4838      EncodeInteger(&ki + 6, charCode) 
     4839      EncodeInteger(&ki + 8, 4) 
     4840      EncodeInteger(&ki +28, 1) 
     4841      EncodeInteger(&ki +34, charCode) 
     4842      EncodeInteger(&ki +36, 4|2) 
     4843 
     4844      DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28) 
     4845   } 
    48374846} 
     4847/* 
     4848�ber den GDK-Workarround: 
     4849Dieser basiert auf http://www.autohotkey.com/forum/topic32947.html 
     4850 
     4851Der Aufruf von �SubStr(charCode,3)� geht davon aus, dass alle charCodes in Hex mit f�hrendem �0x� angegeben sind. Die abenteuerliche �^+u�-Konstruktion ben�tigt im �brigen den Hex-Wert in Kleinschrift, was derzeit nicht bei den Zeichendefinitionen umgesetzt ist, daher zentral und weniger fehlertr�chtig an dieser Stelle. Au�erdem ein abschlie�end gesendetes Space, sonst bleibt der �eingetippte� Unicode-Wert noch kurz sichtbar stehen, bevor er sich GTK-sei-dank in das gew�nschte Zeichen verwandelt. 
     4852*/ 
     4853 
    48384854 
    48394855BSSendUnicodeChar(charCode)