2013-07-22 66 views
1

我有一个脚本,旨在询问电子邮件地址的主题,然后发送一封电子邮件使用该主题,整个脚本工作正常,除了某些原因,它发送变量名称(即%主题%)相反到我在之前的脚本中设定的内容。我知道变量成功保存,因为我在用户输入后显示变量。当我收到的电子邮件,它给人%受%作为主题名称,即使我把它设置为别的东西,我觉得这个问题在脚本变量不存储在引号AutoHotKey中?

pmsg.Subject := "%subject%" 

个体有谎言引号内的变量存在之内在脚本的引号内工作。

回答

1

也许你可以尝试这样的

pmsg.Subject := subject 

,或者如果您需要报价

尝试这样

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

希望它可以帮助

+0

哇,顶级的想法,非常感谢! – user2422348

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:= “%受%”

然而,工作,如果你是这样的:

pmsg.Subject = "%subject%" 

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