2017-04-11 68 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