我在一个旧线程上找到了这个代码来关闭本地机器:
using System.Management;
void Shutdown()
{
ManagementBaseObject mboShutdown = null;
ManagementClass mcWin32 = new ManagementClass("Win32_OperatingSystem");
mcWin32.Get();
// You can't shutdown without security privileges
mcWin32.Scope.Options.EnablePrivileges = true;
ManagementBaseObject mboShutdownParams =
mcWin32.GetMethodParameters("Win32Shutdown");
// Flag 1 means we want to shut down the system. Use "2" to reboot.
mboShutdownParams["Flags"] = "1";
mboShutdownParams["Reserved"] = "0";
foreach (ManagementObject manObj in mcWin32.GetInstances())
{
mboShutdown = manObj.InvokeMethod("Win32Shutdown",
mboShutdownParams, null);
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用类似的WMI方法重启标志"2"远程机器,我只有机器名,而不是IPaddress.
编辑:我目前有:
SearchResultCollection allMachinesCollected = machineSearch.FindAll();
Methods myMethods = new Methods();
string pcName;
ArrayList allComputers = …Run Code Online (Sandbox Code Playgroud) 在POSIX OS下,有一个信号API,它允许发送一个信号进行处理以使用kill来关闭它,你可以用sigaction捕获它并做你需要的事情;
但是,Win32不是POSIX系统,因此:
我不是在谈论GUI,我在谈论应该很好地关闭的TCP/IP服务器.这不像Windows服务那样运行.
我想在关闭钩子运行时确定进程的退出状态.
我想要一个基于状态代码(0或非零)的逻辑
(例如:如果零则不执行其他非零发送警报电子邮件)
你知道我怎么能得到这些信息吗?
我正在尝试实现webapp的初始化和关闭.这包括初始化和关闭:
使用Tomcat 5.5.30和Java 6.我的想法是避免资源泄漏,主要是因为在开发环境中重新部署了webapp.
我该如何实现呢?
我写了一个Python脚本,最终应该关闭计算机.
这一行是其中的一部分:
os.system("shutdown /p")
Run Code Online (Sandbox Code Playgroud)
它会进行某种关闭,但仍保留在开启的Windows控制面板上(用户可以切换计算机用户).
有没有办法完全关闭电脑?
我尝试过其他os.system("shutdown ___")方法但没有成功.
还有其他方法可能会有所帮助吗?
有没有办法在 Linux 上以编程方式关闭 C/C++ 中的 TCP 连接?
为了进行测试,我想模拟端点刚刚断电而不传输任何 FIN 和/或 RST,也不刷新任何缓冲区的情况。
我知道ExitWindowsEx()API函数只关闭Windows.但据我所知,你不能让Windows安装任何挂起的更新.
是否有任何API支持安装任何挂起的更新(在标准的蓝屏中说" 已经安装了m个更新 - 请不要关闭或拔掉你的电脑,Windows将自行关闭 ")然后关闭Windows(相当于单击Windows用户界面的"安装更新和关闭"菜单选项)?
(操作系统版本:Windows XP及更高版本.)
我已将以下代码添加到我的程序中:
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run() {
System.out.println("exit");
}
}){});
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到这个消息.附加信息:我从Netbeans IDE内部运行程序.
编辑:我忘了添加有一个全局线程,使程序保持活着.我按下Netbeans右下角的[x]来关闭它.
我有一个启用了JMX监控的Java应用程序,如下所示:
-Dcom.sun.management.jmxremote.port=9999 \
// some other properties omitted
Run Code Online (Sandbox Code Playgroud)
但是当我尝试重新启动应用程序时,有时我收到错误说JMX端口号已经在使用中.这是不可接受的.
所以我想为底层套接字设置SO_REUSEADDR为true以避免此错误,但没有找到相关的JMX属性.
任何的想法?
网络上有许多关于启动新毛伊岛应用程序的文章(和视频)。Microsoft 的 Maui 文档确实讨论了 MauiApp 生命周期,并枚举了为每个受支持的平台触发适当事件的委托。除了创造之外,我找不到任何具体的例子来说明如何启动这些事件。具体来说,如何启动 MauiApp 关闭,是否涉及使应用程序进入睡眠状态或实际将其从内存中删除(根据平台的情况而定)?毛伊岛元数据提到了诸如Quit()、 、和 等程序StopAsync(),CloseWindow()但我无法让其中任何一个程序(至少在调试时)真正明显地终止应用程序。