顶级小白 发表于 2026-4-9 06:43:50

AI写的一个白名单进程系统.可以只允许运行指定进程.

<火山程序 类型 = "通常" 版本 = 1 />

包 火山.进程管理

类 启动类 <公开 基础类 = 窗口程序类>
{
    变量 主窗口 <类型 = 我的主窗口 标题 = "进程管理工具">

    方法 启动方法 <公开 类型 = 整数>
    {
      主窗口.创建主窗口 ()
      返回 (1)
    }
}

类 我的主窗口 <基础类 = 窗口 @视窗.布局 = "client_size = \"500, 440\"" @视窗.外部头文件 = "proc_mgr.h"
      @视窗.外部源文件 = "proc_mgr.cpp" 标题 = "进程管理工具">
{
    变量 进程名标签 <类型 = 标签 @视窗.布局 = "id = 101\r\npos = \"20, 18, 50, 20\"" 标题 = "进程名:">
    变量 进程名编辑框 <公开 类型 = 编辑框 @视窗.布局 = "id = 102\r\npos = \"70, 15, 230, 24\"">
    变量 添加按钮 <类型 = 按钮 @视窗.布局 = "id = 103\r\npos = \"310, 12, 80, 28\"" 标题 = "添加">
    变量 删除按钮 <类型 = 按钮 @视窗.布局 = "id = 104\r\npos = \"400, 12, 80, 28\"" 标题 = "删除">
    变量 进程列表框 <公开 类型 = 列表框 @视窗.布局 = "id = 105\r\npos = \"20, 50, 460, 200\"">
    变量 开启按钮 <类型 = 按钮 @视窗.布局 = "id = 106\r\npos = \"20, 260, 120, 30\"" 标题 = "开启保护">
    变量 关闭按钮 <类型 = 按钮 @视窗.布局 = "id = 107\r\npos = \"150, 260, 120, 30\"" 标题 = "关闭保护">
    变量 策略组按钮 <类型 = 按钮 @视窗.布局 = "id = 108\r\npos = \"280, 260, 120, 30\"" 标题 = "打开策略组">
    变量 开启系统按钮 <类型 = 按钮 @视窗.布局 = "id = 111\r\npos = \"20, 300, 120, 30\"" 标题 = "开启系统保护">
    变量 关闭系统按钮 <类型 = 按钮 @视窗.布局 = "id = 112\r\npos = \"150, 300, 120, 30\"" 标题 = "关闭系统保护">
    变量 状态标签 <类型 = 标签 @视窗.布局 = "id = 109\r\npos = \"20, 345, 460, 20\"" 标题 = "定时扫描: 保护已关闭">
    变量 系统状态标签 <类型 = 标签 @视窗.布局 = "id = 113\r\npos = \"20, 370, 460, 20\"" 标题 = "系统策略: 保护已关闭">
    变量 说明标签 <类型 = 标签 @视窗.布局 = "id = 110\r\npos = \"20, 400, 460, 20\"" 标题 = "系统策略需管理员权限,关闭程序后策略仍然生效">
    变量 说明标签2 <类型 = 标签 @视窗.布局 = "id = 114\r\npos = \"20, 420, 460, 20\"" 标题 = "系统关键进程已自动保护">

    方法 按钮_被单击 <接收事件 类型 = 整数>
    参数 来源对象 <类型 = 按钮>
    参数 标记值 <类型 = 整数>
    {
      如果 (来源对象 == 添加按钮)
      {
            如果 (进程名编辑框.内容 != "")
            {
                添加到白名单 (进程名编辑框.内容)
                进程列表框.加入项目 (进程名编辑框.内容, 0)
                进程名编辑框.内容 = ""
                刷新系统保护 ()
            }
      }
      否则 (来源对象 == 删除按钮)
      {
            变量 选中索引 <类型 = 整数>
            选中索引 = 进程列表框.现行选中项
            如果 (选中索引 >= 0)
            {
                从白名单删除 (进程列表框.取项目文本 (选中索引))
                进程列表框.删除项目 (选中索引)
                刷新系统保护 ()
            }
      }
      否则 (来源对象 == 开启按钮)
      {
            如果 (开启保护 ())
            {
                状态标签.标题 = "定时扫描: 保护已开启"
            }
      }
      否则 (来源对象 == 关闭按钮)
      {
            关闭保护 ()
            状态标签.标题 = "定时扫描: 保护已关闭"
      }
      否则 (来源对象 == 策略组按钮)
      {
            打开策略编辑器 ()
      }
      否则 (来源对象 == 开启系统按钮)
      {
            如果 (开启系统保护 ())
            {
                系统状态标签.标题 = "系统策略: 保护已开启"
            }
            否则
            {
                信息框 ("开启失败,请以管理员身份运行!", 0)
            }
      }
      否则 (来源对象 == 关闭系统按钮)
      {
            如果 (关闭系统保护 ())
            {
                系统状态标签.标题 = "系统策略: 保护已关闭"
            }
            否则
            {
                信息框 ("关闭失败,请以管理员身份运行!", 0)
            }
      }
      返回 (0)
    }

    方法 窗口_将被销毁 <接收事件 类型 = 整数>
    参数 来源对象 <类型 = 窗口>
    参数 标记值 <类型 = 整数>
    {
      关闭保护 ()
      返回 (0)
    }

    方法 添加到白名单 <类型 = 逻辑型 @禁止流程检查 = 真>
    参数 进程名 <类型 = 文本型>
    {
      @ VolProcAddAllowed(@<进程名>.GetText());
      @ return TRUE;
    }

    方法 从白名单删除 <类型 = 逻辑型 @禁止流程检查 = 真>
    参数 进程名 <类型 = 文本型>
    {
      @ VolProcRemoveAllowed(@<进程名>.GetText());
      @ return TRUE;
    }

    方法 开启保护 <类型 = 逻辑型 @禁止流程检查 = 真>
    {
      @ return VolProcStartMonitor(1000);
    }

    方法 关闭保护 <@禁止流程检查 = 真>
    {
      @ VolProcStopMonitor();
    }

    方法 打开策略编辑器 <@禁止流程检查 = 真>
    {
      @ VolProcOpenPolicyEditor();
    }

    方法 开启系统保护 <类型 = 逻辑型 @禁止流程检查 = 真>
    {
      @ return VolProcEnableSystemRestriction();
    }

    方法 关闭系统保护 <类型 = 逻辑型 @禁止流程检查 = 真>
    {
      @ return VolProcDisableSystemRestriction();
    }

    方法 刷新系统保护 <@禁止流程检查 = 真>
    {
      @ VolProcUpdateSystemRestriction();
    }
}




没什么鱼 发表于 2026-4-9 11:36:22

66666666现在AI助力火山这么好了吗
页: [1]
查看完整版本: AI写的一个白名单进程系统.可以只允许运行指定进程.