|
引用 4 楼 garyliu1104 的回复:
lz的这种启动,前一段时间做过,主要升级程序方便,把新的程序放在一个文件夹下,开机有的话就运行文件夹下的新程序。没有就运行打包在NK中的程序,源码如下:
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR? ? lpCmdLine,
int? ? ? nCmdShow)
{
// TODO: Place code here.
WIN32_FIND_DATA fd;
LPTSTR sourceFilePath = _T("\\NandFlash\\APPLICATION\\RH701.exe");//文件夹路径与应用程序名称
LPTSTR exitFilePath = _T("\\RH701.exe");
HANDLE hd=INVALID_HANDLE_VALUE;
int iCount = 20;
while(iCount--) //等待加载NANDFLASH 成功
{
hd=::FindFirstFile(_T("\\NandFlash\\*.*"),&fd);
Sleep(100);
if(INVALID_HANDLE_VALUE!=hd) break;
}
FindClose(hd);
hd=::FindFirstFile(sourceFilePath,&fd);
if(hd!=INVALID_HANDLE_VALUE)
{
CopyFile(sourceFilePath,exitFilePath,FALSE);//目标文件已存在则覆盖目标文件
//DeleteFile(sourceFilePath);
}
FindClose(hd);
SHELLEXECUTEINFO ShExeInfo={0};
ShExeInfo.cbSize=sizeof(SHELLEXECUTEINFO);
ShExeInfo.fMask=SEE_MASK_NOCLOSEPROCESS;
ShExeInfo.hwnd=NULL;
ShExeInfo.lpVerb=NULL;
ShExeInfo.lpFile=exitFilePath;
ShExeInfo.lpParameters=L"";
ShExeInfo.lpDirectory=NULL;
ShExeInfo.nShow=SW_SHOW;
ShExeInfo.hInstApp=NULL;
ShellExecuteEx(&ShExeInfo);
return 0;
}
在按楼上方法设置开机自运行该小程序即可。
一直在while循环到nand mount上,对性能有影响吧 |
|