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 함수를 사용하여 프로세스를 강제로 종료합니다. 유의해야 할 점은 이 방법은 해당 프로세스가 관리자 권한으로 실행되는 경우에만 작동하며, 무분별한 다른 프로세스 종료로 인한 시스템 안정성 문제를 초래할 수 있으므로 주의해서 사용해야 합니다.

말레이시아 항공 수하물 규정: 크기 제한 및 대형 수하물 추가 요금 분석

말레이시아 항공 수하물 규정: 크기 제한 및 대형 수하물 추가 요금 분석 말레이시아 항공을 이용하는 승객들은 항공사의 수하물 규정을 철저히 준수해야 합니다. 특히 위탁수하물의 크기와 무게는 항공사에서 정한 기준에 맞춰야 하며, 이를 초과할 경우 추가 ...