10390|20

2

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

如何实现开机自动运行指定的应用程序并全屏显示? [复制链接]

rt 自己写了个程序,想一开机全屏自动运行。
有没有比较详细的说明、操作步骤,刚接触不久,以前一点都没有做过。是用PB自己定制系统吗?如何做?
感谢啊!

最新回复

如果文件不大,可以定制到系统中,但是存在的问题就是如果FW不更新,这个程序和相应的DLL也不能更新, 添加到FW的方法是通过BIB文件实现,可以参照platform.bib来写,比如: regedit.exe        $(_FLATRELEASEDIR)\regedit.exe         NK         U 默认是放到windows目录下的,如果想再放到其它目录可以通过platform.dat来设置,但是存储到其它路径会浪费额外的RAM空间。  详情 回复 发表于 2009-9-7 17:36
点赞 关注

回复
举报

2

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这只是一个简单的应用程序,用eVC编写程序,
可以找VC下的例子来做参考!
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我很久不做这个了,说的可能不太准确
开机运行应该在注册表中加。
Pocket PC提供了一个SHFullScreen函数,具体你在查一下吧
PB是用来定制系统的。

 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 
估计你的应用要自己定制shell,可能更合适,可惜我现在还不会 呵呵
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
如果是定制系统,则替代Explorer的启动项改为你的应用程序即可
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

6
 
你需要修改注册表,网上有很多人有详细的步骤。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 
[HKEY_LOCAL_MACHINE\Init]
  "Launch50"="XXX.exe"
  "Depend50"=hex:14,00,1e,00
添加上边内容到platform.reg就可以了,这个50本来是explorer.exe,用xxx.exe替换掉开机的时候就直接启动这个xxx.exe,并且因为没有explorer.exe下边就不会出现任务栏,是否全屏就再看你的应用程序代码了,通常没有特别约束的话就是全屏的。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 veabol 的回复:
[HKEY_LOCAL_MACHINE\Init]
? "Launch50"="XXX.exe"
? "Depend50"=hex:14,00,1e,00
添加上边内容到platform.reg就可以了,这个50本来是explorer.exe,用xxx.exe替换掉开机的时候就直接启动这个xxx.exe,并且因为没有explorer.exe下边就不会出现任务栏,是否全屏就再看你的应用程序代码了,通常没有特别约束的话就是全屏的。

这是其中的一种方法
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

9
 
应用程序可以用EVC或VS写。
开机运行的方法很多。
1、改注册表,前面几位都说过了。
2、建一个快捷方式,
  在DAT文件中加入Directory("WINDOWS\STARTUP"):-File("test.lnk","\windows\test.lnk")
    把快捷方式test.lnk烧入系统
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

10
 
这个以前搞过好一阵子,只有修改public下面的代码才是最好的解决,
其它多少都有一些问题,网上現在好象哪位兄弟的博客有讲到怎样修改
自己可以google一下
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

11
 
刚才看了一下以前的笔記,
你需要在explore.exe启动后就隐藏了桌面,然后在explore.exe启动后,
才运行你的自己的全屏程序,这可以通过在
[HKEY_LOCAL_MACHINE\Init]
  "Launch50"="XXX.exe"
  "Depend50"=hex:14,00,1e,00
上增加自己程序的启动项就OK了。

Desktop.cpp中BOOL CDesktopWnd::Create()有如下语句:
SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXVIRTUALSCREEN),
GetSystemMetrics(SM_CYVIRTUALSCREEN));
// create the desktop's view window (no need to AddRef since CreateViewWindow
// does it)
    hr = _psv->CreateViewWindow(NULL,  &fs, (IShellBrowser *)this, &rc, &_hWnd);

SetRect()就是用来设置桌面显示的位置的,从而只要把第三个参数修改成为
GetSystemMetrics(SM_CYVIRTUALSCREEN)应该就可以实现桌面的隐藏!

 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 10 楼 linhanlao 的回复:
刚才看了一下以前的笔記,
你需要在explore.exe启动后就隐藏了桌面,然后在explore.exe启动后,
才运行你的自己的全屏程序,这可以通过在
[HKEY_LOCAL_MACHINE\Init]
? "Launch50"="XXX.exe"
? "Depend50"=hex:14,00,1e,00
上增加自己程序的启动项就OK了。

