V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
YingJie
V2EX  ›  问与答

怎样劫持 windows 关机

  •  
  •   YingJie · 2018-02-03 22:23:17 +08:00 via Android · 3034 次点击
    这是一个创建于 2518 天前的主题,其中的信息可能已经有所发展或是发生改变。

    点击 windows 关机按钮,怎么做到禁止关机?有相关 API 吗?

    13 条回复    2018-02-05 18:56:49 +08:00
    xfspace
        1
    xfspace  
       2018-02-03 22:30:07 +08:00 via Android   ❤️ 1
    gpedit.msc
    用户配置->管理模板->开始菜单和任务栏,启用“删除并阻止访问关机、重新启动、睡眠和休眠命令”
    粗暴方法,计算机策略->Windows 设置->安全选项->本地策略->用户权利指派->关闭系统,去掉所有用户组
    YingJie
        2
    YingJie  
    OP
       2018-02-03 22:34:03 +08:00 via Android
    @xfspace 谢谢,想要实现的是有关机按钮,但是点击关机按钮让系统不会关机
    daliandefei
        3
    daliandefei  
       2018-02-03 22:58:56 +08:00 via Android
    bios 吧~我猜的
    LosLord
        4
    LosLord  
       2018-02-03 23:02:40 +08:00 via Android
    做个假 w 开始菜单
    murmur
        5
    murmur  
       2018-02-03 23:03:25 +08:00
    360 这种能够在 win10 关机后还出个全屏界面打补丁是怎么做到的
    xiaopc
        6
    xiaopc  
       2018-02-03 23:12:04 +08:00 via Android
    拦截 WM_QUERYENDSESSION 消息?
    NagisaFurukawa
        7
    NagisaFurukawa  
       2018-02-04 01:09:27 +08:00 via Android
    在内核 hook 相关函数
    64 位还要过 pg
    geelaw
        8
    geelaw  
       2018-02-04 01:25:55 +08:00   ❤️ 2
    用 Group Policy 删除一些用户 /组关机的权限即可,这 ultimately 阻止这些用户关机。

    如果你只是想要表面上不能关机,那么用 Group Policy 去掉所有可去掉的内置关机命令,但这无法阻止用户用 shutdown.exe 关机。

    用 WM_QUERYENDSESSION 的话用户可以选择强行关掉(相当于一个程序问你要不要保存已经修改的文件)。

    不太明白为什么要“有关机按钮但不能关机”——不能关机的时候关机按钮的作用是?不要问 X-Y 问题,请说原来的问题。
    fashioncj
        9
    fashioncj  
       2018-02-04 01:35:00 +08:00 via iPhone
    电源设置里面关机按钮的功能选项
    zingl
        10
    zingl  
       2018-02-04 13:50:59 +08:00
    虽然很多现在的电脑取消了复位按钮,长按按钮硬关机机制还是保留的吧
    zst
        11
    zst  
       2018-02-04 15:44:07 +08:00 via Android   ❤️ 1
    只是单纯有关机按钮而且拦截的话直接在 explorer 里面 hook 一下 exitwindows 什么的那个函数就可以╮(︶﹏︶)╭不过真想关机按电源键不就好了
    YingJie
        12
    YingJie  
    OP
       2018-02-04 16:52:23 +08:00 via Android
    谢谢
    binbex
        13
    binbex  
       2018-02-05 18:56:49 +08:00   ❤️ 1
    写个 Icon Handlers(explorer 启动的时候自动加载这些插件)的插件(demo https://github.com/apriorit/IconOverlayHandler),然后插件代码里面 Hook ExitWindowsEx 直接返回失败就可以了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3655 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:21 · PVG 12:21 · LAX 20:21 · JFK 23:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.