无忧启动论坛

标题: 分享一个独占全屏(即kiosk模式)运行批处理的ahk脚本 [打印本页]

作者: hlowld    时间: 2025-4-9 15:34
标题: 分享一个独占全屏(即kiosk模式)运行批处理的ahk脚本
本帖最后由 hlowld 于 2025-4-17 18:17 编辑

当运行系统优化脚本时,可能希望进入独占全屏状态,不允许用户进行操作,执行完成后才进入桌面允许用户操作。
系统安装的OOBE阶段和安装部分系统补丁时,就是这种状态。

搜了一圈没找到简单的方案,在deepseek帮助下用ahk基本实现了目标,分享出来,供有类似小众需求的同学借鉴。
改进一下,屏蔽更多的热键(无法屏蔽Ctrl+Alt+Del),支持启用缩放的显示器

;接受1或者2个参数
;第1个参数为想要运行的批处理的路径
;第2个参数(若有)为显示的文本消息,如果无参数2,则显示 请稍候...
#NoEnv
#SingleInstance Force
#Persistent
#InstallKeybdHook
#InstallMouseHook
SetBatchLines, -1
SetWinDelay, 0
SetControlDelay, 0

argc = %0%
if (argc < 1) {  ; 如果没有参数
    ExitApp
}
batPath = %1% ; 获取第一个参数
if (!FileExist(batPath)) {
    ExitApp
}
msg := "请稍候..."
if (argc > 1) {
    msg = %2%
}


Gui, +AlwaysOnTop +ToolWindow -Caption +Owner
Gui, Color, 009BFF  ; 背景
textHeight := 100  ; 文本控件高度
dpi := A_ScreenDPI
hei := A_ScreenHeight * 96 // dpi
wid := A_ScreenWidth * 96 // dpi
yPos := (hei // 2) - (textHeight // 2)
Gui, Font, cWhite s42, Microsoft YaHei  ; 白色、42号、微软雅黑字体
Gui, Add, Text, xCenter y%yPos% w%wid% h%textHeight% Center vWaitText, %msg%
Gui, Show, x0 y0 w%wid% h%hei%, FullScreenLock  ; 显示全屏窗口
WinSet, Transparent, 255, FullScreenLock  ; 确保不透明


DllCall("ShowCursor", "int", 0) ; 隐藏鼠标光标
; # win ! alt ^ ctrl + shift
Hotkey, Esc, Block ; 屏蔽系统热键
Hotkey, LShift, Block
Hotkey, RShift, Block
Hotkey, LCtrl, Block
Hotkey, RCtrl, Block
Hotkey, LAlt, Block
Hotkey, RAlt, Block
Hotkey, LWin, Block
Hotkey, RWin, Block
Hotkey, ^Esc, Block
Hotkey, ^+Esc, Block
Hotkey, !Tab, Block
Hotkey, #Tab, Block
Hotkey, !F4, Block
RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Policies\System, DisableLockWorkstation, 1
RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Policies\System, DisableTaskMgr, 1


Runwait, "%batPath%", , Hide ;运行批处理后退出
exitkoisk()


Esc::exitkoisk() ; 按Esc键退出


Block:
Return


exitkoisk(){
    DllCall("ShowCursor", "int", 1)
    Hotkey, Esc, Off ; 恢复系统热键
    Hotkey, LShift, Off
    Hotkey, RShift, Off
    Hotkey, LCtrl, Off
    Hotkey, RCtrl, Off
    Hotkey, LAlt, Off
    Hotkey, RAlt, Off
    Hotkey, LWin, Off
    Hotkey, RWin, Off
    Hotkey, ^Esc, Off
    Hotkey, ^+Esc, Off
    Hotkey, !Tab, Off
    Hotkey, #Tab, Off
    Hotkey, !F4, Off
    RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Policies\System, DisableLockWorkstation, 0
    RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Policies\System, DisableTaskMgr, 0
    Gui, Destroy
    ExitApp
}



作者: 小灰兔    时间: 2025-4-9 15:38
感谢分享
作者: yc2428    时间: 2025-4-9 16:02
谢谢分享
作者: wang1126    时间: 2025-4-9 17:06
谢谢楼主分享
作者: it323    时间: 2025-4-9 17:42
感谢分享!
作者: hmaaaa    时间: 2025-4-9 17:58
謝謝大大分享,感恩喔~~! ^^ 辛苦了!
作者: wn168cn@163.com    时间: 2025-4-9 17:59
感谢分享
作者: gG654321    时间: 2025-4-9 21:52
我记的有软件安装的时候就是这样,不知道怎么做到的
作者: qqwwaa    时间: 2025-4-9 23:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: nttwqz    时间: 2025-4-9 23:13
gG654321 发表于 2025-4-9 21:52
我记的有软件安装的时候就是这样,不知道怎么做到的

那是NSIS的插件,其它的主要用于安装的脚本语言也能做到。
作者: 沙漠laladui    时间: 2025-4-10 03:05
感谢分享
作者: 沙漠laladui    时间: 2025-4-10 03:05
感谢分享
作者: zzq1392281    时间: 2025-4-10 08:39
感谢分享!
作者: 轻轻河边草    时间: 2025-4-10 08:45
谢谢楼主分享
作者: yzw92    时间: 2025-4-10 08:46
感谢分享
作者: xuxiaojie120    时间: 2025-4-10 09:07
感谢分享
作者: 86933924    时间: 7 天前
感谢分享
作者: xxzzccc    时间: 6 天前
感谢分享
作者: wwold    时间: 6 天前

感谢分享




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3