Desktop.cpp中BOOL CDesktopWnd::Create()有如下语句:
SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXVIRTUALSCREEN),
GetSystemMetrics(SM_CYVIRTUALSCREEN));
// create the desktop's view window (no need to AddRef since CreateViewWindow
// does it)
? ? hr = _psv->CreateViewWindow(NULL,? &fs, (IShellBrowser *)this, &rc, &_hWnd);

SetRect()就是用来设置桌面显示的位置的,从而只要把第三个参数修改成为
GetSystemMetrics(SM_CYVIRTUALSCREEN)应该就可以实现桌面的隐藏!



这个没试过,学习了
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

13
 
你要不要之前的桌面呢?就是自带的explorer.exe
如果不要 是全新的界面的话,那么把你的My.exe直接改名字为explorer.exe,然后放在release目录下,再make image就可以了
-----
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

14
 
  1. #include "stdafx.h"

  2. int WINAPI WinMain(        HINSTANCE hInstance,
  3.                                         HINSTANCE hPrevInstance,
  4.                                         LPTSTR    lpCmdLine,
  5.                                         int       nCmdShow)
  6. {
  7.         // TODO: Place code here.

  8.         lpCmdLine=TEXT("[color=#FF0000]\\Storage Card\\my.exe[/color]");
  9.         WIN32_FIND_DATA fd;
  10.         HANDLE hd=INVALID_HANDLE_VALUE;
  11.         int iCount = 20;
  12.         while(iCount--)
  13.         {
  14.                 hd=::FindFirstFile(lpCmdLine,&fd);
  15.                 Sleep(500);
  16.                 if(INVALID_HANDLE_VALUE!=hd) break;
  17.         }
  18.         if(0==iCount) return 0;
  19.         FindClose(hd);
  20.         SHELLEXECUTEINFO ShExeInfo={0};
  21.         ShExeInfo.cbSize=sizeof(SHELLEXECUTEINFO);
  22.         ShExeInfo.fMask=SEE_MASK_NOCLOSEPROCESS;
  23.         ShExeInfo.hwnd=NULL;
  24.         ShExeInfo.lpVerb=NULL;

  25.         ShExeInfo.lpFile=lpCmdLine;
  26.         ShExeInfo.lpParameters=L"open";
  27.         ShExeInfo.lpDirectory=NULL;
  28.         ShExeInfo.nShow=SW_SHOW;
  29.         ShExeInfo.hInstApp=NULL;

  30.         ShellExecuteEx(&ShExeInfo);



  31.         return 0;
  32. }

复制代码

上面是一个叫做A.exe的程序,然后在做一个快捷方式放在启动目录下(定制在.dat里面),然后开机启动这个a.exe程序,然后,A.exe执行my.exe
如果要更新你的程序只要把新程序放在storage card里面就可以 了


---------
这个是不替换原来的sheel的情况
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

15
 
今天发疯,敲了这么多
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

16
 
trueman,我要去试试你说的这个,哈
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

17
 
谢谢大家的回复 这两天没上网 我会尽快试试 尽快结贴
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

18
 
引用 6 楼 veabol 的回复:
[HKEY_LOCAL_MACHINE\Init]
? "Launch50"="XXX.exe"
? "Depend50"=hex:14,00,1e,00
添加上边内容到platform.reg就可以了,这个50本来是explorer.exe,用xxx.exe替换掉开机的时候就直接启动这个xxx.exe,并且因为没有explorer.exe下边就不会出现任务栏,是否全屏就再看你的应用程序代码了,通常没有特别约束的话就是全屏的。

建议用这种方法,不主张修改PUBLICK的东西
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

19
 
不错,不错
都很热心
我也觉得用这种方法好
[HKEY_LOCAL_MACHINE\Init]
  "Launch50"="XXX.exe"
  "Depend50"=hex:14,00,1e,00
添加上边内容到platform.reg就可以了,这个50本来是explorer.exe,用xxx.exe替换掉开机的时候就直接启动这个xxx.exe,并且因为没有explorer.exe下边就不会出现任务栏,是否全屏就再看你的应用程序代码了,通常没有特别约束的话就是全屏的。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

20
 
弱问一句,我想自动启动的xxx.exe程序和所需的dll文件,需要怎么添加到定制的系统中啊?还是系统定制完了后,再copy进去?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表