CN104834526A - 一种运动控制卡驱动安装包制作方法 - Google Patents
一种运动控制卡驱动安装包制作方法 Download PDFInfo
- Publication number
- CN104834526A CN104834526A CN201510248349.1A CN201510248349A CN104834526A CN 104834526 A CN104834526 A CN 104834526A CN 201510248349 A CN201510248349 A CN 201510248349A CN 104834526 A CN104834526 A CN 104834526A
- Authority
- CN
- China
- Prior art keywords
- control card
- section
- installation
- devcon
- dll
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种运动控制卡驱动安装包制作方法。该方法为:新建一个Inno Setup脚本,在[Code]段的InitializeSetup函数中调用检测控制卡的dll,在InitializeUninstall函数中调用删除驱动残留文件和注册表信息的dll;在[Files]段中,根据操作系统版本号、操作系统位数以及控制卡检测结果,将相应的文件复制到安装目录中;在[Run]和[UninstallRun]段中,用devcon工具操作inf文件进行驱动的安装和卸载;编译Inno Setup脚本代码,生成可执行的控制卡驱动安装包。使用该方法制作的驱动安装包安装控制卡驱动时,可以克服传统方法需要从设备管理器中手动指定驱动文件位置以及驱动卸载不彻底的缺点,让控制卡驱动的安装和卸载变得便捷、高效和人性化。
Description
技术领域
本发明涉及一种硬件驱动安装包制作方法,尤其涉及一种运动控制卡驱动安装包制作方法。
背景技术
在现代化工业生产中,为了满足新型数控系统的标准化、柔性和开放性等要求,基于PC机的各种高性能多轴运动控制卡应运而生。绝大多数运动控制卡都是基于PC总线的,利用高性能微处理器(如DSP)及大规模可编程器件来实现多个伺服电机的协调运动。由于是基于PC总线,所以运动控制卡必须要插在工控机的PCI插槽上使用,作为外部设备的运动控制卡要想和工控机进行正常通信,需要事先在工控机中安装运动控制卡的驱动程序,这样工控机才能正确识别运动控制卡并协调控制双方的通信过程。驱动安装时,用户先在工控机中插好运动控制卡,然后在设备管理器中找到相应的硬件,在硬件设备上单击鼠标右键,选择更新驱动程序,在硬件更新向导对话框中正确指定控制卡驱动所在的路径,经过这些步骤才能完成控制卡的驱动安装。由于驱动版本多,如果用户一不小心指定了与操作系统版本不一致的驱动,安装完成后会导致控制卡无法正常工作,这时必须卸载掉错误的驱动程序并安装正确的驱动。卸载驱动的时候也是要在设备管理器中找到相应硬件,通过单击鼠标右键进行卸载。以上这些操作要求用户具有一定的专业基础知识,并且会给用户增加一些不必要的麻烦,也很容易导致错误。尤其是在Windows XP操作系统中,通过设备管理器手动卸载驱动会留下残余信息,导致再次安装驱动时失败。同时为了让用户更好的使用控制卡,控制卡生产商不仅要提供不同版本的运动控制卡驱动,还需要相应地提供给用户不同版本的开发包,开发示例,说明书等资料,这样导致提交给用户的资料过多,用户经常将资料弄混,一旦手动指定的驱动路径不对,想重新安装驱动的时候往往由于卸载不彻底而失败。
发明内容
本发明的目的是提供一种运动控制卡驱动安装包制作方法,以克服上述不足,从而提高控制卡驱动安装效率,进而提升用户使用体验。
本发明实施例提供一种运动控制卡驱动安装包制作方法,具体步骤包括:
编写检测控制卡以及用来删除驱动残留信息的动态链接库dll;
将编写的dll、devcon.exe以及不同操作系统版本的控制卡驱动、开发包和说明书放到新建目录中;
新建一个Inno Setup脚本,在[Code]段中添加安装初始化事件函数InitializeSetup和卸载初始化事件函数InitializeUninstall,在InitializeSetup中调用检测控制卡的dll,在InitializeUninstall函数中调用删除驱动残留文件和注册表信息的dll;
在[Files]段中,根据操作系统版本号、操作系统位数以及控制卡检测结果,将相应的驱动文件复制到安装目录中;
在[Run]和[UninstallRun]段中,用devcon工具操作inf文件进行驱动的安装和卸载;
编译Inno Setup脚本代码,生成可执行的控制卡驱动安装包。
使用上述方法制作得到的驱动安装包安装驱动时,与以往在设备管理器中手动指定驱动位置的方法相比具有下列优点:用户只需要双击控制卡驱动安装包就可以快速完成驱动安装,不用进入设备管理器,不用考虑操作系统的版本,不用手动指定驱动路径,安装完成后会在开始->程序菜单中生成相应文件夹,从该文件夹下面可以浏览控制卡开发包和说明书,快速启动控制卡示例程序,尤其是在该文件夹下面提供了一键卸载控制卡驱动的快捷方式,并且卸载彻底无残留。大大提高了用户安装和卸载控制卡驱动的效率,提升了用户使用体验。
附图说明
图1为本发明实施例中控制卡驱动安装包制作流程示意图。
具体实施方式
为了提高用户安装和卸载控制卡驱动的效率,提高用户使用体验,本发明实施例提供了一种控制卡驱动安装包的制作方法,利用该方法制作得到驱动安装包后,用户只需要双击安装包就可以快速完成驱动安装,不用进入设备管理器,不用考虑操作系统的版本,不用手动指定驱动路径,安装完成后会在开始->程序菜单中生成相应文件夹,从该文件夹下面可以浏览控制卡开发包和说明书、快速启动控制卡示例程序,尤其是在该文件夹下面提供了一键卸载控制卡驱动的快捷方式,并且卸载彻底无残留。
下面结合附图对本发明优选的实施例进行详细说明。
如附图1所示,本发明实施例中,控制卡驱动安装包的制作方法的详细流程如下:
步骤101:编写好检测控制卡是否插上或插好的动态链接库dll,编写好用来删除驱动残留文件和注册表信息的动态链接库dll;
步骤102:新建一个目录,将步骤A编写的dll、32位和64位devcon.exe以及不同操作系统版本的控制卡驱动、开发包和说明书放到该目录中;
步骤103:在步骤B新建的目录中,新建一个Inno Setup脚本,在代码[Code]段中添加初始化事件函数InitializeSetup和卸载初始化事件函数InitializeUninstall;
步骤104:在InitializeSetup函数中提取出临时文件devcon.exe,调用检测控制卡的dll模块。如果检测到了控制卡,则静默安装驱动,如果没有检测到控制卡,则弹窗询问用户是只安装开发包和说明书还是退出安装程序,并保存检测结果,在InitializeUninstall函数中调用删除驱动残留信息的dll模块,删除驱动残留文件和注册表信息;
步骤105:在 [Files]段中,复制检测控制卡的dll和删除驱动残留信息的dll到安装路径中。如果检测到了控制卡且检测到某版本的操作系统,则只将该操作系统版本的控制卡驱动、开发包和说明书复制到安装路径下相对应的目录中;如果没有检测到控制卡且检测到某版本的操作系统,则只将该操作系统版本的控制卡开发包和说明书复制到安装路径下相对应的目录中;如果检测到操作系统为64位,则将64位的devcon.exe复制到安装路径中,否则将32位的devcon.exe复制到安装路径中;
步骤106:在 [Run]段中,将控制卡的inf文件名和硬件ID作为参数,运行命令行工具devcon中的update命令进行控制卡驱动的安装,在[UninstallRun]段中,将控制卡的inf文件名和硬件ID作为参数,运行命令行工具devcon中的remove命令进行控制卡驱动的卸载,运行命令行工具devcon中的rescan命令扫描以发现新的硬件;
步骤107:编译Inno Setup脚本代码,生成可执行的控制卡驱动安装包。
Claims (6)
1.一种运动控制卡驱动安装包制作方法,其特征在于,包括下列步骤:
在Inno Setup脚本代码[Code]段的安装初始化事件函数InitializeSetup中调用检测控制卡的dll;
在Inno Setup脚本代码[Code]段的卸载初始化事件函数InitializeUninstall中调用删除驱动残留文件和注册表信息的dll;
在Inno Setup脚本代码[Files]段中,根据操作系统版本号、操作系统位数以及控制卡检测结果,将相应的驱动文件复制到安装目录中;
在Inno Setup脚本代码[Run]段中,用devcon工具操作inf文件进行驱动的安装;
在Inno Setup脚本代码[UninstallRun]段中,用devcon工具操作inf文件进行驱动的卸载和硬件扫描。
2.如权利要求1所述的方法,其特征在于,在Inno Setup脚本代码[Code]段的安装初始化事件函数InitializeSetup中调用检测控制卡的dll时,包括:
编写好能检测控制卡是否插上或插好的动态链接库dll,在InitializeSetup函数中提取出临时文件devcon.exe,调用检测控制卡的dll模块;
如果检测到了控制卡,则静默安装驱动,如果没有检测到控制卡,则弹窗询问用户是只安装开发包和说明书还是退出安装程序,并保存检测结果。
3.如权利要求1所述的方法,其特征在于,在Inno Setup脚本代码[Code]段的卸载初始化事件函数InitializeUninstall中调用删除驱动残留文件和注册表信息的dll时,包括:
编写好能彻底删除驱动卸载后残留文件的动态链接库dll,在InitializeUninstall函数中调用删除驱动残留信息的dll模块,删除驱动残留文件和注册表信息。
4.如权利要求1所述的方法,其特征在于,在Inno Setup脚本代码的[Files]段中复制文件时,包括:
复制检测控制卡的dll和删除驱动残留信息的dll到安装路径中;
如果检测到了控制卡且检测到某版本的操作系统,则只将该操作系统版本的控制卡驱动、开发包和说明书复制到安装路径下相对应的目录中;如果没有检测到控制卡且检测到某版本的操作系统,则只将该操作系统版本的控制卡开发包和说明书复制到安装路径下相对应的目录中;如果检测到操作系统为64位,则将64位的devcon.exe复制到安装路径中,否则将32位的devcon.exe复制到安装路径中。
5.如权利要求1所述的方法,其特征在于,在Inno Setup脚本代码[Run]段中,用devcon工具操作inf文件进行驱动的安装时,包括:
在Inno Setup脚本代码的[Run]段中,将控制卡的inf文件名和硬件ID作为参数,运行命令行工具devcon中的update命令进行控制卡驱动的安装。
6.如权利要求1所述的方法,其特征在于,在Inno Setup脚本代码[UninstallRun]段中,用devcon工具操作inf文件进行驱动的卸载和硬件扫描时,包括:
在Inno Setup脚本代码的 [UninstallRun]段中,将控制卡的inf文件名和硬件ID作为参数,运行命令行工具devcon中的remove命令进行控制卡驱动的卸载,运行命令行工具devcon中的rescan命令扫描以发现新的硬件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510248349.1A CN104834526A (zh) | 2015-05-16 | 2015-05-16 | 一种运动控制卡驱动安装包制作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510248349.1A CN104834526A (zh) | 2015-05-16 | 2015-05-16 | 一种运动控制卡驱动安装包制作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104834526A true CN104834526A (zh) | 2015-08-12 |
Family
ID=53812436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510248349.1A Pending CN104834526A (zh) | 2015-05-16 | 2015-05-16 | 一种运动控制卡驱动安装包制作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104834526A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107741854A (zh) * | 2017-10-25 | 2018-02-27 | 合肥联宝信息技术有限公司 | 一种电子设备的网卡驱动的安装方法及装置 |
CN108427559A (zh) * | 2018-03-14 | 2018-08-21 | 新华三技术有限公司 | 一种脚本文件生成和调用方法以及装置 |
CN108897529A (zh) * | 2018-06-19 | 2018-11-27 | 深圳众为兴技术股份有限公司 | 一种pci运动控制卡驱动的开发方法 |
CN111341380A (zh) * | 2020-02-25 | 2020-06-26 | 深圳忆联信息系统有限公司 | Ssd控制器复位的测试方法、装置和计算机设备 |
CN111857754A (zh) * | 2020-07-22 | 2020-10-30 | 深圳忆联信息系统有限公司 | 通用的Windows驱动部署方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1834920A (zh) * | 2006-04-30 | 2006-09-20 | 北京飞天诚信科技有限公司 | 一种usb设备过滤驱动程序的自动安装方法 |
CN101950252A (zh) * | 2009-07-10 | 2011-01-19 | 中兴通讯股份有限公司 | 一种usb数据卡自启动方法和系统 |
CN102999356A (zh) * | 2012-11-15 | 2013-03-27 | 北京创毅讯联科技股份有限公司 | 数据卡安装方法、数据卡和终端设备 |
-
2015
- 2015-05-16 CN CN201510248349.1A patent/CN104834526A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1834920A (zh) * | 2006-04-30 | 2006-09-20 | 北京飞天诚信科技有限公司 | 一种usb设备过滤驱动程序的自动安装方法 |
CN101950252A (zh) * | 2009-07-10 | 2011-01-19 | 中兴通讯股份有限公司 | 一种usb数据卡自启动方法和系统 |
CN102999356A (zh) * | 2012-11-15 | 2013-03-27 | 北京创毅讯联科技股份有限公司 | 数据卡安装方法、数据卡和终端设备 |
Non-Patent Citations (3)
Title |
---|
HEFONEK的专栏: "inno setup使用心得", 《HTTPS://BLOG.CSDN.NET/HEFONEK/ARTICLE/DETAILS/8815234》 * |
U012814201的专栏: "利用 devcon.exe实现自动安装驱动的心得总结(原创)", 《HTTPS://BLOG.CSDN.NET/U012814201/ARTICLE/DETAILS/44919125》 * |
千里之外: "Inno Setup Compiler卸载时删除注册表", 《HTTPS://BLOG.CSDN.NET/WOSHINIA/ARTICLE/DETAILS/8174453》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107741854A (zh) * | 2017-10-25 | 2018-02-27 | 合肥联宝信息技术有限公司 | 一种电子设备的网卡驱动的安装方法及装置 |
CN108427559A (zh) * | 2018-03-14 | 2018-08-21 | 新华三技术有限公司 | 一种脚本文件生成和调用方法以及装置 |
CN108897529A (zh) * | 2018-06-19 | 2018-11-27 | 深圳众为兴技术股份有限公司 | 一种pci运动控制卡驱动的开发方法 |
CN111341380A (zh) * | 2020-02-25 | 2020-06-26 | 深圳忆联信息系统有限公司 | Ssd控制器复位的测试方法、装置和计算机设备 |
CN111341380B (zh) * | 2020-02-25 | 2022-02-01 | 深圳忆联信息系统有限公司 | Ssd控制器复位的测试方法、装置和计算机设备 |
CN111857754A (zh) * | 2020-07-22 | 2020-10-30 | 深圳忆联信息系统有限公司 | 通用的Windows驱动部署方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106095620B (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN104834526A (zh) | 一种运动控制卡驱动安装包制作方法 | |
US7185335B2 (en) | Programmatic application installation diagnosis and cleaning | |
CN102736978B (zh) | 一种检测应用程序的安装状态的方法及装置 | |
CN104123153A (zh) | 用于使用usb升级固件的装置与方法 | |
CN103677887A (zh) | 一种信息处理方法以及一种电子设备 | |
CN102609290B (zh) | 电子产品的软件升级方法 | |
CN103593281A (zh) | 测试系统及测试方法 | |
TWI476587B (zh) | 測試電子裝置之功能的測試方法以及測試裝置 | |
CN110659197B (zh) | 应用程序的测试用例生成方法、装置和软件测试系统 | |
CN104021011A (zh) | 嵌入式设备程序升级系统及方法 | |
CN102999349A (zh) | 一种软件升级方法 | |
CN107220085B (zh) | 一种自动升级raid卡固件的方法 | |
CN111638916A (zh) | 一种用于数据取证的通用安卓移动终端驱动系统及方法 | |
CN1400530A (zh) | 系统关机时及待机状态以串行口进行排错的方法 | |
CN105117250A (zh) | 一种兼容性处理方法及电子设备 | |
CN113377586A (zh) | 一种服务器自动化检测方法、装置及存储介质 | |
CN112445670B (zh) | 一种eMMC测试方法和装置 | |
US20090259835A1 (en) | System and method for tracking and recording system configurations of electronic devices | |
KR20130024667A (ko) | 소프트웨어를 자동으로 설치하는 방법 및 장치 | |
CN105446758A (zh) | 安装操作系统的方法 | |
CN111782236A (zh) | 系统软件升级方法、装置、存储介质及一体机设备 | |
CN116168752A (zh) | 读、写、擦除操作超时时间获取方法 | |
TWI515656B (zh) | 程式安裝方法及裝置 | |
US9575878B2 (en) | Data-driven testing without data configuration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150812 |
|
WD01 | Invention patent application deemed withdrawn after publication |