1、winobj.exe工具下载地址
WinObj - Sysinternals | Microsoft Learn
2、接下来用winobj.exe查看全局互斥,先写一个小例子
#include <iostream>
#include <stdlib.h>
#include <tchar.h>
#include <string>
#include <windows.h>int main()
{std::wstring mutex_name(L"Global\\jdtest-{15415F33-1588-43B4-81D1-4EA5E288415C}");HANDLE m_hMutex = CreateMutex(NULL, TRUE, mutex_name.c_str());if (GetLastError() == ERROR_ALREADY_EXISTS) {std::cout << "已经有程序在运行\n";}else{std::cout << "hello wold\n";}system("pause");return 0;
}
3、将测试例子运行起来之后在winobj,exe中搜索"jdtest"即可看到已创建的互斥
题外话:其实利用创建的互斥可以用来禁止其他单实例的进程运行,找到那个进程的互斥名字,自己在创建一个同样名字的互斥进程即可。你懂的!!
查看进程创建的互斥量名字简单的可以用ida汇编看看,本人不才,上个小例子供大家参考:
用ida打开刚才写好的进程test001.exe
标红处既是互斥名字,关键点搜CreateMutex函数。