这里涉及了ahk的gui的操作、GuiControl的操作、自定义变量的设置、消息映射代码,定时器的使用以及自定义函数的使用。
重点:gui的add时采用"v名字"的方式拿到控件的变量。消息onMessage使用时消息代码要自己查,然后后面跟的是下面的方法名。setTimer后面跟的是类似goto语句的东西,不像一般方法那样调用。还有上面设置的gui属性是下面添加gui时用的。
用户操作:点击ahk文件就能打开时间界面。界面会一直刷新,可能时间有偏差,不过都是获取的系统时间,一般使用是没有问题的。关闭界面只需要随便一个键盘键或鼠标左键。
代码如下:
;显示时间
#Persistent
#SingleInstance Force
timestr = %A_YYYY%-%A_MM%-%A_DD% %A_Hour%:%A_Min%:%A_Sec%
Gui_color1= black
font_color1=Cwhite
Gui, -SysMenu -Caption +ToolWindow +AlwaysOnTop +E0x20
;先控制属性,下面依据这些属性加窗口
Gui, Color, %Gui_color1%
gui, font,s20 %font_color1%, Arial
;;注意"vMyText" 定义了该控件的变量,该变量"MyText"将是全局变量(或是引用类型变量,或一个静态变量)。
Gui,add,Text,vMyText, %timestr%
Gui,show,AutoSize Center
;设置刷新时间,重复地刷新。
SetTimer, UpdateClock, 1000
;键盘点击事件
OnMessage(0x100, "ON_WM_KEYDOWN")
OnMessage(0x202, "ON_WM_LBUTTONUP")
return
UpdateClock:
{
timestr2 = %A_YYYY%-%A_MM%-%A_DD% %A_Hour%:%A_Min%:%A_Sec%
GuiControl,,MyText,%timestr2%
return
}
ON_WM_KEYUP()
{
exitapp
return ;退出
}
ON_WM_KEYDown()
{
;keydown 再keyup防止开始就有keyup事件响应
OnMessage(0x101, "ON_WM_KEYUP")
return ;退出
}
ON_WM_LBUTTONUP()
{
exitapp
return ;退出
}