当前位置:首页 > 尘凡 > 正文内容

go的windows单实例互斥锁

满纸空言3年前 (2022-07-22)尘凡27540

utils

package utils

import (
	"golang.org/x/sys/windows"
	"syscall"
)

func LockMutex(name string) error {
	ptr, _ := syscall.UTF16PtrFromString(name)
	_, err := windows.CreateMutex(nil, true, ptr)
	if err != nil {
		return err
	}
	return nil
}

 

main.go

import (
	"context"
	"embed"
	"github.com/gin-gonic/gin"
	"github.com/mzky/blink"
	"io/fs"
	"log"
	"net/http"
	"os"
	"pcmClient/utils"
	"time"
)

//go:embed res
var res embed.FS

var (
	c       utils.CorsVar
	winForm *blink.WebView
)

func init() {
	c.Port = ":7569"
	// 是否支持F5和F12调试模式
	// blink.SetDebugMode(false)
	if err := blink.InitBlink(); err != nil {
		log.Fatal(err)
	}
	winForm = blink.NewWebView(false, 1280, 800)
	if err := utils.LockMutex("PCM_Client"); err != nil {
		winForm.MessageBox("消息", "同时只能运行一个升级维护客户端!")
		log.Fatalf("客户端已经运行", err)
	}
}

扫描二维码推送至手机访问。

版权声明:本文由满纸空言发布,如需转载请注明出处。

本文链接:https://mzky.cc/post/102.html

标签: Linuxgolang
分享给朋友:

“go的windows单实例互斥锁” 的相关文章

njmon参数4年前 (2021-04-21)
Gox让交叉编译超级简单4年前 (2021-05-24)
解决goland显示导入异常4年前 (2021-07-19)
UOS编译keepalived4年前 (2021-08-06)

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。