MFC 윈도우 프로그램(Windows program)에서 다른 프로그램 강제 종료(Terminated)하는 소스 코드

MFC 윈도우 프로그램에서 다른 프로그램 강제 종료하는 소스 코드는?

MFC 윈도우 프로그램에서 다른 프로그램을 강제로 종료하려면, 프로세스를 식별하고 프로세스를 종료하는 방법을 사용해야 합니다. 프로세스를 식별하기 위해서는 주로 프로세스 이름, 윈도우 제목 또는 프로세스 ID를 사용합니다. 아래는 프로세스 이름을 기반으로 다른 프로그램을 강제 종료하는 MFC 소스 코드의 예시입니다.

#include <afxwin.h>

#include <psapi.h>


BOOL TerminateProcessByName(const CString& processName)

{

    DWORD processIds[1024], cbNeeded, cProcesses;

    unsigned int i;


    if (!EnumProcesses(processIds, sizeof(processIds), &cbNeeded))

        return FALSE;


    cProcesses = cbNeeded / sizeof(DWORD);


    for (i = 0; i < cProcesses; i++)

    {

        if (processIds[i] != 0)

        {

            HANDLE hProcess = OpenProcess(PROCESS_TERMINATE | PROCESS_QUERY_INFORMATION, FALSE, processIds[i]);

            if (hProcess)

            {

                HMODULE hMod;

                DWORD cbNeeded;


                if (EnumProcessModules(hProcess, &hMod, sizeof(hMod), &cbNeeded))

                {

                    TCHAR szProcessName[MAX_PATH];

                    if (GetModuleBaseName(hProcess, hMod, szProcessName, sizeof(szProcessName) / sizeof(TCHAR)))

                    {

                        CString strProcessName = szProcessName;


                        if (strProcessName.CompareNoCase(processName) == 0)

                        {

                            // 프로세스를 강제 종료합니다.

                            TerminateProcess(hProcess, 0);


                            CloseHandle(hProcess);

                            return TRUE;

                        }

                    }

                }

                CloseHandle(hProcess);

            }

        }

    }


    return FALSE;

}


int main()

{

    CString processNameToTerminate = _T("YourProcess.exe"); // 종료할 프로세스 이름


    if (TerminateProcessByName(processNameToTerminate))

    {

        AfxMessageBox(_T("프로세스가 성공적으로 종료되었습니다."));

    }

    else

    {

        AfxMessageBox(_T("프로세스를 종료하는데 실패했습니다."));

    }


    return 0;

}

위의 코드는 TerminateProcessByName 함수를 통해 지정한 프로세스 이름을 가진 프로세스를 종료하는 방법을 보여줍니다. 프로세스 이름을 기반으로 프로세스를 찾아 TerminateProcess 함수를 사용하여 프로세스를 강제로 종료합니다. 유의해야 할 점은 이 방법은 해당 프로세스가 관리자 권한으로 실행되는 경우에만 작동하며, 무분별한 다른 프로세스 종료로 인한 시스템 안정성 문제를 초래할 수 있으므로 주의해서 사용해야 합니다.

태풍 풀라산(PULASAN) 영향과 이동 경로

태풍 풀라산(PULASAN) 영향과 이동 경로 태풍 풀라산(PULASAN)은 현재 한반도에 큰 영향을 미치고 있습니다. 이 태풍은 강력한 비와 바람을 동반하며, 여러 기상 변화와 위험을 초래할 것으로 예상됩니다. 1. 태풍의 한반도 영향 태풍 풀...