질문 : CD를 집어넣으면 동영상 뜨게 하고 싶어염..
답변 : CD삽입후 재빨리 열어서 동영상 클릭하세요.
아무튼 CD 자동실행을 하려면..
간단한 autorun.inf 파일을 만들어서 CD에 넣어버림 그만이다.
그러나!.. 문제가 있었으니... xxx.avi 나 xxx.bmp 이런건 안된다는거...
그럼 무슨 방법이 있을까!?..
간단한 Launcher 만들면 그만이졈..
(but.. How??..)
우리에겐 윈도님께서 허락하신 ShellExecuteEx 라는 축복이 있으니..
이 함수로 실행하면 그만임..호호
그러면 알아서 연결된 응용프로그램으로 실행 가능하졈~
(폴더옵션 파일형식의 동작에 있는거면 다 되지만.. 깊은 내용은 패스~)
축복의 Launcher.c 파일 내용
#includeint APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdParam, int nCmdShow) { HANDLE hInfo; DWORD size, ret; char* file; char path[MAX_PATH]; SHELLEXECUTEINFO sei = {0,}; hInfo = CreateFile("Launcher.dat", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hInfo == INVALID_HANDLE_VALUE) return 0; if ((size = GetFileSize(hInfo, NULL)) == 0) return CloseHandle(hInfo), 0; file = (char*) LocalAlloc(LPTR, size+1); if (!ReadFile(hInfo, file, size, &ret, NULL)) goto fin; if ((DWORD) FindExecutable(file, NULL, path) > 32) { sei.cbSize = sizeof(sei); sei.lpVerb = TEXT("Open"); sei.lpFile = file; sei.nShow = SW_SHOWNORMAL; ShellExecuteEx(&sei); } fin: CloseHandle(hInfo); LocalFree(file); return 0; }
그럼 간략 사용법..
(매번 파일명 바꿔 컴파일 하기 귀찮아서 Launcer.dat 에서 파일명 읽어옴)
실행시키고픈 파일명을 dat 파일에 쓰기~ - autorun.inf 에 Launcher.exe 를 실행하도록 표시
- 3종 파일(inf, dat, Launcher) 을 CD에 넣고, 필요한 파일들 추가
- CD 굽고, 다시 넣어보고 테스트 해보고 끝내기
초 간단한듯..ㅋㅋ (참고 : CD의 아이콘도 넣고싶다면.. Autorun.inf 수정하세염)
첨부파일의 Launcher.exe 는 UPX 압축이며.. 잡다 DLL 디펜던시 없음..!
Launcher.exe
Launcher.dat