wince6.0开机自启动应用程序
1、在VS2005下建立一個Win32智能設備項目,取名為ShellExe,編譯如下代碼:
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、 新建一個快捷方式
新建一個文本文檔,內容為:42#/Windows/ShellExe.exe /NandFlash/MyApp.exe,保存后,更改文件名為Autorun.lnk。其中/NandFlash/MyApp.exe應用程序的絕對路徑。
3、將快捷方式Autorun.lnk添加到自啟動目錄
在AT91SAM9263EK_ARMV4I_Release下的 project.dat里加入如下內容:
Directory("/Windows/啟動"):-File("Autorun.lnk","/Windows/Autorun.lnk")
?
4、選擇Make Run-time Image生成映像XIP.nb0,然后將前兩步得到的ShellExe.exe和Autorun.lnk拷貝到C:/WINCE600/OSDESIGNS/sam9263/sam9263/RelDir/AT91SAM9263EK_ARMV4I_Release目錄下。
?
5、將MyApp.exe和Autorun.lnk添加到NK里,方法是在ce..bib文件的Files模塊下加入如下內容:
ShellExe.exe ?C:/WINCE600/OSDESIGNS/sam9263/sam9263/RelDir/AT91SAM9263EK_ARMV4I_Release/ShellExe.exe? NK S
Autorun.lnk ?C:/WINCE600/OSDESIGNS/sam9263/sam9263/RelDir/AT91SAM9263EK_ARMV4I_Release/Autorun.lnk?? NK S
注意:ShellExe.exe的屬性S表示系統文件。
?
6、生成XIPKERNEL.nb0文件
???修改ce.bib文件,在MEMORY處,把RAM的配置改成RAM 8039e000 03862000 RAM。
在vs2005下執行“生成”--》“Open Release Directory in Build Window”,在命令提示符下執行romimage ce.bib,可生成XIPKERNEL.bin。
在提示符下執行viewbin -r XIPKERNEL.bin,可顯示該XIPKERNEL.bin文件的起始位置和長度。
在提示符下執行cvrtbin -a 0x起始位置 -l 0x長度 -w 32 -r XIPKERNEL.BIN,此步驟執行后生成XIPKERNEL.nb0。
燒寫xip.nb0和xipkernel.nb0到板子,然后把應用程序放到NandFlash目錄下,改名為MyApp.exe,然后重啟就可看到應用程序自動運行了。
7、總結
這種方法用起來比較方便,ShellExe.exe不用每次都重新編譯,只要根據應用程序路徑修改Autorun.lnk即可,可以加載Flash、U盤、SD卡里的應用程序。調試及升級應用程序就不用重新燒寫內核了。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的wince6.0开机自启动应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云闪付转账成功怎样追回?转错了还能撤回吗
- 下一篇: 如何利用计算机实现非线性转换,2013《