变量不存储在引号AutoHotKey中?

时间:2013-07-22 22:02:56

标签: variables autohotkey

我有一个脚本,旨在询问电子邮件地址的主题,然后使用该主题发送电子邮件,整个脚本工作正常,除了某些原因,它发送变量名称(即%subject%)as在脚本的前面,与我设置的相反。我知道变量成功保存,因为我让它在用户输入后显示变量。当我收到电子邮件时,它会将%subject%作为主题名称,即使我将其设置为其他内容,我认为问题在于变量在脚本中的引号内

pmsg.Subject    := "%subject%"

主题必须在引号范围内才能使脚本正常工作。

2 个答案:

答案 0 :(得分:1)

也许你可以这样试试

pmsg.Subject := subject

或者如果您需要引号

尝试这样

pmsg.Subject := """ . subject . """

希望有所帮助

答案 1 :(得分:0)

啊,我也有这个问题。所以我创建了这个函数并将它保存在我的ahk库中:

;simply enclose the text in double-quotes
;if you set mode, the string is surrounded by doubled double quotes
enc(whattext, mode=0){
    global a_doublequote
    if(mode){
        quotedvar = "%a_doublequote%%whattext%%a_doublequote%"
    }else{
        quotedvar := a_doublequote . whattext . a_doublequote
    }
    return quotedvar
}

这是输出:

testphrase = george
msgbox % enc(testphrase)
;==> "george"
msgbox % enc(testphrase, true)
;==> ""george""

您使用:=作业执行的操作是创建值为%subject的字符串 pmsg.Subject:=“%subject%”

但是,如果您这样做,工作:

pmsg.Subject = "%subject%"

您可以看到,当您使用:=赋值时,变量的分配方式与其他编码语言(如Javascript)的分配方式相同。当您只使用=时,变量将以文字模式分配,但%除外,表示该模式下的变量赋值。