创建 Windows 自动重启 + 每次重启时递增的计数器

Posted

技术标签:

【中文标题】创建 Windows 自动重启 + 每次重启时递增的计数器【英文标题】:Creating a Windows auto restart + a counter that increments each reboot 【发布时间】:2021-12-17 01:55:13 【问题描述】:

我正在尝试设置一个程序以在启动后自动重启窗口,并增加它已完成的重启次数。

我已经编写了少量代码,但是当它放在启动文件夹中时,它甚至没有重新启动系统本身。您可以非常短暂地看到命令提示符,然后什么也没有发生。

import java.awt.event.WindowEvent;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.io.*;
import javax.swing.*;


public class AutoRestart 

    public static void main(String[] args) throws IOException 
        int numRestarts = 0;

        Runtime r = Runtime.getRuntime();
        numRestarts++;


        File outFile = new File("C:\\reboots\\numberOfReboots.txt");
        if (outFile.exists()) 
            System.exit(0);
        

        PrintWriter writer = new PrintWriter(outFile);
        writer.println("Number of times rebooted: " + numRestarts);
        writer.close();

        r.exec("shutdown -r -t 0");
        System.out.println("Restarting. . .");

    


【问题讨论】:

您的应用完全按照您编写的方式执行操作:它将numRestarts 递增到 1,这与您到目前为止已经完成了多少次重新启动毫无关系(变量,显然,将无法在重新启动后存活)。然后,您检查该文件是否存在,如果存在,您的应用程序是否存在。因此,它什么也不做。 它设置为在 shell:startup 文件夹中自动运行,我的目标是让它在每次启动时递增,但是它需要将文件保存到 numberOfReboots.txt 然后我需要它会在下次运行时提取该数字并将 numRestarts 设置为该数字。 【参考方案1】:

int 变量在重启后无法生存,您可以尝试从刚刚创建的文件中读取并增加其中的数字。

【讨论】:

以上是关于创建 Windows 自动重启 + 每次重启时递增的计数器的主要内容,如果未能解决你的问题,请参考以下文章

Windows Server 重启时黑屏不关机无法操作怎么办?

如何让Win10在重启关机或注销时自动关闭应用程序

如何写一个Java程序自动启动一个windows系统服务?或者关闭、重启?

windows2008设置IIS服务器定时自动重启的方法

如何查看Windows服务器运行了多长时间

虚拟机安装的linux,ip地址每次重启后都自动改变了,修改后第一次重启网络会生效,再次重启网络就变回来了