有没有办法让SplashImage文本点击?

时间:2015-07-04 05:51:48

标签: autohotkey

Console:
Jul 04, 2015 1:46:00 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.0.0.CR1}
Jul 04, 2015 1:46:00 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Jul 04, 2015 1:46:00 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Jul 04, 2015 1:46:01 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
Jul 04, 2015 1:46:01 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
Jul 04, 2015 1:46:01 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/firstjdbcdata]
Jul 04, 2015 1:46:01 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=root, password=****}
Jul 04, 2015 1:46:01 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
Jul 04, 2015 1:46:01 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 1 (min=1)
Jul 04, 2015 1:46:02 AM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
Jul 04, 2015 1:46:03 AM org.hibernate.search.engine.Version <clinit>
INFO: HSEARCH000034: Hibernate Search 5.4.0.Alpha1
Jul 04, 2015 1:46:03 AM org.hibernate.tool.hbm2ddl.SchemaExport execute
INFO: HHH000227: Running hbm2ddl schema export
Hibernate: drop table if exists UserDetails
Hibernate: create table UserDetails (userId integer not null, userName varchar(255), primary key (userId))
Jul 04, 2015 1:46:04 AM org.hibernate.tool.hbm2ddl.SchemaExport execute
INFO: HHH000230: Schema export complete
Jul 04, 2015 1:46:04 AM org.hibernate.search.engine.impl.ConfigContext getLuceneMatchVersion
WARN: HSEARCH000075: Configuration setting hibernate.search.lucene_version was not specified: using LUCENE_CURRENT.
Hibernate: insert into UserDetails (userName, userId) values (?, ?)

这会在屏幕中间显示白色文字。它对于指示东西非常有用,而不像MsgBox那样具有侵入性。但是,可以单击该文本,从而阻止单击。

我到目前为止所发现的是http://www.autohotkey.com/board/topic/53209-make-window-transparent-and-click-through-it/,但我并不完全理解它,并且我尝试使其在文本上工作似乎不起作用。通常,文本似乎没有ahk_id。通过添加&#34; M2&#34;参数SplashImage,我可以从文本中获得更多信息。最好的常量似乎是它的ahk_class是&#34; AutoHotKey2&#34;。所以,我通过用ahk_class替换ahk_id修改了Wicked的脚本:

SplashImageText:
{       
    SplashImage,    ,   B FS%SplashImageTextSize% W1920 CWblack CTwhite,    %SplashImageText%
    WinSet, TransColor, Black   150,    [script name].ahk
    SetTimer,   KillSplashImage,    -%SplashImageTextTime%
}
Return

我在子程序中将/* WinSet_Click_Through - Makes a window unclickable. I - class of the window to set as unclickable. T - The transparency to set the window. Leaving it blank will set it to 254. It can also be set On or Off. Any numbers lower then 0 or greater then 254 will simply be changed to 254. If the window class doesn't exist, it returns 0. */ WinSet_Click_Through(I, T="254") { IfWinExist, % "ahk_class " I { If (T == "Off") { WinSet, AlwaysOnTop, Off, % "ahk_class " I WinSet, Transparent, Off, % "ahk_class " I WinSet, ExStyle, -0x20, % "ahk_class " I } Else { WinSet, AlwaysOnTop, On, % "ahk_class " I If(T < 0 || T > 254 || T == "On") T := 254 WinSet, Transparent, % T, % "ahk_class " I WinSet, ExStyle, +0x20, % "ahk_class " I } } Else Return 0 } 放在SplashImage之后,但它不会影响文本。

更新:好的,所以我通过使用ahk_exe和目标AutoHotKey.exe本身以一种方式工作,但我希望只针对文本,而不是任何AutoHotKey.exe。我想知道为什么ahk_class不起作用。

1 个答案:

答案 0 :(得分:1)

您可以使用WinTitle,这是默认的匹配行为。删除脚本中的"ahk_class "

/*
WinSet_Click_Through - Makes a window unclickable.

I - title of the window to set as unclickable.

T - The transparency to set the window. Leaving it blank will set it to 254. It can also be set On or Off. Any numbers lower then 0 or greater then 254 will simply be changed to 254.

If the window title doesn't exist, it returns 0.
*/

WinSet_Click_Through(I, T="254") {
    IfWinExist, % I
    {
        If (T == "Off")
        {
            WinSet, AlwaysOnTop, Off, % I
            WinSet, Transparent, Off, % I
            WinSet, ExStyle, -0x20, % I
        }
        Else
        {
            WinSet, AlwaysOnTop, On, % I
            If(T < 0 || T > 254 || T == "On")
                T := 254
            WinSet, Transparent, % T, % I
            WinSet, ExStyle, +0x20, % I
        }
    }
    Else
        Return 0
}

我希望这种定位足够具体。