2014-01-29 153 views
0

我想让一个AHK脚本在每次启动时打开另一个程序。问题是,如果其他程序已经打开,我不希望发生这种情况。在脚本启动时自动运行一个程序

这里的似乎什么被认为是工作,而不是(这部分被放置在我的脚本的最顶部)

SetTitleMatchMode, 2 
#IfWinNotExist, Microsoft Excel - myExcelFile.xls 
Run C:\myExcelFile.xls 
#IfWinExist 
;REST OF MY SCRIPT GOES HERE 

什么将发生的事情:

如果窗口“Microsoft Excel - myExcelFile.xls”未打开,请运行它。如果没有,不要。

什么发生:

无论是否打开,它会尝试再次运行它。

+1

我一般建议在提问SO之前先阅读[docs](http://ahkscript.org/docs/commands/)。在那里,你会阅读*#IfWinNotExist创建上下文敏感的热键和热点。*您正在寻找[IfWinNotExist](http://ahkscript.org/docs/commands/IfWinExist.htm),没有**#**在开始时,哪个*检查是否存在匹配窗口*。 – MCL

回答

0

所以是的,尽管我已经阅读过文档,但我明白#IfWinIfWin之间的区别在于它们是在特定的热键内还是外面使用。据我了解,“创建上下文相关的热键和热字串”,也包括“上下文敏感自动执行”(当代码不是热键内)

事实上我错了,解决的办法是删除#

+0

AHK中的指令(以'#'开头的东西)不能这样工作。当脚本启动并且其他执行流程不受它们影响时,对它们进行评估。如果您想了解更多关于'#If ...'的知识,请查看[此解释](http://stackoverflow.com/a/20538128/1282023)。 – MCL