zoukankan      html  css  js  c++  java
  • 利用ActiveSync制作PC端安装程序(By 无聊客)

     制作安装包在平常开发中经常遇到,而且面对不同的产商需求,安装包的要求也多种多样,制作安装包的方法和工具有很多种,有方便的也有麻烦的,下面介绍下我平时经常使用的方法和流程,不说很方便,只是我用的熟而已,希望对有需要的朋友有所帮助,有不对的地方请大家多多指教。       通常我把制作安装包分成以下几个步骤:
    1.         编译程序,按照自己的意愿组织安装包制作环境,建好目录,把编译链接成功的目标文件和所需要的其他文件拷贝过来。
    2.         编写INF文件,在这里我们可以设置从什么本地目录上获取安装文件,要将哪些文件打进安装包,要安装到DEVICE上哪些目录上去,在安装过程中要书写哪些注册表内容,是否设置快捷方式等等内容,是最关键的一个步骤
    3.         按照需要编写Setup DLL。(可选)
    4.         调用cabwiz.exe(从我的使用经验来看,好象PPC和SP的打包程序是不一样的,这点要注意),确定是否压缩等等选项,打成CAB文件,这个文件可以直接拷贝到DEVICE上运行安装。
    5.         调用PC端ActiveSync安装。(可选)

    网上已经有些文章介绍了如何制作安装包,我就不罗嗦了,下面介绍下如何利用ActiveSync来实现PC端安装程序。ActiveSync是微软提供的与Windows Mobile的同步软件,新版本4.1下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=4c254e3f-79d5-4012-8793-d2d180a42dfa&DisplayLang=en
    ActiveSync提供了命令行方式来帮助我们安装Windows Mobile安装程序,格式为:
    C:\Program Files\Microsoft ActiveSync\CeAppMgr.exe C:\Program Files\Microsoft ActiveSync\MyApp\MyApp.ini
    其中C:\Program Files\Microsoft ActiveSync\为ActiveSync安装目录,MyApp.ini很简单,格式如下:
    [CEAppManager]
    Version = 1.0
    Component = SmartPhone

    [SmartPhone]
    Description    = MyApp
    Uninstall       = MyApp
    CabFiles     = MyApp.arm.CAB

           所以要制作PC端安装程序,只需要以下几个步骤:
    1.         制作安装包,把CAB文件和写好的INI文件拷贝到指定目录下(我们这里举例放在C:\Program Files\Microsoft ActiveSync\MyApp下面,)
    2.         编写PC端程序,加上命令行调用:
    TCHAR szCommandLine = _T(“C:\Program Files\Microsoft ActiveSync\CeAppMgr.exe”);
    TCHAR szParameter         = _T(“\” C:\Program Files\Microsoft ActiveSync\MyApp\MyApp.ini\””)
    ::ShellExecute(NULL,NULL, szCommandLine, szParameter, NULL, SW_SHOWNORMAL);

    试试看,是不是可以工作?以上的例子写死了ActiveSync的安装路径,移植性比较差,不过不要紧,我们可以从注册表键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Pegasus下面的InstalledDir键值里面读到ActiveSync的安装路径,这样我们的程序就可以在其他的机器上安装了,当然前提是必须安装了ActiveSyncJ

    完毕,欢迎大家拍砖。
  • 相关阅读:
    Jenkins发布遇到的问题
    js相关问题总结
    代码洁癖症轻度患者-页面显示状态判断解决方案
    eclipse没有打断点,项目确仍然要进入断点的问题。
    liunx新装tomcat之后,tomcat不能识别新发布的项目
    phpstorm+xdebug单步调试的配置
    laravel 路由前缀,路由名称前缀区别
    Specified key was too long ... 767 bytes
    postman 自动化测试
    Linux top输出st 的值过高导致系统负载过高
  • 原文地址:https://www.cnblogs.com/googlegis/p/2979262.html
Copyright © 2011-2022 走看看