|
|
@@ -3,32 +3,71 @@ package core
|
|
|
import (
|
|
|
"fmt"
|
|
|
"golang.org/x/sys/windows/registry"
|
|
|
+ "os"
|
|
|
"path/filepath"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
+func GetChromeExePath() (path string, err error) {
|
|
|
+ key, err := registry.OpenKey(registry.LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\chrome.exe\\", registry.READ)
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ XWarning(fmt.Sprintf("GetChromeExePath OpenKey error : %v\n", err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer key.Close()
|
|
|
+
|
|
|
+ path, _, err = key.GetStringValue("Path")
|
|
|
+ if err != nil {
|
|
|
+ XWarning(fmt.Sprintf("GetChromeExePath GetStringValue error : %v\n", err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if path[len(path)-len("chrome.exe"):] != "chrome.exe" {
|
|
|
+ path = filepath.Join(path, "chrome.exe")
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// @title GetChromeUserDataDir
|
|
|
// @description 获取windows当前用户的chrome用户目录
|
|
|
// @param
|
|
|
// @return chromeuserDataDir string
|
|
|
func GetChromeUserDataDir() string {
|
|
|
- return filepath.Join("C:/Users", GetWinUserName(), "AppData", "Local", "Google", "Chrome", "User Data")
|
|
|
+ userHome, _ := os.UserHomeDir()
|
|
|
+ return filepath.Join(userHome, "/AppData/Local/Google/Chrome/User Data/Default")
|
|
|
+}
|
|
|
+
|
|
|
+//CheckChromeInstalled 检查是否安装了chrome
|
|
|
+func CheckChromeInstalled() bool {
|
|
|
+ key, err := registry.OpenKey(registry.CURRENT_USER, "Software\\Google\\Chrome", registry.READ)
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ XWarning(fmt.Sprintf("CheckChromeInstalled OpenKey error : %v\n", err))
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if key != 0 {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ //fmt.Printf("key=====>%v\n", key)
|
|
|
+ return false
|
|
|
}
|
|
|
|
|
|
+// GetChromeVersionFromRegedit 从注册表获取chrome的版本
|
|
|
func GetChromeVersionFromRegedit() int {
|
|
|
ChromeVersion := 90
|
|
|
- key, err := registry.OpenKey(registry.CURRENT_USER, "Software\\Google\\Chrome\\BLBeacon", registry.ALL_ACCESS)
|
|
|
+ key, err := registry.OpenKey(registry.CURRENT_USER, "Software\\Google\\Chrome\\BLBeacon", registry.READ)
|
|
|
|
|
|
if err != nil {
|
|
|
- LogWrite(fmt.Sprintf("GetChromeVersionFromRegedit OpenKey error : %v\n", err))
|
|
|
+ XWarning(fmt.Sprintf("GetChromeVersionFromRegedit OpenKey error : %v\n", err))
|
|
|
return ChromeVersion
|
|
|
}
|
|
|
defer key.Close()
|
|
|
|
|
|
version, _, err := key.GetStringValue("version")
|
|
|
if err != nil {
|
|
|
- LogWrite(fmt.Sprintf("GetChromeVersionFromRegedit OpenKey error : %v\n", err))
|
|
|
+ XWarning(fmt.Sprintf("GetChromeVersionFromRegedit OpenKey error : %v\n", err))
|
|
|
return ChromeVersion
|
|
|
}
|
|
|
|