使用C/C++的Windows API RegisterWindowMessage()不同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;
}
當我回來,我需要做一些進一步的測試,因爲你有一個好點。
我假設這意味着當您第二次運行AutoAppend時,它將返回到已經運行的AutoConvert。否則你的互斥體在它們應該是不一樣的時候也不是唯一的。 –