V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
YingJie
V2EX  ›  问与答

怎样劫持 windows 关机

  •  
  •   YingJie · Feb 3, 2018 via Android · 3667 views
    This topic created in 3013 days ago, the information mentioned may be changed or developed.

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

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

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

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

    不太明白为什么要“有关机按钮但不能关机”——不能关机的时候关机按钮的作用是?不要问 X-Y 问题,请说原来的问题。
    fashioncj
        9
    fashioncj  
       Feb 4, 2018 via iPhone
    电源设置里面关机按钮的功能选项
    zingl
        10
    zingl  
       Feb 4, 2018
    虽然很多现在的电脑取消了复位按钮,长按按钮硬关机机制还是保留的吧
    zst
        11
    zst  
       Feb 4, 2018 via Android   ❤️ 1
    只是单纯有关机按钮而且拦截的话直接在 explorer 里面 hook 一下 exitwindows 什么的那个函数就可以╮(︶﹏︶)╭不过真想关机按电源键不就好了
    YingJie
        12
    YingJie  
    OP
       Feb 4, 2018 via Android
    谢谢
    binbex
        13
    binbex  
       Feb 5, 2018   ❤️ 1
    写个 Icon Handlers(explorer 启动的时候自动加载这些插件)的插件(demo https://github.com/apriorit/IconOverlayHandler),然后插件代码里面 Hook ExitWindowsEx 直接返回失败就可以了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   790 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 20:19 · PVG 04:19 · LAX 13:19 · JFK 16:19
    ♥ Do have faith in what you're doing.