是否可以在不使用pinvoke的情况下使用.NET重启PC?
我有点重复这个标题,但我不太清楚如何进一步阐述!
编辑:
我应该提到不要使用“shutdown -r”作为解决方案.
我真的采用纯粹的.NET方式,例如:
Environment.ShutDown();
换句话说,随着Windows的新版本而出现的东西出现了.
编辑2:
请停止询问“p / invoke有什么问题”.这些答案正是SO用户似乎喜欢的;回答问题的假设“横向”方法.然而,尽管p / invoke没有真正的问题,我很乐意使用它,但是问.NET是否有更正式的实现方法呢?如果它在.NET中,那么操作系统之间的任何API更改都将(很可能)得到反映.无论是什么原因,寻求最小化DLL导入使用是不是犯罪呢?
我确定我是否在一个问题中包含了一些内容:
[DllImport("something32.dll")] static extern int ClimbWall32Ex(IntPtr32 blah);
你可以这样做:
SomeNamespace.ClimbWall();
这里的每个人都会尖叫:“使用SomeNamespace.ClimbWall()有什么问题; ??”
叹.
解决方法
您需要调用ExitWindowsEx,它只能通过DllImport获得