Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择windows时会发生什么情况;“安装更新并关闭”;注销选项?_Windows_Shutdown - Fatal编程技术网

选择windows时会发生什么情况;“安装更新并关闭”;注销选项?

选择windows时会发生什么情况;“安装更新并关闭”;注销选项?,windows,shutdown,Windows,Shutdown,当更新可用且用户从Windows“开始”菜单中选择“关机”时,将出现一个对话框,其中包含关机、注销等菜单 出现的一个选项是 “安装更新并关闭” 问题是,当用户按下OK时,到底会发生什么 任务是否显示“资源管理器”对话框?(由于桌面被冻结,似乎无法通过进程监视器监视进行判断) 我假设(但不确定)这是Explorer,当用户按下OK时,它调用ExitWindowsEx 如果是这样的话,问题是当用户选择“安装更新并关闭”时会有什么不同?它会向ExitWindowsEx发送特殊标志还是调用另一个API?

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

出现的一个选项是

“安装更新并关闭”

问题是,当用户按下OK时,到底会发生什么

任务是否显示“资源管理器”对话框?(由于桌面被冻结,似乎无法通过进程监视器监视进行判断)

我假设(但不确定)这是Explorer,当用户按下OK时,它调用ExitWindowsEx

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

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


不过,您可以看看,它应该允许您以编程方式控制自动更新。

我只是想表达一些想法

在重新启动之前,它可能会在此注册表项中放入一个条目:HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce


还可以查看注册表项HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon中的值SHUTDONGFLAGS

为什么?这是一个关于win流程的编程问题,您的问题的目的不太清楚。您想实现类似的功能吗?更好地理解windows的工作原理?调整机制来做一些不同的事情?将您自己的操作添加到关机对话框?我已使用bp user32将WinDbg附加到Explorer.exe!ExitWindowsEx可以看到在cx和dx寄存器中传递的参数。我已经使用标准关机和“安装更新和关机”从“开始”菜单进行了测试,在每种情况下,为标志(关机+关机)传递的参数都是9。ExitWindowsEx调用中似乎没有任何区别。反汇编Explorer.exe(使用IDA PRO)显示它具有ExitWinDowsecx的导入,但没有交叉引用。我想了解调用的位置以及它周围的代码(可能在dll中?)