2017-04-11 120 views
1

我新手在AutoHotkey的薩姆chacters,我試圖通過Chr使用SendInput輸入3個字符這樣如何輸入通過CHR()

^Numpad1:: 
    SendInput %Chr(44) %Chr(8451) %Chr(12290) 
Return 

我不知道該怎麼執行它,我不想使用三個SendInput來做到這一點,我的意思是ChrSendInput可以是一條線。這可能嗎?

+0

你需要堅持'CHR()'?難道你不想直接使用這些字符?只是問問。直接使用它們似乎對我來說更實用。我保持utf-8格式的AHK文件,所以文字沒有問題。在你的情況下:'SendInput D℃.' – miroxlav

+0

@miroxlav是的,我堅持使用'Chr()',因爲我在中文鍵盤上,有時候我很難正確輸入英文字符,但[this post](http: /stackoverflow.com/questions/43331263/why-my-stringreplace-dont-work)給我希望解決這個問題。請幫助。我遭受這很長時間。 – yode

回答

1

使用expression mode

^Numpad1:: 
    SendInput % Chr(44) Chr(8451) Chr(12290) 
Return 

%後跟一個space導致參數被當做表達式

+0

好的解決方案。它看起來更簡潔。此外,* Autohotkey *具有函數* map *函數,如* Python *?我的意思是有時我需要20個chacters,所以我必須使用20'Chr'?當然,我已經將他們的ASCII碼 – yode

+0

放入[數組](https://autohotkey.com/docs/misc/Arrays.htm)(例如'A:= [1,2,3,4]'),並且然後通過在A {s。= chr(c)}'中對c進行迭代來構建一個字符串 –

1

編輯:我找到了一種方法如何做到這一點的單行線,不變量或Return

^Numpad1::SendInput % Chr(44)Chr(8451)Chr(12290) 

記住,你仍然可以避開大部分的代碼並立即看到您定義的含義。使用Character Map應用程序直接獲取字符,然後將它們放入文件中。數字很​​少比直接書寫的符號有利。只是,(逗號)需要逃到{,}

`Numpad1::SendInput {,}℃。 
+0

我不得不說,你救了我差不多..我可以解決[這個問題](http://stackoverflow.com/questions/42533851/how-to-input-english-character-in-non-english-keyboard)現在。 – yode

+0

此外,* Autohotkey *具有函數* map *函數就像* Python *?我的意思是有時我需要20個chacters,所以我不得不使用20'Chr'?當然,我已經有了他們的ASCII – yode

+0

樂趣,我希望更新版本。感謝您的幫助,也許我應該給一些開放時間,然後接受答案。 – yode