chrome.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package cmd
  2. import (
  3. "fmt"
  4. "golang.org/x/sys/windows/registry"
  5. "os"
  6. "path/filepath"
  7. "strconv"
  8. "strings"
  9. )
  10. func GetChromeExePath() (path string, err error) {
  11. key, err := registry.OpenKey(registry.LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\chrome.exe\\", registry.READ)
  12. if err != nil {
  13. XWarning(fmt.Sprintf("GetChromeExePath OpenKey error : %v\n", err))
  14. return
  15. }
  16. defer key.Close()
  17. path, _, err = key.GetStringValue("Path")
  18. if err != nil {
  19. XWarning(fmt.Sprintf("GetChromeExePath GetStringValue error : %v\n", err))
  20. return
  21. }
  22. if path[len(path)-len("chrome.exe"):] != "chrome.exe" {
  23. path = filepath.Join(path, "chrome.exe")
  24. }
  25. return
  26. }
  27. // @title GetChromeUserDataDir
  28. // @description 获取windows当前用户的chrome用户目录
  29. // @param
  30. // @return chromeuserDataDir string
  31. func GetChromeUserDataDir() string {
  32. userHome, _ := os.UserHomeDir()
  33. return filepath.Join(userHome, "/AppData/Local/Google/Chrome/User Data/Default")
  34. }
  35. // CheckChromeInstalled 检查是否安装了chrome
  36. func CheckChromeInstalled() bool {
  37. key, err := registry.OpenKey(registry.CURRENT_USER, "Software\\Google\\Chrome", registry.READ)
  38. if err != nil {
  39. XWarning(fmt.Sprintf("CheckChromeInstalled OpenKey error : %v\n", err))
  40. return false
  41. }
  42. if key != 0 {
  43. return true
  44. }
  45. //fmt.Printf("key=====>%v\n", key)
  46. return false
  47. }
  48. // GetChromeVersionFromRegedit 从注册表获取chrome的版本
  49. func GetChromeVersionFromRegedit() int {
  50. ChromeVersion := 90
  51. key, err := registry.OpenKey(registry.CURRENT_USER, "Software\\Google\\Chrome\\BLBeacon", registry.READ)
  52. if err != nil {
  53. XWarning(fmt.Sprintf("GetChromeVersionFromRegedit OpenKey error : %v\n", err))
  54. return ChromeVersion
  55. }
  56. defer key.Close()
  57. version, _, err := key.GetStringValue("version")
  58. if err != nil {
  59. XWarning(fmt.Sprintf("GetChromeVersionFromRegedit OpenKey error : %v\n", err))
  60. return ChromeVersion
  61. }
  62. fmt.Printf("version======>%v\n", version)
  63. rets := strings.Split(version, ".")
  64. if len(rets) > 0 {
  65. ChromeVersion, _ = strconv.Atoi(rets[0])
  66. }
  67. fmt.Printf("ChromeVersion======>%v\n", ChromeVersion)
  68. return ChromeVersion
  69. }