반응형
MFC에서 외부프로그램 (exe) 파일을 실행하기 위한 예제 정리.
1. CreateProcess
- 함수 원형
BOOL CreateProcess(
LPCWSTR lpApplicationName, // 생성될 프로세스의 이름
LPWSTR lpCommandLine, // 생성될 프로세스에 인자 전달
LPSECURITY_ATTRIBUTES lpProcessAttributes, //프로세스 옵션
LPSECURITY_ATTRIBUTES lpThreadAttributes, //쓰레드 옵션
BOOL bInheritHandles, //TRUE:부모 프로세스 핸들상속
DWORD dwCreationFlags, //생성하는 프로세스의 특성
LPVOID lpEnvironment, //부모프로세스의 환경 블록 복사
LPCWSTR lpCurrentDirectory, //lpCommandLine 사용시 시작 디텍토리
//STARTUPINFO structure
LPSTARTUPINFOW lpStartupInfo,
//PROCESS_INFORMATION structure
LPPROCESS_INFORMATION lpProcessInformation
);
- 예제
STARTUPINFO si;
PROCESS_INFORMATION pi;
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
TCHAR path[MAX_PATH] = _T("C:\\Program Files (x86)\\Kakao\\KakaoTalk\\KakaoTalk.exe");
bool state = CreateProcess(nullptr, path, nullptr, nullptr, FALSE, 0, nullptr, nullptr, &si, &pi);
위의 예제를 실행하면 카카오톡이 실행되는 것을 확인 할 수 있음.
반응형
2.ShellExecute
- 함수원형
HINSTANCE ShellExecute(
HWND hwnd, // 부모 윈도우 handle
LPCWSTR lpOperation, //열기, 탐색, 인쇄, 찾기 등등
LPCWSTR lpFile, // 경로
LPCWSTR lpParameters,
LPCWSTR lpDirectory,
INT nShowCmd //보여주기 옵션
);
- 예제
- 응용프로그램 열기
TCHAR strExeFileName[MAX_PATH] = _T("C:\\Program Files (x86)\\Kakao\\KakaoTalk\\KakaoTalk.exe");
HINSTANCE hErr = ShellExecute(NULL, _T("open"), strExeFileName, NULL, NULL, SW_SHOW);
위의 예제를 실행하면 카카오톡이 실행되는 것을 확인 할 수 있음.
- 크롬 실행
strExeFileName = _T("chrome.exe");
HINSTANCE hErr = ShellExecute(NULL, _T("open"), strExeFileName, _T("http://naver.com"), NULL, SW_SHOW);
크롬으로 네이버가 실행되는 것을 확인 할 수 있음
edit | 편집기 시작, 편집할 문서 열기 |
explore | 폴더 탐색 |
find | 지정된 디텍토리 검색 |
open | 지정된 항목 열기 |
지정된 파일 인쇄 |
반응형
'프레임워크 > MFC' 카테고리의 다른 글
[MFC] RC1015 : cannot open include file 'afxres.h' (0) | 2022.11.22 |
---|---|
[MFC] Progressbar 사용법. (0) | 2022.11.22 |
[MFC] SQLite3연동하기 예제 포함(DB 생성, DB select) (0) | 2022.07.01 |
[MFC] Memory Mapped File (0) | 2022.04.12 |
[MFC] 윈도우 창 및 하단 아이콘 숨기기 (0) | 2022.04.11 |
댓글