程式自刪除實現 可用的SDK的

來源:互聯網
上載者:User
我找自刪除的東西 一找一大片,結果一個能直接用的也沒有, 我用下面這個倒是可以

如果有必要可以試一下.這個代碼是我從 草草的SEU_PEER中拿出來的

BOOL SelfDelete()
...{
    TCHAR szModule [MAX_PATH],
          szComspec[MAX_PATH],
          szParams [MAX_PATH];

    // get file path names:
    if((GetModuleFileName(0,szModule,MAX_PATH)!=0) &&
       (GetShortPathName(szModule,szModule,MAX_PATH)!=0) &&
       (GetEnvironmentVariable("COMSPEC",szComspec,MAX_PATH)!=0))
    ...{
        // set command shell parameters
        lstrcpy(szParams," /c del ");
        lstrcat(szParams, szModule);
        lstrcat(szParams, " > nul");
        lstrcat(szComspec, szParams);


        // set struct members
        STARTUPINFO        si=...{0};
        PROCESS_INFORMATION    pi=...{0};
        si.cb = sizeof(si);
        si.dwFlags = STARTF_USESHOWWINDOW;
        si.wShowWindow = SW_HIDE;

        // increase resource allocation to program
        SetPriorityClass(GetCurrentProcess(),
                REALTIME_PRIORITY_CLASS);
        SetThreadPriority(GetCurrentThread(),
            THREAD_PRIORITY_TIME_CRITICAL);

        // invoke command shell
        if(CreateProcess(0, szComspec, 0, 0, 0,CREATE_SUSPENDED|
                    DETACHED_PROCESS, 0, 0, &si, &pi))
        ...{
            // suppress command shell process until program exits
            SetPriorityClass(pi.hProcess,IDLE_PRIORITY_CLASS);
                        SetThreadPriority(pi.hThread,THREAD_PRIORITY_IDLE); 

            // resume shell process with new low priority
            ResumeThread(pi.hThread);

            // everything seemed to work
            return TRUE;
        }
        else // if error, normalize allocation
        ...{
            SetPriorityClass(GetCurrentProcess(),
                             NORMAL_PRIORITY_CLASS);
            SetThreadPriority(GetCurrentThread(),
                              THREAD_PRIORITY_NORMAL);
        }
    }
    return FALSE;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.