diff --git a/app/electron-builder-arm64.yml b/app/electron-builder-arm64.yml index daa827005..beb27b91f 100644 --- a/app/electron-builder-arm64.yml +++ b/app/electron-builder-arm64.yml @@ -70,5 +70,3 @@ extraResources: - from: "src/assets/fonts" to: "appearance/fonts" filter: "!**/{.DS_Store}" - - from: "elevator/elevator-arm64.exe" - to: "elevator.exe" \ No newline at end of file diff --git a/app/electron-builder.yml b/app/electron-builder.yml index 76e1e3779..7ba8628c2 100644 --- a/app/electron-builder.yml +++ b/app/electron-builder.yml @@ -71,5 +71,3 @@ extraResources: filter: "!**/{.DS_Store}" - from: "pandoc/pandoc-windows-amd64.zip" to: "pandoc.zip" - - from: "elevator/elevator-amd64.exe" - to: "elevator.exe" diff --git a/kernel/model/elevator.go b/kernel/model/elevator.go index 054cf8d5e..de2995420 100644 --- a/kernel/model/elevator.go +++ b/kernel/model/elevator.go @@ -18,5 +18,6 @@ package model -func AutoProcessMicrosoftDefender() { -} +func AddMicrosoftDefenderExclusion() error { return nil } + +func AutoProcessMicrosoftDefender() {} diff --git a/kernel/model/elevator_windows.go b/kernel/model/elevator_windows.go index 22e28658b..ca3662ca5 100644 --- a/kernel/model/elevator_windows.go +++ b/kernel/model/elevator_windows.go @@ -62,11 +62,12 @@ func AddMicrosoftDefenderExclusion() (err error) { return } } else { - logging.LogInfof("current user is not admin, use elevator to add Windows Defender exclusion path [%s, %s]", installPath, util.WorkspaceDir) - elevator := filepath.Join(util.WorkingDir, "elevator.exe") - if "dev" == util.Mode || !gulu.File.IsExist(elevator) { - elevator = filepath.Join(util.WorkingDir, "elevator", "elevator-"+runtime.GOARCH+".exe") + elevator := getElevatorBin() + if !gulu.File.IsExist(elevator) { + logging.LogWarnf("not found elevator [%s]", elevator) + return } + logging.LogInfof("current user is not admin, use elevator to add Windows Defender exclusion path [%s, %s]", installPath, util.WorkspaceDir) if !gulu.File.IsExist(elevator) { msg := fmt.Sprintf("not found elevator [%s]", elevator) @@ -89,6 +90,9 @@ func AddMicrosoftDefenderExclusion() (err error) { } } + Conf.System.MicrosoftDefenderExcluded = true + Conf.Save() + logging.LogInfof("added Windows Defender exclusion path [%s, %s]", installPath, util.WorkspaceDir) util.PushMsg(Conf.language(102), 5000) return @@ -106,11 +110,7 @@ func checkMicrosoftDefender() { return } - elevator := filepath.Join(util.WorkingDir, "elevator.exe") - if "dev" == util.Mode || !gulu.File.IsExist(elevator) { - elevator = filepath.Join(util.WorkingDir, "elevator", "elevator-"+runtime.GOARCH+".exe") - } - + elevator := getElevatorBin() if !gulu.File.IsExist(elevator) { logging.LogWarnf("not found elevator [%s]", elevator) return @@ -137,3 +137,11 @@ func isAdmin() bool { _, err := os.Open("\\\\.\\PHYSICALDRIVE0") return err == nil } + +func getElevatorBin() string { + elevator := filepath.Join(util.WorkingDir, "kernel", "elevator.exe") + if "dev" == util.Mode || !gulu.File.IsExist(elevator) { + elevator = filepath.Join(util.WorkingDir, "elevator", "elevator-"+runtime.GOARCH+".exe") + } + return elevator +} diff --git a/scripts/win-build.bat b/scripts/win-build.bat index eabd79b7c..20bd02b17 100644 --- a/scripts/win-build.bat +++ b/scripts/win-build.bat @@ -47,6 +47,10 @@ cd .. echo 'Building Electron App amd64' cd app + +copy "elevator\elevator-amd64.exe" "kernel\elevator.exe" +copy "elevator\elevator-arm64.exe" "kernel-arm64\elevator.exe" + call pnpm run dist if errorlevel 1 ( exit /b %errorlevel%