代码拉取完成,页面将自动刷新
package main
import (
"bufio"
"fmt"
"golang.org/x/sys/windows/registry"
"os"
"os/exec"
"strings"
)
func CreateOpenDir() {
var openName string
var openPath string
scanner := bufio.NewScanner(os.Stdin)
fmt.Println("请输入右键打开的名称")
if scanner.Scan() {
openName = scanner.Text()
}
fmt.Println("请输入打开程序的路径,后缀为.exe")
if scanner.Scan() {
openPath = scanner.Text()
openPath = strings.TrimSpace(openPath)
}
registryName := extractFileName(openPath)
showPath := fmt.Sprintf(`Directory\shell\%s`, registryName)
commandPath := fmt.Sprintf(`Directory\shell\%s\command`, registryName)
openCommand := fmt.Sprintf(`"%s" "%%1"`, openPath)
//创建或打开注册表项
key, _, err := registry.CreateKey(registry.CLASSES_ROOT, showPath, registry.ALL_ACCESS)
if err != nil {
fmt.Println("无法创建或打开注册表项:", err)
return
}
defer key.Close()
// 设置注册表值
err = key.SetStringValue(Empty, openName)
if err != nil {
fmt.Println("无法设置注册表值:", err)
return
}
err = key.SetStringValue(Icon, openPath)
if err != nil {
fmt.Println("无法设置注册表值:", err)
return
}
key, _, err = registry.CreateKey(registry.CLASSES_ROOT, commandPath, registry.ALL_ACCESS)
if err != nil {
fmt.Println("无法创建或打开注册表项:", err)
return
}
err = key.SetStringValue(Empty, openCommand)
if err != nil {
fmt.Println("无法设置注册表值:", err)
return
}
fmt.Println("HKEY_CLASSES_ROOT\\" + showPath)
fmt.Println("注册表项添加成功!")
}
func DeleteOpenDir() {
fmt.Println("请输入打开程序的路径,后缀为.exe")
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
openPath := scanner.Text()
registryName := extractFileName(openPath)
showPath := fmt.Sprintf(`HKEY_CLASSES_ROOT\Directory\shell\%s`, registryName)
fmt.Println(showPath)
//删除注册表项
cmd := exec.Command("cmd", "/c", "reg", "delete", showPath, "/f")
err := cmd.Run()
if err != nil {
fmt.Println("注册表项删除失败:", err)
return
}
fmt.Println("注册表项删除成功!")
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。