chrome.go 2.1 KB

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