⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 制作wince平台下pocket pc安装程序 - 实业兴国 实干报国 - csdnblog.htm

📁 制作WinCE平台下Pocket PC安装程序 - 实业兴国 实干报国
💻 HTM
📖 第 1 页 / 共 3 页
字号:
color=#0000ff>/*************************************************************************<BR>** 
文件名:&nbsp;&nbsp; SetUp.cpp<BR>** 主要类:&nbsp;&nbsp; SetUp.cpp<BR>**&nbsp; <BR>** 
Copyright (c) <BR>** 创建人:&nbsp;&nbsp; Liu_sir<BR>** 日&nbsp; 期:&nbsp;&nbsp; 
2004-07-29<BR>** 修改人:&nbsp; <BR>** 日&nbsp; 期:<BR>** 描&nbsp; 述:&nbsp;&nbsp; 
安装PDA应用程序 Pocket PC (注意:根目录下必须有setup.ini文件)<BR>**<BR>×× 主要步骤: 
(1)确认条件<BR>**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(2)取自身的路径,并取ini路径<BR>**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(3)取CEAppMgr.exe的全路径<BR>**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(4)开始安装<BR>**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(5)退出 <BR>**<BR>** 版&nbsp; 本:&nbsp;&nbsp; 1.0.0<BR>** 备&nbsp; 注:&nbsp;&nbsp; 
各个组件命名以及代码编写符合C++编码规范<BR>**<BR>&nbsp;* 
***********************************************************************/<BR>#include 
&lt;windows.h&gt; <BR>#include &lt;stdlib.h&gt; <BR>#include &lt;malloc.h&gt; 
<BR>#include &lt;memory.h&gt; <BR>#include &lt;tchar.h&gt; <BR>#include 
&lt;shellapi.h&gt; <BR>#include &lt;stdio.h&gt;</FONT></FONT></P>
<P><FONT face=宋体 color=#0000ff size=4>int APIENTRY WinMain(HINSTANCE hInstance, 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HINSTANCE hPrevInstance, 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LPSTR lpCmdLine, 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nCmdShow) <BR>{ 
<BR>&nbsp;//1.确认条件<BR>&nbsp;if(MessageBox(NULL,(LPCTSTR)_T("安装前请确认:\r\n&nbsp; 
1.已经安装了ActiveSync. \r\n&nbsp; 2.PDA连接到PC上. 
\r\n上述条件满足吗?"),(LPCTSTR)_T("询问条件"),MB_YESNO|MB_ICONQUESTION)!=IDYES)<BR>&nbsp;{<BR>&nbsp;&nbsp;return 
0;//不满足条件,退出<BR>&nbsp;}<BR>&nbsp;//2.取自身的路径 <BR>&nbsp;TCHAR szPath[MAX_PATH]; 
<BR>&nbsp;GetModuleFileName(NULL, szPath, MAX_PATH-1); <BR>&nbsp;TCHAR 
tmpPath[MAX_PATH];<BR>&nbsp;//转换成ini文件名 <BR>#if _UNICODE<BR>&nbsp;int iLen = 
wcslen(szPath);//&nbsp; <BR>#else<BR>&nbsp;&nbsp;&nbsp; int iLen = 
strlen(szPath);<BR>#endif</FONT></P>
<P><FONT face=宋体 color=#0000ff size=4>#if 
_UNICODE<BR>&nbsp;wcscpy(&amp;szPath[iLen-3], 
_T("ini"));<BR>&nbsp;wsprintf(tmpPath,_T("\"%s\""),szPath);//注意加"号<BR>&nbsp;wcscpy(szPath,tmpPath);<BR>#else<BR>&nbsp;strcpy(&amp;szPath[iLen-3], 
_T("ini"));<BR>&nbsp;sprintf(tmpPath,_T("\"%s\""),szPath);<BR>&nbsp;strcpy(szPath,tmpPath);<BR>#endif</FONT></P>
<P><FONT face=宋体 color=#0000ff size=4>&nbsp;//3.取CEAppMgr.exe的全路径 <BR>&nbsp;HKEY 
hResult; <BR>&nbsp;TCHAR 
szCEAppMgr[]=_T("software\\Microsoft\\Windows\\CurrentVersion\\App 
Paths\\CEAppMgr.exe"); <BR>&nbsp;LONG iRet=RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
szCEAppMgr, NULL, KEY_READ, &amp;hResult); <BR>&nbsp;BYTE 
szCEAppMgrExe[MAX_PATH*2+1]; <BR>&nbsp;if(iRet==ERROR_SUCCESS) <BR>&nbsp;{ 
<BR>&nbsp;&nbsp;DWORD cbName, dwType; <BR>&nbsp;&nbsp;cbName = MAX_PATH; 
<BR>&nbsp;&nbsp;dwType = REG_SZ; <BR>&nbsp;&nbsp;iRet = RegQueryValueEx(hResult, 
NULL, NULL, &amp;dwType, szCEAppMgrExe, &amp;cbName); 
<BR>&nbsp;&nbsp;RegCloseKey(hResult); <BR>&nbsp;} <BR>&nbsp;if 
(iRet!=ERROR_SUCCESS) <BR>&nbsp;{ <BR>&nbsp;&nbsp;MessageBox(NULL, 
_T("请先安装Microsoft ActiveSync软件!"), _T("错误"), MB_ICONERROR); 
<BR>&nbsp;&nbsp;return 1; <BR>&nbsp;} <BR>&nbsp;TCHAR szExe[MAX_PATH*2+2]; 
<BR>#if _UNICODE<BR>&nbsp;wcscpy(szExe,(TCHAR*)szCEAppMgrExe); 
<BR>#else<BR>&nbsp;&nbsp;&nbsp; strcpy(szExe, (char 
*)szCEAppMgrExe);<BR>#endif</FONT></P>
<P><FONT face=宋体 color=#0000ff size=4>&nbsp;//4.开始安装 <BR>&nbsp;SHELLEXECUTEINFO 
ExecInfo ; <BR>&nbsp;memset((TCHAR *)&amp;ExecInfo, 0, sizeof(ExecInfo)); 
<BR>&nbsp;ExecInfo.cbSize = sizeof(ExecInfo); <BR>&nbsp;ExecInfo.hwnd = NULL; 
<BR>&nbsp;ExecInfo.lpDirectory = NULL;<BR>&nbsp;ExecInfo.hInstApp = 
hInstance;<BR>&nbsp;ExecInfo.lpVerb = _T("open");</FONT></P>
<P><FONT face=宋体 color=#0000ff size=4>&nbsp;ExecInfo.lpFile = szExe; 
<BR>&nbsp;ExecInfo.lpParameters = szPath; <BR>&nbsp;ExecInfo.nShow = SW_SHOW; 
</FONT></P>
<P><BR><FONT face=宋体 size=4><FONT 
color=#0000ff>&nbsp;::ShellExecuteEx(&amp;ExecInfo); <BR>&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;//5.退出程序<BR>&nbsp;return 0; <BR>} 
<BR></FONT>主要就是调用CEAppMgr.exe,然后把SetUp.ini传递给它。</FONT></P>
<P><FONT face=宋体 
size=4>3.Setup.ini文件内容:<BR>&nbsp;假设你的程序名称为PocketApp_PPC,那么应该编写如下:<BR><FONT 
color=#0000ff>[CEAppManager]<BR>Version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 
1.0<BR>Component&nbsp;&nbsp;&nbsp; = App</FONT></FONT></P>
<P><FONT face=宋体 size=4><FONT color=#0000ff>[App]<BR>Description&nbsp; = Sample 
Pocket PC application.<BR>CabFiles&nbsp;&nbsp;&nbsp;&nbsp; = <BR>&nbsp; 
PocketApp_PPC.X86.CAB,PocketApp_PPC.ARM.CAB,PocketApp_PPC.ARMV4.CAB,<BR>&nbsp; 
PocketApp_PPC.MIPS.CAB,PocketApp_PPC.SH3.CAB,PocketApp_PPC.WCE420X86.CAB<BR></FONT>4.把编译好的SetUp.exe和SetUp.ini以及你生成的CAB文件,放在同一根目录下点击setup.exe执行就OK啦。</FONT></P>
<P><FONT face=宋体 size=4></FONT>&nbsp;</P><BR><BR>
<P id=TBPingURL>Trackback: 
http://tb.blog.csdn.net/TrackBack.aspx?PostId=302785</P><BR></DIV>
<DIV class=postFoot>
<SCRIPT src=""></SCRIPT>
[<A title=功能强大的网络收藏夹,一秒钟操作就可以轻松实现保存带来的价值、分享带来的快乐 
href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&amp;u='+escape(d.location.href)+'&amp;c='+escape(t),'keyit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();">收藏到我的网摘</A>]&nbsp;&nbsp; 
BackStrokeFish发表于 2005年02月26日 11:23:00 </DIV></DIV><LINK 
href="http://blog.csdn.net/BackStrokeFish/Services/Pingback.aspx" rel=pingback><!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:dc="http://purl.org/dc/elements/1.1/"xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><rdf:Descriptionrdf:about="http://blog.csdn.net/BackStrokeFish/archive/2005/02/26/302785.aspx"dc:identifier="http://blog.csdn.net/BackStrokeFish/archive/2005/02/26/302785.aspx"dc:title="制作WinCE平台下Pocket PC安装程序"trackback:ping="http://tb.blog.csdn.net/TrackBack.aspx?PostId=302785" /></rdf:RDF>-->
<SCRIPT>function hide(){showComment();}</SCRIPT>
<BR><BR><BR>
<DIV class=post id=csdn_zhaig_ad_yahoo></DIV>
<SCRIPT type=text/javascript>document.write("<img src=http://counter.csdn.net/pv.aspx?id=24 border=0 width=0 height=0>");</SCRIPT>
<SPAN class=PreAndNext id=viewpost.ascx_PreviousAndNextEntriesDown>
<DIV align=center><A 
href="http://blog.csdn.net/backstrokefish/archive/2005/04/07/339067.aspx">上一篇:&nbsp;几句箴言</A>&nbsp;|&nbsp;<A 
href="http://blog.csdn.net/backstrokefish/archive/2005/02/25/302104.aspx">下一篇:&nbsp;一个人的奋斗历程 
</A></DIV></SPAN><SPAN id=Anthem_Comments.ascx_ltlComments__><SPAN 
id=Comments.ascx_ltlComments><BR>
<DIV id=comments>
<H3>����</H3>没有评论。 </DIV></SPAN></SPAN>
<SCRIPT language=javascript>
ad_width=468;
ad_height=60;
adcss=2;
unionuser=19;
ad_type='j';
count=5; 
</SCRIPT>

<SCRIPT language=javascript 
src="制作WinCE平台下Pocket PC安装程序 - 实业兴国 实干报国 - CSDNBlog.files/showads.js" 
type=text/javascript></SCRIPT>

<SCRIPT language=javascript 
src="制作WinCE平台下Pocket PC安装程序 - 实业兴国 实干报国 - CSDNBlog.files/showgm.js" 
type=text/javascript></SCRIPT>

<DIV id=commentform>
<DIV id=Anthem_PostComment.ascx_CommentUpdatePanel__>
<DIV id=PostComment.ascx_CommentUpdatePanel>
<TABLE cellSpacing=1 cellPadding=1 border=0>
  <TBODY>
  <TR>
    <TD width=75>大名</TD>
    <TD><INPUT id=PostComment.ascx_tbName style="WIDTH: 300px" disabled 
      maxLength=32 size=40 name=PostComment.ascx:tbName></TD>
    <TD><SPAN id=PostComment.ascx_RequiredFieldValidator2 
      style="VISIBILITY: hidden; COLOR: red" initialvalue="" 
      evaluationfunction="RequiredFieldValidatorEvaluateIsValid" 
      errormessage="请输入名字" 
      controltovalidate="PostComment.ascx_tbName">请输入名字</SPAN></TD></TR>
  <TR>
    <TD>网址</TD>
    <TD><INPUT id=PostComment.ascx_tbUrl style="WIDTH: 300px" disabled 
      maxLength=256 size=40 name=PostComment.ascx:tbUrl></TD>
    <TD></TD></TR>
  <TR>
    <TD colSpan=3>评论&nbsp; <SPAN id=PostComment.ascx_RequiredFieldValidator3 
      style="VISIBILITY: hidden; COLOR: red" initialvalue="" 
      evaluationfunction="RequiredFieldValidatorEvaluateIsValid" 
      errormessage="Please enter a comment" 
      controltovalidate="PostComment.ascx_tbComment">Please enter a 
      comment</SPAN><BR><TEXTAREA id=PostComment.ascx_tbComment style="WIDTH: 400px; HEIGHT: 193px" disabled name=PostComment.ascx:tbComment rows=10 cols=50></TEXTAREA></TD></TR>
  <TR>
    <TD><SPAN id=Anthem_PostComment.ascx_btnSubmit__></SPAN></TD>
    <TD colSpan=2><SPAN id=PostComment.ascx_Message 
      style="COLOR: red">当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击<A 
      href="http://passport.csdn.net/member/UserLogin.aspx?from=http://blog.csdn.net/backstrokefish/archive/2005/02/26/302785.aspx">登录</A></SPAN></TD></TR></TBODY></TABLE></DIV></DIV></DIV></DIV>
<P id=footer>Powered by: <BR><A id=Footer1_Hyperlink2 
href="http://scottwater.com/blog" name=Hyperlink1><IMG 
src="制作WinCE平台下Pocket PC安装程序 - 实业兴国 实干报国 - CSDNBlog.files/100x30_Logo.gif" 
border=0></A> <A id=Footer1_Hyperlink3 href="http://asp.net/" 
name=Hyperlink1><IMG 
src="制作WinCE平台下Pocket PC安装程序 - 实业兴国 实干报国 - CSDNBlog.files/PoweredByAsp.Net.gif" 
border=0></A> <BR>Copyright © BackStrokeFish </P>
<SCRIPT 
src="制作WinCE平台下Pocket PC安装程序 - 实业兴国 实干报国 - CSDNBlog.files/counter.js"></SCRIPT>

<SCRIPT type=text/javascript>
<!--
var Page_Validators =  new Array(document.getElementById("PostComment.ascx_RequiredFieldValidator2"), document.getElementById("PostComment.ascx_RequiredFieldValidator3"));
// -->
</SCRIPT>
<INPUT id=__EVENTVALIDATION type=hidden 
value=/wEWBAL+raDpAgKqtOi0AwLAsuLbDAKi687YCUWrxnz0m3jdiWVy2TbKBUr9QAYR 
name=__EVENTVALIDATION>
<SCRIPT type=text/javascript>
<!--
var Page_ValidationActive = false;
if (typeof(ValidatorOnLoad) == "function") {
    ValidatorOnLoad();
}

function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    else {
        return true;
    }
}
// -->
</SCRIPT>
 </FORM>
<SCRIPT language=javascript type=text/javascript>
	<!--
	    try
        {
	        hide();
        }
        catch(e){}
	//-->
    </SCRIPT>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -