.版本 2
.支持库 iext
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
刷新注册表启动项 ()
.子程序 刷新注册表启动项
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 c, 整数型
.局部变量 d, 文本型
.局部变量 e, 字节集
.局部变量 f, 整数型
.局部变量 索引, 整数型
.局部变量 文件名最长度, 整数型
.局部变量 文件路径最长度, 整数型
启动项超级列表框.整行选择 = 真
启动项超级列表框.全部删除 ()
文件名最长度 = 0
文件路径最长度 = 0
' 注册表启动项枚举HKEY_LOCAL_MACHINE 系统默认启动项有两处注册表
b = RegOpenKeyA (#HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run”, a)
.如果真 (b ≠ 0)
返回 ()
.如果真结束
c = 0
.循环判断首 ()
d = 取空白文本 (255)
e = 取空白字节集 (255)
b = RegEnumValueA (a, c, d, 255, 0, 0, e, 255)
.如果真 (b = 0)
索引 = 启动项超级列表框.插入表项 (-1, “HKEY_LOCAL_MACHINE”, , , , )
启动项超级列表框.置标题 (索引, 1, d)
.如果真 (取文本长度 (d) × 7 > 文件名最长度) ' 计算文件名最长度.为方便超级列表框1.置列宽
文件名最长度 = 取文本长度 (d) × 7
.如果真结束
启动项超级列表框.置标题 (索引, 2, 到文本 (e))
.如果真 (取文本长度 (到文本 (e)) × 7 > 文件路径最长度) ' 计算文件路径最长度.为方便超级列表框1.置列宽
文件路径最长度 = 取文本长度 (到文本 (e)) × 7
.如果真结束
.如果真结束
c = c + 1
.循环判断尾 (b = 0)
RegCloseKey (b)
' 注册表启动项枚举HKEY_CURRENT_USER
b = RegOpenKeyA (#HKEY_CURRENT_USER, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run”, a)
.如果真 (b ≠ 0)
返回 ()
.如果真结束
c = 0
.循环判断首 ()
d = 取空白文本 (255)
e = 取空白字节集 (255)
b = RegEnumValueA (a, c, d, 255, 0, 0, e, 255)
.如果真 (b = 0)
索引 = 启动项超级列表框.插入表项 (-1, “HKEY_CURRENT_USER”, , , , )
启动项超级列表框.置标题 (索引, 1, d)
.如果真 (取文本长度 (d) × 7 > 文件名最长度) ' 计算文件名最长度.为方便超级列表框1.置列宽
文件名最长度 = 取文本长度 (d) × 7
.如果真结束
启动项超级列表框.置标题 (索引, 2, 到文本 (e))
.如果真 (取文本长度 (到文本 (e)) × 7 > 文件路径最长度) ' 计算文件路径最长度.为方便超级列表框1.置列宽
文件路径最长度 = 取文本长度 (到文本 (e)) × 7
.如果真结束
.如果真结束
c = c + 1
.循环判断尾 (b = 0)
RegCloseKey (b)
启动项超级列表框.置列宽 (1, 文件名最长度 + 10)
启动项超级列表框.置列宽 (2, 文件路径最长度)
.子程序 _启动项超级列表框_鼠标右键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
弹出菜单 (启动选项菜单, , )
.子程序 _删除此启动项_被选择
.如果真 (信息框 (“是否要删除此启动项?”, 49, ) = 0)
.如果真 (启动项超级列表框.取标题 (启动项超级列表框.现行选中项, 0) = “HKEY_LOCAL_MACHINE”)
删除注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run\” + 启动项超级列表框.取标题 (启动项超级列表框.现行选中项, 1))
.如果真结束
.如果真 (启动项超级列表框.取标题 (启动项超级列表框.现行选中项, 0) = “HKEY_CURRENT_USER”)
删除注册项 (#现行用户, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run\” + 启动项超级列表框.取标题 (启动项超级列表框.现行选中项, 1))
.如果真结束
刷新注册表启动项 ()
.如果真结束
' 删除注册表启动项
.子程序 _浏览启动程序按钮_被单击
' 通用对话框1.过滤器 = “可执行文件|*.exe”
.如果真 (通用对话框1.打开 ())
加入启动程序编辑框.内容 = 通用对话框1.文件名
.如果真结束
.子程序 _加入程序启动按钮_被单击
.局部变量 文件名, 文本型
.如果真 (加入启动程序编辑框.内容 = “”)
信息框 (“请点击” + #左引号 + “浏览” + #右引号 + “选择要加入启动项的文件.”, 64, “提示”)
返回 ()
.如果真结束
文件名 = 取文本右边 (加入启动程序编辑框.内容, 取文本长度 (加入启动程序编辑框.内容) - 倒找文本 (加入启动程序编辑框.内容, “\”, , 假))
.' 如果真 (取文本右边 (文件名, 4) ≠ “.exe”)
' 信息框 (“请选择可执行文件”, 64, “提示”)
' 返回 ()
.如果真结束
.如果真 (信息框 (“确定要把 ” + 文件名 + “ 加入到注册表启动项吗?”, 33, “提示”) = 0)
.如果真 (MACHINE单选框.选中 = 真)
写注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run\” + 文件名, 加入启动程序编辑框.内容)
.如果真结束
.如果真 (USER单选框.选中 = 真)
写注册项 (#现行用户, “SOFTWARE\Microsoft\Windows\CurrentVersion\Run\” + 文件名, 加入启动程序编辑框.内容)
.如果真结束
刷新注册表启动项 ()
.如果真结束
' 加入注册表启动项