Windows中,点关机按钮比较麻烦,还要等待程序关闭,直接用hta写代码可以搞定,实现强制重启等功能,双击即可运行,无需安装其他软件。当然用vbs代码也可以,但是按钮名称不够友好。

运行效果

hta简介

hta是一个可执行文件,双击可以直接运行。hta与html非常相似,可直接将文件后缀改为.hta来获得HTA格式的文件。支持VBS和JavaScript

html的权限被限制在网页浏览器内,只有操作页面的权限。而hta具有比HTML更多的特权,例如,可以访问和修改本地的文件。

优点:开发快速,无需编译/部署,无需任何环境可以二次开发修改
缺点:暴露源代码,容易被修改,安全性为0
 

代码生成

记事本打开后编辑,直接复制源代码另存为hta文件,注意编码处选择 ansi,否则汉字有可能是乱码。

源代码

<!DOCTYPE html>
<!-- 声明文档类型为HTML5 -->
<html>
<head>
    <title>SHAO</title>  <!-- 窗口标题 -->
    
    <!-- HTA应用程序配置 -->
    <HTA:APPLICATION 
        ID="shutdownTool"       <!-- 应用程序ID -->
        BORDER="thin"           <!-- 窗口边框样式:thin(细边框) -->
        BORDERSTYLE="normal"    <!-- 边框样式:normal(普通) -->
        CAPTION="yes"           <!-- 显示标题栏 -->
        SHOWINTASKBAR="yes"     <!-- 在任务栏显示 -->
        SINGLEINSTANCE="yes"    <!-- 只允许运行一个实例 -->
        SYSMENU="no"          <!-- 显示系统菜单(最小化/最大化/关闭) -->
        WINDOWSTATE="normal"    <!-- 窗口初始状态:normal(正常大小) -->
    />
    
    <!-- VBScript脚本部分 -->
    <script language="VBScript">
        ' 窗口加载时执行的函数
        Sub Window_OnLoad
            ' 设置窗口固定大小为 300x180 像素
            window.resizeTo 300, 180
            ' 将窗口移动到屏幕中央
            window.moveTo (screen.width - 300)/2, (screen.height - 180)/2
        End Sub

        ' 重启电脑的函数
        Sub Reboot
            ' 调用WScript.Shell执行关机命令 -r表示重启,-t 0表示立即执行
            CreateObject("WScript.Shell").Run "shutdown -r -t 0", 0, False
            ' 关闭当前窗口
            window.Close
        End Sub

        ' 关机函数
        Sub Shutdown
            ' -s表示关机
            CreateObject("WScript.Shell").Run "shutdown -s -t 0", 0, False
            window.Close
        End Sub

        ' 取消函数
        Sub Cancel
            ' 直接关闭窗口
            window.Close
        End Sub
    </script>
    
    <!-- CSS样式部分 -->
    <style>
        /* 全局HTML和BODY样式 */
        html, body {
            margin: 1px;          /* 外边距设为1px */
            padding: 1px;         /* 内边距设为1px */
            width: 100%;        /* 宽度100% */
            height: 100%;       /* 高度100% */
            overflow: hidden;   /* 隐藏滚动条 */
        }
        
        /* 主体样式 */
        body { 
            font-family: Arial;             /* 字体 */
            text-align: center;             /* 文本居中 */
            background: #f0f0f0;           /* 背景色 */
            display: flex;                  /* 弹性布局 */
            flex-direction: column;        /* 垂直排列 */
            justify-content: center;       /* 垂直居中 */
            align-items: center;           /* 水平居中 */
        }
        
        /* 标题样式 */
        h3 { 
            margin: 15px 0 15px 0;        /* 上边距10px,下边距15px */
            font-size: 12px;               /* 字体大小 */
        }
        
        /* 按钮容器样式 */
        .btn-container {
            display: flex;                /* 弹性布局 */
            gap: 8px;                     /* 按钮间距8px */
            margin-bottom: 10px;          /* 底部外边距 */
        }
        
        /* 按钮基础样式 */
        button { 
            padding: 6px 12px;            /* 内边距 */
            font-size: 14px;              /* 字体大小 */
            cursor: pointer;              /* 鼠标指针样式 */
            border: 1px solid #ccc;       /* 边框 */
            background: #fff;             /* 背景色 */
            border-radius: 3px;           /* 圆角 */
            min-width: 60px;              /* 最小宽度 */
        }
        
        /* 按钮悬停效果 */
        button:hover {
            background: #e0e0e0;          /* 鼠标悬停时背景色 */
        }
    </style>
</head>

<!-- 页面主体内容 -->
<body>
    <h3>请选择操作</h3>  <!-- 标题 -->
    
    <!-- 按钮容器 -->
    <div class="btn-container">
        <!-- 重启按钮,点击触发Reboot()函数 -->
        <button onclick="Reboot()">重启</button>   
        <!-- 关机按钮,点击触发Shutdown()函数 -->
        <button onclick="Shutdown()">关机</button>   
        <!-- 取消按钮,点击触发Cancel()函数 -->
        <button onclick="Cancel()">取消</button>
    </div>
</body>
</html>

更多推荐