在 C# 中以编程方式从 Win XP 注销用户
如何从 C# 应用程序启动 Windows XP 用户注销? 我的应用程序的操作应该产生与在 XP 开始菜单中单击“注销”相同的结果 - 如果系统要求确认就可以了。
是否有 .Net 或非托管 API 可以实现此目的?
How do I initiate a Windows XP user Log Off from a C# app? The action of my app should produce the same result as clicking "Log Off" in XP start menu -- it's fine if the system asks for a confirmation.
Is there a .Net or an unmanaged API for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以 P/Invoke ExitWindowsEx:
把它们放在一起:
You could P/Invoke ExitWindowsEx:
Pulling it all together:
尝试使用常量“EWX_LOGOFF”或0调用“ExitWindowsEx”API函数。API指南告诉我第二个参数被忽略。 例如,
Try calling the "ExitWindowsEx" API function with the constant "EWX_LOGOFF" or 0. API Guide tells me that the second parameter is ignored. For instance,
为了完整起见,我发现的最简单的方法是调用 Shutdown.exe(Windows 附带)。
这是 Cerebrus 建议的答案,只是采用 C# 形式。
For completeness, the simplest way I found is to call Shutdown.exe (included with Windows).
This is the answer Cerebrus suggested, just in C# form.
塞雷布鲁斯是对的。 这里有更多信息:
.Net 中的锁定、注销、重新启动、关机、休眠、待机
Cerebrus is right. There's more info here:
Lock, Logoff, Reboot, Shutdown, Hibernate, Standby in .Net
由于某种原因,您不能将
-l
与-t
组合使用,因此它们不起作用。 唯一的方法似乎是前面提到的 P/Invoke。You can't combine
-l
with-t
for some reason so those will not work. The only approach appears to be the aforementioned P/Invoke.或者您可以直接致电:
如果您想要简单的方法。 我自己使用 ExitWindowsEx。
Or you can just call:
If you want the easy way out. I use the ExitWindowsEx myself.