在AutoHotKey中使用IfWinActive关键字

查克拉法蒂

有关使用AutoHotKey的问题特定于名为TeXnicCenter的Windows LaTeX编辑器

因此,我试图编写我的第一个AutoHotKey(AHK)脚本,并且希望快捷方式仅在TeXniceCenter窗口处于活动状态时才可用。AHK提供了IfWinActive应对这些情况关键字,但是,在使用此关键字时遇到了一些困难。

这是我写的草稿文件:

SetTitleMatchMode, 2
SetTitleMatchMode, Slow

#IfWinActive, .* TeXnicCenter *.
!t::
Send \texttt{{}{}}
return

#IfWinActive, .* TeXnicCenter *.行无法在窗口名称中的某处找到模式“ TeXnicCenter”。

我还有其他选择

  • 我主要在项目中使用TeXnicCenter,因此窗口名称显示为“ projectname -TeXnicCenter”,因此将其用作的参数是不可行的IfWinActive请注意,如果使用独立文档,则窗口名称为TeXnicCenter。

  • AHK提供的另一种选择是,您可以使用名为the ahk_classof process的流程,该流程通常很直观(并且可以从名为Windows Spy的便捷捆绑的AHK工具中获得)-例如,对于Chrome,为Chrome_WidgetWin_1

但是,对于TeXnicCenter,它显示了奇怪的签名-例如,对于我的一个项目,它是Afx:000000013F370000:8:0000000000010005:0000000000000000:0000000012B80087,而且不仅如此,它在TeXnicCenter窗口中不是恒定的,而对于其他进程则通常是恒定的

我很茫然-有没有人有使用TeXnicCenter设置AHK并使用IfWinActive关键字的经验?我感觉这可能会更好地针对TeXnicCenter的开发人员,但这是希望。

新技术

您曾经SetTitleMatchMode将标题匹配模式设置为,2这意味着窗口的标题可以在其中的任何地方包含WinTitle进行匹配。因此,它正在尝试.* TeXnicCenter *.在标题栏中查找您应该删除.**.(除非标题栏实际上包含那些-据我所知,它没有)。您可以将标题匹配模式设置为,RegEx而不希望使用regex语法(即使这样,*.还是不正确,应该为.*)。

至于类,我在GraphEdit上遇到了同样的问题,对于主窗口,它具有Afx:1000000:b:10011:6:1070780与相同模式相同但每个实例编号不同的窗口类我通过使用正则表达式模式(SetTitleMatchMode, RegEx)和类似这样的模式来解决它^Afx:.+:.:.+:.:.+$—您可以指定冒号之间的确切数字位数,但不太可能需要

(我最终通过使用简化了整个过程。)

因此,在您的情况下,您将使用以下之一:

SetTitleMatchMode, 2
SetTitleMatchMode, Slow

#IfWinActive, TeXnicCenter
!t::
Send \texttt{{}{}}
return



SetTitleMatchMode, regex
SetTitleMatchMode, Slow

#IfWinActive, .* TeXnicCenter *.
!t::
Send \texttt{{}{}}
return

这是我的建议:

SetTitleMatchMode, regex
SetTitleMatchMode, Slow
GroupAdd, TXC, ^.*TeXnicCenter.*$ ahk_class ^Afx:.+:.:.+:.+:.*$

#IfWinExist, ahk_group TXC
  !t::
    Send \texttt{{}{}}
  return
#IfWinExist

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在DLL中使用默认关键字

来自分类Dev

javascript中使用IIFE的“ this”关键字

来自分类Dev

在JavaScript对象中使用'this'关键字

来自分类Dev

在MySQL中使用REFERENCES关键字

来自分类Dev

在Python中使用global关键字

来自分类Dev

在C ++中使用C关键字

来自分类Dev

在Android中使用超级关键字

来自分类Dev

在MySQL中使用REFERENCES关键字

来自分类Dev

在Retrolambda中使用'this'关键字

来自分类Dev

在JavaScript对象中使用'this'关键字

来自分类Dev

在JavaScript中使用'this'关键字

来自分类Dev

在方法中使用“self”关键字

来自分类Dev

在 Rebol 中使用关键字与在红色中使用关键字

来自分类Dev

在Dapper中使用Async Await关键字

来自分类Dev

在Ruby块中使用return关键字

来自分类Dev

如何在Scala中使用“元组”关键字?

来自分类Dev

在F#中使用关键字作为成员名称

来自分类Dev

为什么要在Java中使用`transient`关键字?

来自分类Dev

Cython-在for循环中使用“ from”关键字

来自分类Dev

在C#中使用`dynamic`关键字无法编译

来自分类Dev

在类中使用关键字this与多个构造函数

来自分类Dev

在peewee中使用python关键字作为模型字段

来自分类Dev

在Java中使用static关键字创建对象

来自分类Dev

在外部JS文件中使用$或JQuery关键字

来自分类Dev

如何在模板类中使用friend关键字

来自分类Dev

在外部JS文件中使用$或JQuery关键字

来自分类Dev

如何在Haskell中使用“ aux”关键字

来自分类Dev

在嵌套的静态类java中使用“ this”关键字

来自分类Dev

在.Net 3.5中使用动态关键字