无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 600|回复: 15
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2025-4-9 15:34:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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
}


2#
发表于 2025-4-9 15:38:31 | 只看该作者
感谢分享
回复

使用道具 举报

3#
发表于 2025-4-9 16:02:07 | 只看该作者
谢谢分享
回复

使用道具 举报

4#
发表于 2025-4-9 17:06:09 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

5#
发表于 2025-4-9 17:42:25 | 只看该作者
感谢分享!
回复

使用道具 举报

6#
发表于 2025-4-9 17:58:16 | 只看该作者
謝謝大大分享,感恩喔~~! ^^ 辛苦了!
回复

使用道具 举报

7#
发表于 2025-4-9 17:59:04 | 只看该作者
感谢分享
回复

使用道具 举报

8#
发表于 2025-4-9 21:52:44 | 只看该作者
我记的有软件安装的时候就是这样,不知道怎么做到的

点评

那是NSIS的插件,其它的主要用于安装的脚本语言也能做到。  详情 回复 发表于 2025-4-9 23:13
回复

使用道具 举报

9#
发表于 2025-4-9 23:05:58 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

10#
发表于 2025-4-9 23:13:47 来自手机 | 只看该作者
gG654321 发表于 2025-4-9 21:52
我记的有软件安装的时候就是这样,不知道怎么做到的

那是NSIS的插件,其它的主要用于安装的脚本语言也能做到。
回复

使用道具 举报

11#
发表于 2025-4-10 03:05:35 | 只看该作者
感谢分享
回复

使用道具 举报

12#
发表于 2025-4-10 03:05:51 | 只看该作者
感谢分享
回复

使用道具 举报

13#
发表于 2025-4-10 08:39:07 | 只看该作者
感谢分享!
回复

使用道具 举报

14#
发表于 2025-4-10 08:45:38 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

15#
发表于 2025-4-10 08:46:30 | 只看该作者
感谢分享
回复

使用道具 举报

16#
发表于 2025-4-10 09:07:13 | 只看该作者
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-4-18 12:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表