gpt4 book ai didi

c# - 是否可以使用 "pure".NET 和*不*使用 p/invoke 重新启动 PC?

转载 作者:太空狗 更新时间:2023-10-29 20:44:09 25 4
gpt4 key购买 nike

是否可以在不使用 pinvoke 的情况下使用 .NET 重新启动 PC?

我只是重复了标题,但我不太确定如何进一步阐述!

编辑:

我应该提到不想使用“shutdown -r”作为解决方案。

我真的很喜欢纯 .NET 方式,比如:

Environment.ShutDown();

换句话说,当新版本的 Windows 出现时,.NET 会维护一些东西。

编辑 2:

停止询问“p/invoke 有什么问题”。这类答案正是 SO 用户所喜欢的;所谓的“横向”回答问题的方法。然而,虽然 p/invoke 没有真正的问题而且我会很乐意使用它,但是问 .NET 是否有更正式的实现方法到底有什么问题?如果它在 .NET 中,那么操作系统之间的任何 API 更改都将(很可能)得到反射(reflect)。不管是什么原因,寻求最小化 DLL 导入使用不是犯罪,对吧?

我确定我是否在以下问题中包含了一些内容:

[DllImport("something32.dll")]
static extern int ClimbWall32Ex(IntPtr32 blah);

你可以这样做:

SomeNamespace.ClimbWall();

这里的每个人都会尖叫:“使用 SomeNamespace.ClimbWall(); 有什么问题??”

感叹。

最佳答案

不确定您为什么不只使用 P/Invoke,但另一种重新启动的方法是使用 System.Diagnostics.Process.Start结合shutdown命令。

例子:

System.Diagnostics.Process.Start("shutdown", "-r");


如果这也 Not Acceptable ,您可以考虑使用 WMI (参见 here 的示例,可能会根据您的目的进行修改)。

关于c# - 是否可以使用 "pure".NET 和*不*使用 p/invoke 重新启动 PC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1566084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com