WinCE 응용 프로그램 이 자동 으로 실행 되 는 또 다른 방법 (flash, U 디스크, SD 카드 모두 가능) - 전재
최근 개발 과정 에서 WinCE 응용 프로그램 이 켜 져 자동 으로 실행 되 는 문제 에 부 딪 혀 인터넷 에서 찾 아 보 니 다음 과 같은 세 가지 방법 이 있 었 다.
1. 이미지 에 프로그램 과 프로그램 단축 키 를 추가 하고 StartUp 디 렉 터 리 에 단축 키 를 추가 하면 시스템 이 실 행 된 후에 프로그램 이 자동 으로 실 행 됩 니 다.2. Wince 의 SHELL 을 직접 교체 합 니 다. 즉, 레 지 스 트 를 수정 합 니 다.
[HKEY_LOCAL_MACHINE/init]"Launch50"="explorer.exe""Depend50"=hex:14,00, 1e,00
이 explorer. exe 를 응용 프로그램 으로 바 꿉 니 다 (예: MyApp. exe).3. 이미지 에 프로그램 을 추가 하고 레 지 스 트 를 수정 합 니 다.
[HKEY_LOCAL_MACHINE/init]"Launch80"="MyApp.exe""Depend80"=hex:1E,00
시작 순서 와 의존 프로그램 을 설정 할 수 있 습 니 다.
상기 방법 은 모두 가능 하지만 문제 가 존재 합 니 다. 바로 응용 프로그램 이 NK 에 통합 되 었 다 는 것 입 니 다. 즉, 업그레이드 할 때마다 응용 프로그램 이 커 널 을 다시 컴 파일 하고 다운로드 하 는 것 이 번 거 롭 습 니 다. 특히 프로그램 디 버 깅 단계 에 서 는 응용 프로그램 을 SD 카드 에 두 기 를 원 합 니 다. 이렇게 하면 업데이트 가 비교적 쉽 습 니 다.세 번 째 방법 을 통 해 'Launch 80' = 'MyApp. exe' 를 'Launch 80' = '/STdcard/MyApp. exe' (stdCard 는 SD 카드 디 렉 터 리) 로 수정 할 수 있다 고 하 는데 성공 하지 못 했 습 니 다. Launch 80 이 실 행 될 때 SD 카드 의 파일 구동 이 불 러 오지 않 아 MyApp. exe 파일 을 찾 을 수 없 었 기 때 문 입 니 다.SD 카드 에 있 는 프로그램 을 바로 불 러 오 는 것 도 불가능 하 다.그래서 저 는 다른 방법 을 사 용 했 습 니 다. 예 를 들 어 ShellExe. exe 라 는 작은 프로그램 을 만 들 었 습 니 다. 이 프로그램 을 이미지 에 추가 하고 StartUp 단축 키 를 통 해 ShellExe 를 호출 했 습 니 다. ShellExe 는 SD 카드 의 응용 프로그램 을 호출 했 습 니 다. 구체 적 인 실현 절 차 는 다음 과 같 습 니 다. 1. eVC 에서 다음 과 같은 코드 를 번역 합 니 다.
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
WIN32_FIND_DATA fd;
HANDLE hd=INVALID_HANDLE_VALUE;
int iCount = 20;
while(iCount--)
{
hd=::FindFirstFile(lpCmdLine,&fd);
Sleep(500);
if(INVALID_HANDLE_VALUE!=hd) break;
}
if(0==iCount) return 0;
FindClose(hd);
SHELLEXECUTEINFO ShExeInfo={0};
ShExeInfo.cbSize=sizeof(SHELLEXECUTEINFO);
ShExeInfo.fMask=SEE_MASK_NOCLOSEPROCESS;
ShExeInfo.hwnd=NULL;
ShExeInfo.lpVerb=NULL;
ShExeInfo.lpFile=lpCmdLine;
ShExeInfo.lpParameters=L"";
ShExeInfo.lpDirectory=NULL;
ShExeInfo.nShow=SW_SHOW;
ShExeInfo.hInstApp=NULL;
ShellExecuteEx(&ShExeInfo);
return 0;
}
ShellExe. exe 의 실행 가능 한 파일 을 생 성 합 니 다. 이 코드 의 주요 기능 은 지정 한 프로그램 을 찾 은 다음 에 실행 하 는 것 입 니 다.다음 코드 는 SD 카드 파일 시스템 이 올 바 르 게 불 러 온 후에 야 프로그램 을 실행 할 수 있 습 니 다.while(iCount--)
{
hd=::FindFirstFile(lpCmdLine,&fd);
Sleep(500);
if(INVALID_HANDLE_VALUE!=hd) break;
}
파일 의 이름과 경 로 는 명령 행 매개 변수 에 의 해 지 정 됩 니 다.ShExeInfo.lpFile=lpCmdLine;
2. Autorun. lnk 와 같은 단축 키 를 새로 만 들 고 다음 과 같은 방식 으로 내용 을 편집 합 니 다.
21#/windows/shellexe.exe /stdcard/MyApp.exe
그 중에서/stdcard/MyApp. exe 응용 프로그램의 절대 경로;
3. MyApp. exe 와 Autorun. lnk 를 NK 에 추가 하 는 방법 은 procject. bib 파일 에 다음 과 같은 내용 을 추가 하 는 것 입 니 다.
ShellExe.exe f:/WINCE420/PBWORKSPACES/LioetEnTer/RelDir/ShellExe.exe NK S
Autorun.lnk f:/WINCE420/PBWORKSPACES/LioetEnTer/RelDir/Autorun.lnk NK S
메모: ShellExe. exe 의 속성 은 H (숨 기기) 를 가 져 갈 수 없습니다.
4. procject. dat 에 다음 과 같은 내용 을 추가 합 니 다.
Directory("/Windows/Startup"):-File("Autorun.lnk","/Windows/Autorun.lnk")
5. Make Image 생 성 이미지 (물론 Build 도 괜 찮 습 니 다. 천천히) 를 선택 하여 FLASH 에 태 우 고 켜 서 실행 하면 SD 카드 에 있 는 MyApp. exe 가 올 바 르 게 실 행 된 것 을 볼 수 있 습 니 다.
총결산
이런 방법 은 사용 하기에 비교적 편리 하 다. ShellExe. exe 는 매번 다시 컴 파일 할 필요 가 없다. 응용 프로그램 경로 에 따라 Autorun. lnk 를 수정 하면 플래시, USB, SD 카드 의 응용 프로그램 을 불 러 올 수 있다.디 버 깅 및 업그레이드 프로그램 은 커 널 을 다시 태 울 필요 가 없다.원본 주소:http://blog.csdn.net/lanruoshui/archive/2007/05/23/1622263.aspx
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java/PDF에서 이미지 바꾸기우리 모두 알다시피 PDF는 편집하기 어려운 일종의 문서 형식입니다. 그러나 다른 사람으로부터 PDF 문서를 받을 때 문서의 이미지를 새 이미지로 바꾸는 등 약간의 수정이 필요할 수 있습니다. 이 문서에서는 Java...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.