WinCE5.0应用程序开机自动启动
网上有很多关于这个题目的文章,不外乎一个版本:大致有三种方法,云云。我参考了大家的办法,最后找到一个最简单的办法,不用PB之类的修改,只要修改注册表。对于WinCE5.0来说,实现开机启动任何应用程序,按照如下办法修改注册表: 一、原始注册表如下: [HKEY_LOCAL_MACHINE/init]
"Depend30"=hex:14,00 "Launch50"="explorer.exe" "Depend60"=hex:14,00 二、欲启动的应用程序的带目录名:flashshellrun.exe。修改后的注册表: [HKEY_LOCAL_MACHINE/init]
"Depend30"=hex:14,00
"Launch80"="flashshellrun.exe" "Depend80"=hex:14,00 [HKEY_LOCAL_MACHINE/init] "Depend30"=hex:14,00 "Launch60"="services.exe" "Launch80"="flashshellrun.exe" "Depend80"=hex:14,00 四、避免黑屏的风险,可以从shellrun.exe这个应用程序启动壳子想办法。其源文件如下: #include "stdafx.h" #include <windows.h> #include <commctrl.h> int _tmain(int argc,_TCHAR* argv[]) { WIN32_FIND_DATA fd; HANDLE hd=INVALID_HANDLE_VALUE; LPCTSTR lpCmdLine = L"Storage Cardmyapp.exe"; int iCount = 20;? while(iCount--)? {? hd=::FindFirstFile(lpCmdLine,&fd);? Sleep(500);? if(INVALID_HANDLE_VALUE!=hd) break;? }? if(INVALID_HANDLE_VALUE ==hd) lpCmdLine = L"explorer.exe"; 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; } 这样,如果启动壳子程序失败,将直接加载文件管理器,避免黑屏。哈哈!一切搞定。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |