【问题标题】:What exactly occurs when selecting windows "Install Updates and shut down" logoff option?选择 Windows“安装更新并关闭”注销选项时究竟会发生什么?
【发布时间】:2009-11-02 22:37:48
【问题描述】:

当更新可用并且用户从 Windows 开始菜单中选择关机时,会出现一个对话框,其中包含关机、注销等菜单。

出现的一个选项是

“安装更新并关闭”

问题是,当用户按下 OK 时究竟会发生什么?

任务是否显示对话框资源管理器? (似乎无法通过进程监视器监视来判断,因为桌面已冻结)

我假设(但不确定)这是资源管理器,当用户按下 OK 时,它会调用 ExitWindowsEx

如果是这样,问题是当用户选择“安装更新并关闭”时有什么不同,它是否会向 ExitWindowsEx 发送特殊标志或调用另一个 API,是否有任何方法可以窥探此功能?

【问题讨论】:

  • 为什么?这是一个关于 win 流程和 API 的编程问题
  • 你的问题的目的不是很清楚。你想实现类似的东西吗?更好地了解 Windows 的工作原理?调整机制做一些不同的事情?将您自己的操作添加到关闭对话框?

标签: windows shutdown


【解决方案1】:

当用户单击“确定”时,它会注销所有连接的用户,然后安装所有待处理的更新。更新安装过程不会在资源管理器中执行。我认为它在 WinLogon 下执行,可能通过Winlogon notification package。我不知道哪个系统调用会自动触发这种行为...

但是,您可以查看Windows Update Agent API,它应该允许您以编程方式控制自动更新。

【讨论】:

  • 我已经使用 bp user32!ExitWindowsEx 将 WinDbg 附加到 Explorer.exe,并且可以看到在 cx 和 dx 寄存器中传递的参数。我已经从开始菜单测试了标准关机以及“安装更新和关机”,在每种情况下,传递的参数都是 9 的标志(关机 + 关机),在 ExitWindowsEx 调用中似乎没有任何区别。反汇编 Explorer.exe(使用 IDA PRO)显示它具有 ExitWindowsEx 的导入但没有交叉引用。我想知道调用在哪里以及它周围的代码(也许在 dll 中?)
【解决方案2】:

我只是抛出一些想法..

也许它会在重新启动之前在此注册表项中添加一个条目:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

还要检查注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 中的值 ShutdownFlags

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 2012-04-07
    • 2015-10-23
    • 2011-01-18
    • 2019-07-29
    • 2014-08-20
    • 1970-01-01
    相关资源
    最近更新 更多