### WinCE开机自动运行应用程序的三种解决方案 #### 第一种方案:通过系统启动文件夹实现自动启动 在Windows CE操作系统中,可以通过将应用程序放置在系统的启动文件夹(`StartUp`目录)来实现程序开机自动运行的功能。具体操作是将目标应用程序的快捷方式或者可执行文件放入`StartUp`目录下,当系统启动时会自动加载这些文件。 **实施步骤:** 1. **找到或创建StartUp目录:** 需要在注册表编辑器中找到或创建`StartUp`目录,路径为`[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows CE\StartUp]`。 2. **添加应用程序的快捷方式:** 将需要开机启动的应用程序添加到该目录下。例如,可以创建一个指向应用程序的快捷方式,将其路径添加到此目录。 #### 第二种方案:修改WinceSHELL注册表键值 另一种方法是通过修改注册表中的`WinceSHELL`键值来实现开机自动启动指定的应用程序。这种方法更加灵活且可以直接指定要启动的应用程序路径。 **实施步骤:** 1. **定位注册表键值:** 在注册表编辑器中,定位到`[HKEY_LOCAL_MACHINE\init]`。 2. **修改键值:** 将`Launch50`键值设置为需要启动的应用程序路径,例如`Launch50="explorer.exe"`。同时需要修改`Depend50`键值以确保应用程序能够正确加载,示例为`Depend50=hex:14,00,1e,00`。 #### 第三种方案:利用注册表自定义键值启动应用程序 还可以通过注册表中的自定义键值来控制应用程序的自动启动,这种方式更为灵活且适用于需要从特定位置(如SD卡)加载应用程序的情况。 **实施步骤:** 1. **创建自定义键值:** 在注册表编辑器中定位到`[HKEY_LOCAL_MACHINE\init]`,创建新的键值`Launch80`和`Depend80`。 2. **指定应用程序路径:** 将`Launch80`设置为需要启动的应用程序路径,例如`Launch80="MyApp.exe"`。如果应用程序位于SD卡上,则路径应为`Launch80="\\STDCard\MyApp.exe"`。 3. **确保SD卡可用:** 如果应用程序位于SD卡上,需要确保系统启动时SD卡已插入并可被访问。可以编写简单的程序(如ShellExe.exe)来检查SD卡状态,并尝试多次加载应用程序直到成功。 4. **编写ShellExe.exe代码:** 使用以下代码示例编写一个名为`ShellExe.exe`的简单程序,用于检测SD卡上的应用程序是否可用并启动它。 ```cpp 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; } ``` 5. **创建Autorun.lnk文件:** 可以创建一个名为`Autorun.lnk`的快捷方式文件,指向`ShellExe.exe`。例如,创建一个指向`F:\WINCE420\PBWORKSPACES\LioetEnTer\RelDir\ShellExe.exe`的快捷方式,并保存为`Autorun.lnk`。 6. **配置项目文件:** 修改项目文件,例如`project.bib`,确保`ShellExe.exe`和`Autorun.lnk`文件被正确构建和部署。 7. **确保文件正确部署:** 在`project.dat`文件中,确认`Autorun.lnk`文件被正确部署到系统`Startup`目录中,例如通过以下命令:`Directory("\Windows\Startup"):-File("Autorun.lnk","\Windows\Autorun.lnk")`。 8. **构建和部署:** 构建项目并将映像部署到目标设备上。确保设备重启后能正常加载并运行指定的应用程序。 这三种方案提供了在Windows CE系统中实现开机自动运行应用程序的不同方法。根据实际需求选择合适的方案进行实施,可以有效提高系统启动后的自动化程度,减少人工干预的需求。
- wawava2012-05-22网上都搜到的东西,不过还是有点用
- 粉丝: 1
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助