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

go的windows单实例互斥锁

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

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单实例互斥锁” 的相关文章

锻炼算法4年前 (2021-09-01)
Go的cron定时库差异4年前 (2021-09-06)
windows编译Go程序3年前 (2021-09-24)
linux下查找大文件3年前 (2021-09-28)

发表评论

访客

看不清,换一张

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