質問: アクセント付き文字をウィンドウに入力する方法 私はあなたがaltを保持し、アクセント文字のような文字を得るためにいくつかの不可解な数値コードをタイプアウトすることができると聞いた。これを macの方法 のようにもっと行う方法はありますか?
回答: 私はこのフォーラムからこの素晴らしいautohotkeyスクリプトを使っています http://www.autohotkey.com/forum/topic570.html 「jak」。このスクリプトを起動時に実行するように設定するだけです。これを使えば、こんなことができます。 windows + `そしてeを取得するには windows +:それからe ...等;==================================== ;accents "top part" - this top part needs to be located at the top part (the 'run' part) of the ahk file ;==================================== ; ;============ ----- send unicode character - universal ms word-style accents in any application ; sendinput:=dllcall("getprocaddress",uint,dllcall("getmodulehandle",str,"user32"),str,"sendinput") varsetcapacity(sendubuf, 56, 0) ; init sendu data strucure numput(1, sendubuf, 0, "char") numput(1, sendubuf,28, "char") numput(0x40000, sendubuf, 6) numput(0x60000, sendubuf,34) ;----------------- ; ;==================================== ;accents "hotkey part" - (this part can be located anywhere) ;==================================== ; sendu(uc) { ; send unicode char, pressed modifier keys stay active! global ; sendubuf, sendinput numput(uc, sendubuf, 6, "short") numput(uc, sendubuf,34, "short") return dllcall(sendinput, uint,2, uint,&sendubuf, int,28) } a:: if accent=grave ; sendinput,à { sendu(0x00e0) } else if accent=acute { ; send,á sendu(0x00e1) } else if accent=circumflex ; sendinput,â { sendu(0x00e2) } else if accent=tilda ; sendinput,ã { sendu(0x00e3) } else if accent=umlaut ; sendinput,ä { sendu(0x00e4) } gosub,turnaccentsoff return c:: if accent=cedilla ; sendinput,ç { sendu(0x00e7) } gosub,turnaccentsoff return e:: if accent=grave ; sendinput,è { sendu(0x00e8) } else if accent=acute ; sendinput,é { sendu(0x00e9) } else if accent=circumflex ; sendinput,ê { sendu(0x00ea) } else if accent=umlaut ; sendinput,ë { sendu(0x00eb) } gosub,turnaccentsoff return i:: if accent=grave ; sendinput,ì { sendu(0x00ec) } else if accent=acute ; sendinput,í { sendu(0x00ed) } else if accent=circumflex ; sendinput,î { sendu(0x00ee) } else if accent=umlaut ; sendinput,ï { sendu(0x00ef) } gosub,turnaccentsoff return n:: if accent=tilda ; sendinput,ñ { sendu(0x00f1) } gosub,turnaccentsoff return o:: if accent=grave ; sendinput,ò { sendu(0x00f2) } else if accent=acute ; sendinput,ó { sendu(0x00f3) } else if accent=circumflex ; sendinput,ô { sendu(0x00f4) } else if accent=tilda ; sendinput,õ { sendu(0x00f5) } else if accent=umlaut ; sendinput,ö { sendu(0x00f6) } gosub,turnaccentsoff return u:: if accent=grave ; sendinput,ù { sendu(0x00f9) } else if accent=acute ; sendinput,ú { sendu(0x00fa) } else if accent=circumflex ; sendinput,û { sendu(0x00fb) } else if accent=umlaut ; sendinput,ü { sendu(0x00fc) } gosub,turnaccentsoff return +a:: if accent=grave ; sendinput,à { sendu(0x00c0) } else if accent=acute ; sendinput,á { sendu(0x00c1) } else if accent=circumflex ; sendinput,â { sendu(0x00c2) } else if accent=tilda ; sendinput,ã { sendu(0x00c3) } else if accent=umlaut ; sendinput,ä { sendu(0x00c4) } gosub,turnaccentsoff return +c:: if accent=cedilla ; sendinput,ç { sendu(0x00c7) } gosub,turnaccentsoff return +e:: if accent=grave ; sendinput,è { sendu(0x00c8) } else if accent=acute ; sendinput,é { sendu(0x00c9) } else if accent=circumflex ; sendinput,ê { sendu(0x00ca) } else if accent=umlaut ; sendinput,ë { sendu(0x00cb) } gosub,turnaccentsoff return +i:: if accent=acute ; sendinput,í { sendu(0x00cc) } else if accent=grave ; sendinput,ì { sendu(0x00cd) } else if accent=circumflex ; sendinput,î { sendu(0x00ce) } else if accent=umlaut ; sendinput,ï { sendu(0x00cf) } gosub,turnaccentsoff return +n:: if accent=tilda ; sendinput,ñ { sendu(0x00d1) } gosub,turnaccentsoff return +o:: if accent=grave ; sendinput,ò { sendu(0x00d2) } else if accent=acute ; sendinput,ó { sendu(0x00d3) } else if accent=circumflex ; sendinput,ô { sendu(0x00d4) } else if accent=tilda ; sendinput,õ { sendu(0x00d5) } else if accent=umlaut ; sendinput,ö { sendu(0x00d6) } gosub,turnaccentsoff return +u:: if accent=grave ; sendinput,ù { sendu(0x00d9) } else if accent=acute ; sendinput,ú { sendu(0x00da) } else if accent=circumflex ; sendinput,û { sendu(0x00db) } else if accent=umlaut ; sendinput,ü { sendu(0x00dc) } gosub,turnaccentsoff return turnaccentsoff: hotkey,a,off hotkey,e,off hotkey,i,off hotkey,o,off hotkey,u,off hotkey,c,off hotkey,n,off hotkey,+a,off hotkey,+e,off hotkey,+i,off hotkey,+o,off hotkey,+u,off hotkey,+c,off hotkey,+n,off return turnaccentson: hotkey,a,on hotkey,e,on hotkey,i,on hotkey,o,on hotkey,u,on hotkey,c,on hotkey,n,on hotkey,+a,on hotkey,+e,on hotkey,+i,on hotkey,+o,on hotkey,+u,on hotkey,+c,on hotkey,+n,on return <#':: keywait, lwin accent=acute gosub,turnaccentson return <#`:: keywait, lwin accent=grave gosub,turnaccentson return <#6:: <#+6:: keywait, lwin accent=circumflex gosub,turnaccentson return <#;:: <#+;:: keywait, lwin accent=umlaut gosub,turnaccentson return <#,:: keywait, lwin accent=cedilla gosub,turnaccentson return <#+`:: keywait, lwin accent=tilda gosub,turnaccentson return gosub,turnaccentsoff 私がここで試したことのないもっとmac的なアプローチもあります。 http://www.autohotkey.com/forum/topic30440.html 。