浏览代码

智慧映拍照机
增加单例锁模式

rambo 1 周之前
父节点
当前提交
a5997b77d9
共有 3 个文件被更改,包括 27 次插入10 次删除
  1. 13 0
      app.go
  2. 10 10
      build.bat
  3. 4 0
      main.go

+ 13 - 0
app.go

@@ -5,6 +5,8 @@ import (
 	"Vali-Tools/utils"
 	"context"
 	"fmt"
+	"github.com/wailsapp/wails/v2/pkg/options"
+	"github.com/wailsapp/wails/v2/pkg/runtime"
 	"os"
 	"strings"
 )
@@ -21,6 +23,8 @@ type App struct {
 	handlerRequest   *handlers.HandlerRequests
 }
 
+var wailsContext *context.Context
+
 // NewApp creates a new App application struct
 func NewApp() *App {
 	return &App{}
@@ -29,6 +33,7 @@ func NewApp() *App {
 // startup is called when the app starts
 func (a *App) startup(ctx context.Context) {
 	a.ctx = ctx
+	wailsContext = &ctx
 	a.directoryHandler = handlers.NewDirectoryHandler(ctx)
 	a.dialogHandler = handlers.NewDialogHandler(ctx)
 	fmt.Printf("All startup args: %v\n", os.Args)
@@ -51,6 +56,14 @@ func (a *App) startup(ctx context.Context) {
 		fmt.Printf("获取到了Token信息: %s\n", a.Token)
 	}
 }
+func (a *App) onSecondInstanceLaunch(secondInstanceData options.SecondInstanceData) {
+	secondInstanceArgs := secondInstanceData.Args
+	println("user opened second instance", strings.Join(secondInstanceData.Args, ","))
+	println("user opened second from", secondInstanceData.WorkingDirectory)
+	runtime.WindowUnminimise(*wailsContext)
+	runtime.Show(*wailsContext)
+	go runtime.EventsEmit(*wailsContext, "launchArgs", secondInstanceArgs)
+}
 
 // 解析参数
 func (a *App) parsArguments(params string) map[string]string {

+ 10 - 10
build.bat

@@ -1,23 +1,23 @@
 @echo off
-echo 开始构建 Wails 应用...
+echo Starting Wails Application Build...
 
-REM 清理之前的构建
-echo 清理构建目录...
+REM Clean previous builds
+echo Cleaning build directory...
 wails build -clean
 
-REM 构建应用并嵌入 WebView2
-echo 正在构建应用并嵌入 WebView2...
+REM Build application with embedded WebView2
+echo Building application with embedded WebView2...
 wails build -webview2 embed
 
-REM 检查构建是否成功
+REM Check if build was successful
 if %ERRORLEVEL% EQU 0 (
-    echo 构建成功!
-    echo 可执行文件位置: build\bin\
+    echo Build successful!
+    echo Executable location: build\bin\
 ) else (
-    echo 构建失败,请检查错误信息
+    echo Build failed, please check error messages
     pause
     exit /b 1
 )
 
-echo 构建完成
+echo Build completed
 pause

+ 4 - 0
main.go

@@ -27,6 +27,10 @@ func main() {
 		},
 		BackgroundColour: &options.RGBA{R: 255, G: 255, B: 255, A: 1},
 		OnStartup:        app.startup,
+		SingleInstanceLock: &options.SingleInstanceLock{
+			UniqueId:               "141cdd5b-8167-4e2d-b738-8126a5f3fe46",
+			OnSecondInstanceLaunch: app.onSecondInstanceLaunch,
+		},
 		Bind: []interface{}{
 			app,
 		},