mfc에서 프로그램 이름(program name)으로 프로세스 ID 가져오기 소스 코드

mfc에서 프로그램 이름으로 프로세스 ID 가져오기 소스 코드는?

MFC에서 프로그램 이름을 기반으로 프로세스 ID를 가져오려면 Windows API 함수를 사용해야 합니다. 주로 CreateToolhelp32Snapshot 함수와 Process32First, Process32Next 함수를 활용하여 작업할 수 있습니다. 아래는 프로그램 이름으로 프로세스 ID를 가져오는 예시 코드입니다.

#include <afxwin.h>

#include <tlhelp32.h>


DWORD GetProcessIdFromName(const CString& processName)

{

    DWORD processId = 0;


    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

    if (hSnapshot != INVALID_HANDLE_VALUE)

    {

        PROCESSENTRY32 pe32;

        pe32.dwSize = sizeof(PROCESSENTRY32);


        if (Process32First(hSnapshot, &pe32))

        {

            do

            {

                CString szProcessName = pe32.szExeFile;

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

                {

                    processId = pe32.th32ProcessID;

                    break;

                }

            } while (Process32Next(hSnapshot, &pe32));

        }


        CloseHandle(hSnapshot);

    }


    return processId;

}


int main()

{

    CString targetProcessName = _T("YourProcess.exe"); // 타겟 프로세스 이름


    DWORD processId = GetProcessIdFromName(targetProcessName);

    if (processId != 0)

    {

        AfxMessageBox(_T("프로세스 ID를 찾았습니다: ") + CString(std::to_wstring(processId).c_str()));

    }

    else

    {

        AfxMessageBox(_T("프로세스를 찾지 못했습니다."));

    }


    return 0;

}

위의 코드에서 GetProcessIdFromName 함수는 지정한 프로그램 이름을 가진 프로세스의 ID를 가져옵니다. CreateToolhelp32Snapshot 함수로 현재 실행 중인 프로세스의 정보를 스냅샷으로 만들고, Process32First와 Process32Next 함수를 사용하여 스냅샷에서 프로세스를 하나씩 순회하면서 프로세스 이름을 확인합니다. 목표 프로세스를 찾으면 해당 프로세스의 ID를 반환합니다.

주의할 점은 위의 코드는 프로그램 이름으로 하나의 프로세스 ID만을 가져오는 예시이므로, 만약 중복된 프로세스 이름이 있다면 여러 개의 프로세스 ID를 가져올 수 있습니다. 이 경우 추가적인 로직을 추가하여 원하는 프로세스를 구분하거나 다양한 프로세스를 처리할 수 있도록 개선해야 합니다.

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

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