TA的每日心情 | 慵懒 2023-12-8 15:56 |
---|
签到天数: 14 天 [LV.3]偶尔看看II
|
本帖最后由 445915388 于 2024-4-17 09:17 编辑
% Q4 t, l8 O- Q$ K& n% M$ l' J4 r5 k1 S% R5 ]4 D: T) s
#Persistent ; 持久性,确保脚本持续运行
. H" z7 L* q* ]4 h5 R8 S6 K* x [0 ?+ a- J8 C
; 设置定时器,每隔 200 毫秒检查一次当前活动窗口的属性6 O) F' Z3 A3 L" m y
SetTimer, WatchActiveWindow, 200; L1 O4 w* S, q; ~" N& `5 N. x) \
return0 B" A U D \9 |0 \$ @
4 I9 B' z7 J# [* X! k& H/ cWatchActiveWindow:
: S( v6 x# W" W8 [; 获取当前活动窗口的类名$ x' ~6 \' t B" v+ e
WinGetClass, WinClass, A
$ ^! R' j; _# r- R0 e j; 获取当前活动窗口的进程文件路径 @# d2 Z* U0 `; N7 ]
WinGet, WinProcess, ProcessName, A
) m, k+ ?6 q! ?- S/ ^4 I
% D: E" S; Z/ J( G+ r z' d6 r: e" g* d p
; 显示当前活动窗口的类名和进程文件路径到提示框中
+ \4 {! t9 V- h ^3 ?7 q& d;ToolTip, % "当前窗口的 ahk_class 属性:" WinClass "`n当前窗口的 ahk_exe 属性:" WinProcess1 [% R" T# N5 j+ q
) M5 |- s8 `5 w, Z; 检查当前活动窗口的 ahk_exe 属性 , k6 r3 W* B- Y( V+ w6 B
If (WinProcess = "allegro.exe") {
5 p: J; d. {2 q: l0 L ; 如果当前窗口的进程文件路径为 notepad.exe allegro.exe,则设置键盘布局为英语美式键盘00000409
6 k2 q6 h* Y5 [/ P winget,WinID,id,ahk_class %WinClass% 2 k3 i: O' e- {! d2 d2 O& I- P
SetLayout("00000409",WinID)
4 J. _. x) l7 A$ d K6 a, r3 } ; 显示当前活动窗口的类名和进程文件路径到提示框中
7 N% N) R- E1 }, G9 H& o; ToolTip, % "1ahk_exe:" WinProcess 9 f7 S+ P3 ]! E
} else {
; b2 O7 h+ s6 T/ ?9 ? ; 如果当前窗口的进程文件路径不是 notepad.exe,则设置键盘布局为中文美式键盘00000804
; J `/ [/ @; ^/ T winget,WinID,id,ahk_class %WinClass%
' K5 ^/ }% x; B% t0 | SetLayout("00000804",WinID) ; K& }/ a+ @! J$ q8 g
; 显示当前活动窗口的类名和进程文件路径到提示框中
; q' H; E2 M8 _, l; ToolTip, % "2ahk_exe:" WinProcess
/ S+ `5 I" b, T# u7 d}
2 [# X8 ]4 w- |' A0 x/ ~5 i7 E( \ s6 A3 c7 ^- p+ h, Y5 k$ G
Return
- W7 z4 E$ T* a# Z# A/ v( Z3 @! h0 G3 j& G- d
; 设置键盘布局的函数 G' x, U0 @8 v' o) v2 }: E
SetLayout(Layout,WinID){
" \! x% w3 |: K; q& K: W8 hDllCall("SendMessage", "UInt", WinID, "UInt", "80", "UInt", "1", "UInt", (DllCall("LoadKeyboardLayout", "Str", Layout, "UInt", "257"))) 9 U" S3 ^: ?; G1 B* y) H
}: Z B" b9 p8 C: c& L% P
|
|