精华内容
下载资源
问答
  • 一个完整的IS安装程序实例,是分享网友的一些经验;仔细阅读、临摹以便,将会能顺利上手如何为自己的软件打包,或者将一些第三方的ocx、dll等资源整合到相应的驱动之中!
  • 本文使用Qt下的windeployqt来dll的打包,然后借助Inno Setup Compiler来制作安装包软件。步骤如下: 1.使用windeployqt打包 win+R输入cmd进入dos界面 输入xxx\windeployqt.exe (要打包的exe)然后执行即可 2....

    在实际使用过程中我们会将自己编写的代码打包然后生成安装包提供给客户。这就需要进行软件打包然后借助Inno Setup来生成安装文件。具体参考第一部分【打包安装】

    同时,很多时候我们也会用到很多第三方的驱动程序,比如供应商相机的驱动。但是我们不想让客户看到第三方的软件安装,这时候需要借助脚本在自己的安装exe中集成第三方的驱动。windows下采用bat脚本(批处理)。具体参考第二部分【bat安装】

    1.打包安装

    本文使用Qt下的windeployqt来dll的打包,然后借助Inno Setup Compiler来制作安装包软件。步骤如下:

    1.使用windeployqt打包

    • win+R输入cmd进入dos界面
    • 输入xxx\windeployqt.exe  (要打包的exe)然后执行即可

    2.使用Inno Setup Compiler来制作安装包

    软件可以在官网下载,步骤按下图

    2.bat安装

    bat脚本的具体书写可自行百度。

    其主要思路是将Driver文件存放在Bin下面,先安装Bin,然后在执行bat脚本来安装driver

    具体些步骤:

    (1)编写一个install.bat的脚本

    @echo off
    ::下面三行代码是不显示dos界面
    if "%1"=="hide" goto begin
    start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
    :begin 
      
    set base_dir=%~dp0
    %base_dir:~0,2%
    pushd %base_dir%
    echo %cd%
    echo driver is installing , please wait for a few minutes ...
    ::/wait表示安装完此程序在安装下一个,/S表示静默安装,默认选择yes
    start /wait instUSBDriver1.exe /S
    echo installing exe2
    start /wait instUSBDriver2.exe /S 

    (2)将驱动文件放在Bin文件下,Driver中存放需要安装的第三方驱动以及bat脚本

    (3)在Inno生成的iss脚本文件最下面加上

    Filename: "{app}\Driver\install.bat";

    (4)重新运行iss即可

    展开全文
  • 1. 下载Setup Factory 9.1,输入序列号进行注册... 2. 运行Setup Factory,新建项目,选取并添加360浏览器的安装目录作为源文件; 3. 添加“初始文件”: ... ...在“Task任务”栏中,“Screen屏幕”,“Before Installing

    1. 下载Setup Factory 9.1,输入序列号进行注册;

    2. 运行Setup Factory,新建项目,选取并添加360浏览器的安装目录作为源文件;

    3. 添加“初始文件”:

    在“Task任务”栏中,“Resources资源模块”,点击“Primer Files初始文件”菜单,

    弹出“Resources资源”窗口,点击“Add添加”,浏览并定位找到初始文件,如下图:

    4. 设置安装前预装初始文件:

    在“Task任务”栏中,“Screen屏幕”,“Before Installing安装之前”,在弹出的Screen窗体中,选中“Ready to Install”,点击“Edit”进行编辑,

    在弹出的Screen Properties窗体中,选择Actions栏,选择On Preload栏,输入命令:

    Shell.Execute("%TempLaunchFolder%\\ch341.EXE","open","","",SW_SHOWNORMAL,true);

    确定即可,如下图所示:

    5. 设置安装背景:

    在Tasks任务栏中,选择Settings设置,点击Background Window,

    在弹出的Project Settings窗口中,选择Background标签,选中Show background window,确定。

    6. Build项目,并输出exe可执行文件(即安装包),即可。

     

    展开全文
  • 文章目录1、根据通信协议打包要发送数据2、接收数据解包判断数据有效性3、CRC校验 1、根据通信协议打包要发送数据 /********************************************************************************************...

    1、根据通信协议打包要发送数据

    /***********************************************************************************************************
    * 函数名称: PackageSendData()
    * 输入参数: data,要发送的数据的首地址; *len,发送数据的总长度
    * 返回值  : 无
    * 功    能: 根据通信协议,封装要发送的数据
    ************************************************************************************************************/
    void PackageSendData(u8* data, u8* len)
    {
      u8 temp[64],temp1[64],i,j = 0;
      u16 crc;
      
      memset(&temp[0], 0, sizeof(temp));
      memset(&temp1[0], 0, sizeof(temp1));
      memcpy(&temp[2], data, *len); //复制传输数据
      temp[0] = FrameHeader; //加入帧头
      temp[1] = *len+3; //加入长度值
      crc = CRC16MODBUS(&temp[1], *len+1); //计算CRC16校验值
      memcpy(&temp[*len+2], &crc, 2); //复制校验值
      for(i=3; i < *len+3+j; )
      {
        if((temp[i]==FrameHeader)||(temp[i]==FrameEnd))//如果传输的数据中有和帧头或帧尾一样的数据则插入转义符
        {
          memset(&temp1[0], 0, sizeof(temp1));
          memcpy(&temp1[0], &temp[i], *len+3+j-i);
          temp[i] = 0x5C; //加入转义符 ‘\'
          memcpy(&temp[i+1], &temp1[0], *len+3+j-i);
          i = i+2;
          j++;
        }
        else
          i++;
      }
      temp[*len+4+j] = FrameEnd;
      memcpy(data, &temp[0], *len+5+j);
      *len = *len+5+j;
    }
    

    2、接收数据解包判断数据有效性

    /***********************************************************************************************************
    * 函数名称: UnpackReceivedData()
    * 输入参数: data,要解包的数据的首地址,*len 要解包的数据的总长度(不包括帧头和帧尾)
    * 返回值  : 1, 数据有效, 0,数据无效。
    * 功    能: 解包接收到的数据并判断数据有效性
    ************************************************************************************************************/
    u8 UnpackReceivedData(u8* data, u8* len)
    {
      u8 temp[64];
      u16 crc,crctemp;
      
      memset(&temp[0], 0, 64);
      memcpy(&crctemp,(data+*len-2),2);     //复制数据中的CRC校验值
      crc = CRC16MODBUS(data, *len-2);      //计算数据的CRC16校验值
      if(crctemp == crc) //校验值正确
        return 1;
      
      return 0;
    }
    

    3、CRC校验

    #include "CRC16.h"
    
    static const unsigned char aucCRCHi[] = {
      0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 
      0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
      0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
      0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 
      0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
      0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
      0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 
      0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
      0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
      0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 
      0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 
      0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
      0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 
      0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
      0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
      0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 
    };
    
    static const unsigned char aucCRCLo[] = {
      0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 
      0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 
      0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,
      0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 
      0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 
      0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38,
      0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 
      0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 
      0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4,
      0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 
      0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 
      0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,
      0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 
      0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 
      0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
      0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40
    };
    
    /***********************************************************************************************************
    * 函数名称: CRC16MODBUS()
    * 输入参数: *pucFrame,待校验数据首地址,usLen为待校验数据长度
    * 返回值  : 校验结果
    * 功    能: CRC-16 MODBUS 校验函数
    ************************************************************************************************************/
    unsigned short CRC16MODBUS(unsigned char * pucFrame, unsigned short usLen)
    {
      unsigned char ucCRCHi = 0xFF;
      unsigned char ucCRCLo = 0xFF;
      int iIndex;
      while(usLen--)
      {
        iIndex = ucCRCLo ^ *(pucFrame++);
        ucCRCLo = (unsigned char)(ucCRCHi ^ aucCRCHi[iIndex]);
        ucCRCHi = aucCRCLo[iIndex];
      }
      return (unsigned short)(ucCRCHi << 8 | ucCRCLo);
    }
    
    
    展开全文
  • hp veer PC驱动和实用软件,亲测可用,打包下载,只需2分。
  • USB驱动程序打包

    千次阅读 热门讨论 2008-07-26 07:34:00
    最近公司需要软件的安装包。先前没有做个开发包,以为会挺难的。看了IS12的教程后,简单测试了一个应用程序打包,一路NEXT,就完成打包了,TEST下,还成功了,这不得不归功于Installshield的开发人员想得周到。 ...

        最近公司需要软件的安装包。先前没有做个开发包,以为会挺难的。看了IS12的教程后,简单测试了一个应用程序打包,一路NEXT,就完成打包了,TEST下,还成功了,这不得不归功于Installshield的开发人员想得周到。

        应用程序的打包还算容易,什么多国语言支持啊,Unstall啊,License啊,Installshield都做得很人性化了。

       废话不扯了,来看驱动程序打包,开始听同事介绍说Installshield不支持驱动程序打包,所有没有对他抱特大的信心。但Google后,有很多介绍IS能做驱动打包。以前的版本我不知道,但IS12和IS2008都支持。下面说下具体操作过程。

       1.我有两个已经做好的驱动文件,分别是inf和sys文件,至于怎么开发出来,我暂时没去研究他。inf文件一般是微软硬件的配置信息文件,有特殊的格式。sys一般类似于dll动态库文件,老总这样给我打的比方,呵呵,这里借用他说的话。

       2.打开Installshield12,在startpage中点击Create New Project,会弹出对话框,在Windows Installer目录下,选择Installscript MSI Project。

       3.新建好工程名后,不用去理会Project Assisant过程,直接跳到Installation Designer。找到左边列表中的Orgnization,选中Setup Design,这时点击菜单Project中的Device Driver Wizard,硬件驱动安装向导。然后就会出现对话框,要求加入inf源文件,直接加入就是了,在点击下一步会发现,他自动加入了sys文件,Next,在Runtime Options using DIFx2.01,下的对话框,全选。有的文章介绍选1,3,5。我试过不成功。再点Next,有个Include all 。。。。的选项,也勾上,最后finish。

        4.修改路径,因为驱动文件一般是安装到系统目录下,这里要点击到该文件,选中Destation,在路径中选择SystemFolder,然后在后面输入/drivers.其意思是制定文件保存到windows//system32//drivers目录下。同样修改sys文件到该目录下。

       5.脚本编辑,在列表框中的Behavior and Logic选中Istallscript,在UIAfter,添加LaunchAppWait()函数。注意路径要和上面指定一直。还有一个安装节名,刚开始搞不懂是什么东西,后来试了下名字后面有类似Install简写的文件,这个要在inf文件里找,我的文件后面是××××Is,替换到Default里面的内容。

      6.所有工作都做完后,build all,执行。这时要把设备插上才能安装成功。

      7.检测下,拔掉后再重插,没有提示window提示要求搜索安装硬件驱动设备就算大功告成。

      

    展开全文
  • 有了此包,就不用再费心到处取寻找了.... 呵呵. 费了好大力气才凑齐..
  • 有了此包,就不用再费心到处取寻找了.... 呵呵. 费了好大力气才凑齐..
  • 有了此包,就不用再费心到处取寻找了.... 呵呵. 费了好大力气才凑齐..
  • 有了此包,就不用再费心到处取寻找了.... 呵呵. 费了好大力气才凑齐..
  • 有了此包,就不用再费心到处取寻找了.... 呵呵. 费了好大力气才凑齐..
  • 有了此包,就不用再费心到处取寻找了.... 呵呵. 费了好大力气才凑齐..
  • 有了此包,就不用再费心到处取寻找了.... 呵呵. 费了好大力气才凑齐.. 希望对大家有帮助!
  • 1首先把java文件打包成jar 2然后把jdbc的那个驱动包解压锁 3然后用压缩软件把2中解压的com文件添加到1中打包的jar
  • 驱动安装+打包程序

    千次阅读 2016-12-26 17:11:36
    我负责开发PC端相机软件部分(已完成),所以也需要把驱动安装这部分囊括进来。USB芯片厂商已经提供了winxp/winvista/win7/win8/win8.1/win10、32bits/64bits不同平台的不同驱动文件,包括.inf、.sys、.cat、.dll...
  • 成为LabVIEW漏洞修复高手如果您经常使用NI LabVIEW软件,当软件不能按照预期的情况运行时,您可能会有一个自己的调试技巧和技术工具箱。 这些技巧和技术有些是常用的,而剩下的可能是您自己摸索出来的。图1.巧妙的...
  • mac驱动安装软件OSX86Tools是一款实用性很强的电脑驱动软件,可以帮助用户解决电脑运行方面出现的各种问题,小编知道有很多人在找这款驱动软件,因此已经将这款驱动软件打包好了,欢迎大家下载使用。驱动介绍运行OSX...
  • 本文针对在电镜中使用的拉伸台所设计的一套控制系统,包括硬件和软件两部分,其中 硬件包括:电机驱动以及力、位移传感器信号的预处理和采集。本系统所用的拉伸台具有尺 寸小、行程短、提供的载荷大以及运动精度要求...
  • Labview编程跟以往传统的软件编程有很大的不同,最明显的差别就是它是图形化编程。用过Labview的童鞋都知道,整个编程都是拖控件的过程,而不是像传统的软件一样码代码。萝卜青菜各有所爱,Labview也有自己小众Fans...
  • 1、报错的界面提示 运行: RunDll32 setupapi,InstallHinfSection DefaultInstall ...3,原因,驱动错误导致(我这个操作系统是win 764专业版简易版本,更新完后就没有问题了SP1,猜测是那个更新包更新了RunDll32.exe...
  • 首先要说的是什么是APP?...根据互联网知识小编了解到,APP是英文Application的缩写,意思是应用程序,程序并不等同软件,换句话说,APP又叫应用程序,他只是手机软件的统称,并不代表软件就是APP,而且并不包括...
  • 5、有些打包软件需要安装驱动,添加自定义操作,选择运行一个exe,并选择需要执行的软件所在文件夹,在安装执行阶段将驱动拖到最后面来,这样如果驱动安装没有成功也不会导致整个安装包回滚 ...
  • Windows XP/Vista/7 下NT服务管理器,用于管理Windows环境下系统服务和驱动服务项目,本软件特色是提供了利用微软实用工具srvany.exe将任何程序创建为自定义服务的人性化操作界面,除此之外还包含1.服务的创建、修改...
  • 5、ODBC 驱动程序、数据源和翻译程序 6、.NET 和 Win32 程序集 7、服务 8、文件关联、MIME 类型 9、文件、文件夹、注册表项和值的访问权限 - 搜索、下载并安装运行环境 - 在模块和组件中组织您的应用程序 - ...
  • 今天是端午节,祝大家端午节安康在上篇文章中,只完成了PC端的软件设计,设备端也是采用软件模拟的方式实现的,今天趁着还没出去的时间,来更新一篇硬件-设备端的实现方法。硬件准备:ESP8266最小系统开发板,一个...
  • 测试驱动软件开发 TDD (Test-Driven Development)+敏捷开发过程 多个经典资料打包集合
  • 本程序是一款Windows平台下的软件安装包打包工具,目前版本主要具备如下功能: 1、支持多国语言安装界面 2、支持在安装过程中调用第三方安装程序 3、支持自动安装EXE服务和INF驱动 4、支持DLL和OCX 的安装和自动注册...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 524
精华内容 209
关键字:

驱动打包软件