• 當前位置:首頁 > IT技術 > Windows編程 > 正文

    windows單實例的辦法
    2021-08-06 19:18:00

      有的程序需要單實例。

      除了互斥之外,其實還要關注兩個問題(這個是本文特有的,是實實在在工作中遇到的):

    1. 程序被殺、崩潰之后,再次啟動是否正確。
    2. 多用戶時,是否也是一個實例?如果一個用戶一個實例,那么關鍵值就要加上用戶名。
    #include <windows.h>
    
    
    int main(int argc, char *argv[])
    {
    ? ? HANDLE hMutex = CreateMutex(NULL, FALSE, "quantum7");
    ? ? DWORD dwError = GetLastError();
    ? ? if (ERROR_ALREADY_EXISTS == dwError || ERROR_ACCESS_DENIED == dwError)
    ? ? {
            // 已經有實例了,退出。
    ? ? ? ? return;
    ? ? }
    
    
        //運行實例,做事。
    
    
        //退出時的操作。實際測試中發現,進程殺死,再次啟動是正確的。所以應該是進程退出后自動刪除。
    ? ? CloseHandle(hMutex);
    
    ? ? return 0;
    
    }
    

    ?

    本文摘自 :https://blog.51cto.com/u

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码