使用 C/C++ Windows API RegisterWindowMessage()
我使用应用程序的名称作为消息名称。
接下来,我使用相同的名称调用CreatMutex(),以便判断它是否已经存在。如果是这样,我知道这个应用程序已经在运行并且不会启动它的第二个实例。这是我的函数 Running() 的操作
我的困惑在于消息名称。似乎“AutoConvert.exe”和“AutoAppend.exe”被解释为同名。为什么?
补充:我不在我的机器上,但这类似于在两个应用程序中调用以检查应用程序当前是否正在运行的函数
INT AlreadyRunning( string sAppName ) {
INT runchk = RegisterWindowMessage( sAppName.c_str() );
INT retval = CreateMutex( 0, 1, sAppName.c_str() );
if( retval > 0 ) {
if( GetLastError = ERROR_ALREADY_EXISTS ) {
SendMessage HWND_BROADCAST, runchk, 0, 0;
return 1;
}
}
return 0;
}
当我回来时,我需要做一些进一步的测试,因为你说得很好。