5700|8

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wceload.exe 后台安装 CAB 文件 [复制链接]

        平台:WinCE>NET4.2 开发平台EVC4.2
        目的: 运行 wceload.exe打开SD卡里面的Main.CAB自动安装文件,而且是在后台安装,就是不是显示有关安装信息.
         结果: 我实验的时候wceload.exe是运行了,但是Main.CAB没有打开。
         代码如下:请高手指点,错在哪里?
                  SHELLEXECUTEINFO sei;
                ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));
                sei.cbSize = sizeof(SHELLEXECUTEINFO);
                sei.fMask  = SEE_MASK_NOCLOSEPROCESS;  
                sei.lpVerb = NULL/*_T("Open")*/;
                sei.lpFile =L"\\Windows\\wceload.exe" ;
                sei.lpParameters=L"\\SDMMC DISK\\Main.CAB";
                sei.nShow = SW_HIDE/*SW_SHOW*/;
                ShellExecuteEx(&sei);

        还有个方法 createprocess 会的朋友也请指点一二.

最新回复

http://forums.microsoft.com/msdn/ShowPost.aspx?postid=2274971&siteid=1  详情 回复 发表于 2007-10-16 15:37
点赞 关注

回复
举报

83

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
首先你要检查CAB是否能正确安装。

What kind of platform are you running on? If it's a WM 5.0 or Smartphone device. Use:

wceload.exe "cabfile.cab" /silent

/noask /noui is for Pocket PC 2003 and older....Notice that "silent" is in placed in the end....

Does this help you?
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
1 关于CAB是否能正确安装
在Wince.Net4.2 里面 用手动 双击 Main.CAB 是可以已运行的.

2 Wince.Net4.2 的命令行 (RUN )输入
  wceload.exe \SDMMC DISK\Main.CAB
弹出提示是 标题"NO .CAB Files To Install" 内容"Please specify a .cab file or double tap a.cab file to install the application "


另外我也试验了

STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &pi, sizeof(pi) );
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
CreateProcess(L"\\Windows\\wceload.exe",L"\\SDMMC DISK\\Main.CAB", NULL,
NULL, FALSE, 0, NULL, NULL, &si, &pi);

也不行.
我的目的是让CAB文件在后台安装,但是首先第一步安装就没通过,
至于参数是 /silent 还是/noask /noui ,那是第二步 要研究的事情了.


http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=143783&SiteID=1
上面的其它的回复,我也正在试验


 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 
                SHELLEXECUTEINFO sei;
                ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));
                sei.cbSize = sizeof(SHELLEXECUTEINFO);
                sei.fMask  = SEE_MASK_NOCLOSEPROCESS;  
                sei.lpVerb = _T("Open");
                sei.lpFile =L"\\SDMMC DISK\\Main.CAB";
                sei.lpParameters=L"\\Windows\\wceload.exe";
                sei.nShow = SW_HIDE;
                ShellExecuteEx(&sei);

这段代码 已经可以运行了,原来把路径搞反了.
接下来研究怎么在后台运行.
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

5
 
                SHELLEXECUTEINFO sei;
                ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));
                sei.cbSize = sizeof(SHELLEXECUTEINFO);
                sei.fMask  = SEE_MASK_NOCLOSEPROCESS;  
                sei.lpVerb = _T("Open");
                sei.lpFile=L"\\SDMMC DISK\\Main.CAB";
                sei.nShow = SW_HIDE;
                ShellExecuteEx(&sei);
可能CAB单独也是能运行的.

但是改成下面的2个就是不行
                  SHELLEXECUTEINFO sei;
                ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));
                sei.cbSize = sizeof(SHELLEXECUTEINFO);
                sei.fMask  = SEE_MASK_NOCLOSEPROCESS;  
                sei.lpVerb = _T("Open");
                sei.lpFile =L"\\Windows\\wceload.exe";
                sei.lpParameters=L"\\SDMMC DISK\\Main.CAB";
                sei.nShow = SW_HIDE;
                ShellExecuteEx(&sei);

或者
                         PROCESS_INFORMATION pi;
                ZeroMemory( &pi, sizeof(pi));
                CreateProcess(TEXT("\\Windows\\wceload.exe"),TEXT("\\SDMMC DISK\\Main.CAB"), NULL, NULL, FALSE, 0, NULL, NULL,NULL, &pi);

就是不行,也不知道为什么.


另外我查到
//wceload [ /noaskdest | /askdest ] [ /delete | /noui | /nouninstall ]

同时关于命令行运行
1把Main.CAB 从SD卡拷贝到当前目录
2 Wince.Net4.2 的命令行 (RUN )输入
  wceload.exe Main.CAB  
3 是可以运行的
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
不知道 在windows PB4.2,PB5.0,PB6.0 哪个目录里面有 wceload.exe的源代码,想研究一下为什么.
如果有高人知道路径,或者找到源代码,请赐教.
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

7
 
[HKEY_CLASSES_ROOT\.cab]
@="cabfile"

[HKEY_CLASSES_ROOT\cabfile]
@="CAB File"

[HKEY_CLASSES_ROOT\cabfile\DefaultIcon]
@="\\Windows\\wceload.exe,-101"

[HKEY_CLASSES_ROOT\cabfile\Shell\Open\Command]
@="\\Windows\\wceload.exe \"%1\""

[HKEY_LOCAL_MACHINE\Software\Apps\Microsoft Application Installer]
"fAskOptions"=dword:0
"fAskDest"=dword:1
"nDynamicDelete"=dword:2

这是PB里面跟这个wceload.exe 相关系的注册表不知道 是否有异常的地方?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 
成功安装CAB文件了,下一步解决后台安装问题


                  SHELLEXECUTEINFO sei;
                ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));
                sei.cbSize = sizeof(SHELLEXECUTEINFO);
                sei.fMask  = SEE_MASK_NOCLOSEPROCESS;  
                sei.lpVerb = _T("Open");
                sei.lpFile =L"\\Windows\\wceload.exe";
                sei.lpParameters=L"/noaskdest /noui \"\\SDMMC DISK\\2577\\5300.CAB\"";            
                sei.nShow = SW_HIDE;
                ShellExecuteEx(&sei);

或者

PROCESS_INFORMATION pi;
                ZeroMemory( &pi, sizeof(pi));
                CreateProcess(L"\\Windows\\wceload.exe",L"/noaskdest /noui \"\\SDMMC DISK\\2577\\5300.CAB\"", NULL,
                      NULL, FALSE, 0, NULL, NULL,NULL, &pi);

 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

9
 
http://forums.microsoft.com/msdn/ShowPost.aspx?postid=2274971&siteid=1
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表