我正在尝试创建一个使用名称的脚本,并将其添加到预写的文本块中。

本质上,我想编写“emailDave”,并将名称Dave插入随后发送的文本字符串中。我只是不确定如何以这种方式修改hotstring。

我目前正在使用一种方法,该方法使用InputBox要求输入名称并将名称插入文本中。在台式机上可以正常工作,但是我使用的是Windows 8,出于某些可怕的原因,InputBox不会在应用内显示(即在台式机模式之外)。

我知道必须有一种方法来使用我输入的“email vs emailDave”文本来影响变量,而不是使用InputBox来跟踪我的工作。

就是说,如果任何人都知道在Windows 8应用程序(尤其是Mail)中显示InputBox的解决方法,那将无济于事。

当前的脚本可以在桌面上正常运行,但无法在应用内运行:

::email::
InputBox, thename, Enter the name, What is the name
SendInput Hi %thename%,{enter}{enter}Sample text.{enter}{enter}Thanks,{enter}Zach
Return

有什么办法可以使类似的工作吗?
::email{%thename%}::
SendInput Hi %thename%,{enter}{enter}Sample text.{enter}{enter}Thanks,{enter}Zach
Return

最佳答案

那他呢:

:?*:email::
Input, thename, v,{Enter}{Space}
If (thename = "")
{
    SendInput, {Bs}email `
    Return
}
StringLen,MyLen, thename
MyLen++
SendInput {BackSpace %MyLen%}Hi +%thename%,{Enter 2}Sample text.{Enter 2}Thanks,{Enter}Zach
Return

通过在名称字符串之前添加+,第一个字母将大写。

输入:“emailrobert {Enter}”或“emailRobert {Enter}”都给出:

罗伯特你好,

示例文本。

谢谢,
扎克

电子邮件{Space}会给电子邮件{Space}。

关于autohotkey - 如何在AutoHotKey的热字符串中声明变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15506914/

10-13 07:46