windows – 使用Golang限制为可执行文件的单个实例
发布时间:2020-12-13 22:30:29 所属栏目:Windows 来源:网络整理
导读:我需要一次只允许一个Golang可执行文件的实例.我不确定如何使用Global Mutex来确保没有其他实例正在运行. 这将在Windows机器上运行. 解决方法 我知道这个主题有点旧,但我最近在Windows上需要它,我会在这里发布我是如何做到的,以防其他人需要. 感谢@VonC让我
我需要一次只允许一个Golang可执行文件的实例.我不确定如何使用Global Mutex来确保没有其他实例正在运行.
这将在Windows机器上运行. 解决方法
我知道这个主题有点旧,但我最近在Windows上需要它,我会在这里发布我是如何做到的,以防其他人需要.
感谢@VonC让我指向正确的方向. var ( kernel32 = syscall.NewLazyDLL("kernel32.dll") procCreateMutex = kernel32.NewProc("CreateMutexW") ) func CreateMutex(name string) (uintptr,error) { ret,_,err := procCreateMutex.Call( 0,uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(name))),) switch int(err.(syscall.Errno)) { case 0: return ret,nil default: return ret,err } } // mutexName starting with "Global" will work across all user sessions _,err := CreateMutex("SomeMutexName") 我用一个更完整的例子创建了一个lib:https://github.com/rodolfoag/gow32 谢谢! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2008 – 使用1GB内存运行Windows Server 20
- windows-server-2008 – 每晚重启Windows域上所有计算机的好
- 2019年云计算将有哪些变化?云计算未来前景
- 如何从NSIS安装程序“刷新”Windows 7开始菜单?
- 如何在Windows中删除锁定的文件?
- 在调用.net com dll时强制VB6编译器使用早期绑定
- 适用于Windows的Python SVN绑定
- 在Windows上使用Apache设置git-http-backend的步骤是什么?
- .net – 编译器失败,错误代码为-1073741502(在Windows Serv
- 当CHAR_BIT> 8时,语言标准如何定义uint8_t?