kingelvivi
驱动牛犊
驱动牛犊
  • 注册日期2005-09-14
  • 最后登录2009-06-15
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
阅读:1725回复:7

请问CE系统启动时如何自动运行在SD Card里的应用程序?

楼主#
更多 发布于:2007-07-05 13:55


自动运行在SD Card里的应用程序与自动运行系统中的应用程序是不一样的,不需要制定到NK.bin里,并且要先要系统识别了SD Card后,再运行里面的程序。
试过了配置platform.reg或者common.reg,在[HKEY_LOCAL_MACHINE\init]段添加如下内容:
"Launch80"="\SD Card\TestStartUp.exe"
"Depend80"=hex:14,00

发现系统并没有去自动运行应用程序,不知道是什么原因,后来改用快捷方式法,系统尝试自动运行应用程序,但找不到应用程序,估计是因为在SD Card没加载成功时就尝试去运行应用程序,所以找不到。
请各位高手指点一下,如何才能系统启动时自动运行在SD Card里的应用程序。
shaohui99
驱动牛犊
驱动牛犊
  • 注册日期2007-05-15
  • 最后登录2008-06-19
  • 粉丝0
  • 关注0
  • 积分190分
  • 威望30点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-07-05 17:19
可以在Nk.bin中做一个小程序,该小程序循环运行SD卡中的程序,直到成功运行为止,或是超时。然后再注册表中设置自动运行该小程序。伪代码如下
for( int i=0; i<10;i++ )
{
    if( runapp("\\Storage Card\\TestStartUp.exe"))
        break;
    Sleep(100);
}
kingelvivi
驱动牛犊
驱动牛犊
  • 注册日期2005-09-14
  • 最后登录2009-06-15
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-06 09:07
谢谢楼上的指点,只是不知道运行另一个程序的函数是什么啊?
wenzai
驱动中牛
驱动中牛
  • 注册日期2002-04-16
  • 最后登录2011-03-04
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望424点
  • 贡献值0点
  • 好评度309点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-07-06 12:49
CreateProcess()
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-07-06 13:56
设置注册表是可以的,好像你的路径写错了,应该是 \\
运行程序还可以用ShellExecuteEx
比如:
SHELLEXECUTEINFO   shInfo;  
         memset(&shInfo,   0,   sizeof(SHELLEXECUTEINFO));  
         shInfo.cbSize   =   sizeof(SHELLEXECUTEINFO);  
         shInfo.fMask   =   SEE_MASK_NOCLOSEPROCESS;  
         shInfo.lpFile   =   _T("\\SD Memory\\任务管理.exe");   //你要调用的应用程序
         shInfo.lpParameters   = NULL;  
         shInfo.lpDirectory   =   _T("\\SD Memory");            //程序存储的目录
         ShellExecuteEx(&shInfo);
努力! 成功就在不远处....
kingelvivi
驱动牛犊
驱动牛犊
  • 注册日期2005-09-14
  • 最后登录2009-06-15
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-07-06 15:15
已经解决了,和楼上的方法一样,只是没再试注册表自起的方法,还是用快捷方式的方法。
不知道用注册表的方式是否一定要把应用程序制定到NK.bin里,不能只指定路径?
shaohui99
驱动牛犊
驱动牛犊
  • 注册日期2007-05-15
  • 最后登录2008-06-19
  • 粉丝0
  • 关注0
  • 积分190分
  • 威望30点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-07-11 10:02
直接在注册表中指定SD卡中的路径启动不起来的原因是:那个时候SD卡驱动还没有加载,或者SD卡的文件系统还没准备好。所以需要把一个很小的应用程序放在NK.bin中,它作为引子来启动SD卡中的程序。
kingelvivi
驱动牛犊
驱动牛犊
  • 注册日期2005-09-14
  • 最后登录2009-06-15
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-07-13 09:34
楼上说的有道理,但我也曾试过把一个应用程序放在NK.bin中,用修改注册表的方法让这个应用程序自起,但是没有成功,不知道哪里没做对,请成功过的高手们详细指点一二,谢谢!
游客

返回顶部