1.新建.reg 文件
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Classes\testRegister]
@="test测试"
"URL Protocol"="testRegister"
[HKEY_CURRENT_USER\SOFTWARE\Classes\testRegister\shell]
[HKEY_CURRENT_USER\SOFTWARE\Classes\testRegister\shell\open]
[HKEY_CURRENT_USER\SOFTWARE\Classes\testRegister\shell\open\command]
@="\"C:\\testRegister\\testRegister.exe\" \"%1\""
2.创建.exe文件执行.reg
combinedOutput, err := exec.Command("regedit.exe", "/S", "reg.reg").CombinedOutput()
func main() {
//combinedOutput, err := exec.Command("regedit.exe", "/S", "reg.reg").CombinedOutput() combinedOutput, err = exec.Command("cmd.exe","/C",fmt.Sprintf("regedit.exe /S %s",regFilePath)).CombinedOutput() //log.Println("重新注册:", string(combinedOutput), err) //fmt.Println("ss") //time.Sleep(36 * time.Second) args := os.Args
args[1] = strings.ReplaceAll(args[1], "testregister://", "testregister:")
args[1] = strings.ReplaceAll(args[1], "/?", "?")
splitFirst := strings.ReplaceAll(args[1], "testregister:", "")
//提取URL中的指令 instructNew := strings.TrimSpace(str.GetFirstElemBySep(splitFirst, "?"))
//Instruct = instructNew parse, err := url.ParseQuery(str.GetLastElemBySep(args[1], "?"))
if err == nil {
fmt.Println(parse)
// ParamsFromScheme = parse // for k := range ParamsFromScheme { // value := ParamsFromScheme.Get(k) // ParamsFromScheme.Set(k, strings.TrimSpace(value)) // } // } }
fmt.Println(instructNew)
fmt.Println(args)
tt()
}