regsrv.go 958 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // ofcmgr project doc.go
  2. /*
  3. ofcmgr document
  4. */
  5. package main
  6. import (
  7. "github.com/golang/sys/windows/registry"
  8. "log"
  9. )
  10. func registerOp(srcPath string) {
  11. key, exists, err := registry.CreateKey(registry.CLASSES_ROOT, "petrotool", registry.ALL_ACCESS)
  12. if err != nil {
  13. log.Println(err)
  14. log.Println("安装失败,请通过右键,以管理员的身份运行,重试安装!")
  15. return
  16. }
  17. defer key.Close()
  18. if exists {
  19. log.Println("键已存在")
  20. return
  21. } else {
  22. log.Println("新建注册表键")
  23. key.SetStringValue("", "dashooProtocol")
  24. key.SetStringValue("URL Protocol", srcPath)
  25. key1, _, _ := registry.CreateKey(registry.CLASSES_ROOT, "petrotool\\DefaultIcon", registry.ALL_ACCESS)
  26. key2, _, _ := registry.CreateKey(registry.CLASSES_ROOT, "petrotool\\shell\\open\\command", registry.ALL_ACCESS)
  27. key1.SetStringValue("", srcPath + ",1")
  28. key2.SetStringValue("", "\""+ srcPath +"\" \"%1\"")
  29. log.Println("安装成功")
  30. }
  31. }