ShellExecute()에서 윈도우 핸들(Window handle)을 저장하는 코드

ShellExecute()에서 윈도우 핸들(Window handle)을 저장하는 코드 

hInst = ShellExecute(NULL, "open", strPath, NULL, NULL, SW_SHOW); 의 코드에서 윈도우 핸들을 저장하는 코드는?

ShellExecute 함수는 새로운 프로세스를 실행하는데 사용되며, 해당 프로세스를 실행한 후 새로 생성된 프로세스의 핸들을 반환하지는 않습니다. 따라서 ShellExecute 함수 자체로는 직접 실행한 프로세스의 핸들을 얻을 수 없습니다.


하지만 ShellExecuteEx 함수를 사용하면 프로세스의 핸들을 얻을 수 있습니다. ShellExecuteEx 함수는 SHELLEXECUTEINFO 구조체를 인자로 받아 해당 프로세스를 실행하고, 그 결과로 새로 생성된 프로세스의 핸들을 얻을 수 있습니다.


다음은 ShellExecuteEx 함수를 사용하여 윈도우 핸들을 얻는 방법의 예시 코드입니다.


#include <Windows.h>

#include <Shellapi.h>


int main()

{

    SHELLEXECUTEINFO info = { sizeof(SHELLEXECUTEINFO) };

    info.lpVerb = _T("open");

    info.lpFile = _T("YOUR_PROGRAM.EXE"); // 실행할 프로그램의 경로

    info.nShow = SW_SHOW;


    if (ShellExecuteEx(&info))

    {

        // 프로세스 실행 성공

        // info.hProcess 변수에 새로 실행된 프로세스의 핸들이 저장됨

        // 이 핸들을 사용하여 해당 프로세스와 상호작용할 수 있음

        HANDLE hProcess = info.hProcess;


        // 프로세스와 상호작용을 위한 추가 로직 작성

        // ...


        // 프로세스 종료

        CloseHandle(hProcess);

    }

    else

    {

        // 프로세스 실행 실패

        // 오류 처리

    }


    return 0;

}

위의 코드에서 info.hProcess 변수에 새로 생성된 프로세스의 핸들이 저장되며, 이를 사용하여 해당 프로세스와 상호작용할 수 있습니다. 주의해야 할 점은, ShellExecuteEx 함수가 프로세스를 실행한 후에는 적절히 해당 프로세스와 상호작용을 처리해야 하며, 마지막에 CloseHandle 함수를 사용하여 프로세스 핸들을 닫아야 합니다.

위탁 수하물 무게 규정에 대한 상세 설명

위탁 수하물 무게 규정에 대한 상세 설명 위탁 수하물 무게 규정이란? 항공 여행 시 위탁 수하물(기내에 직접 가지고 타지 않고 비행기 화물칸에 실리는 짐)의 무게를 제한하는 규정입니다. 일반적으로 항공권 종류, 노선, 항공사에 따라 무료로 부칠 수 있...