InstallShield 制作INF驱动安装程序

这篇具有很好参考价值的文章主要介绍了InstallShield 制作INF驱动安装程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题外话:
使用INF文件制作经过签名的CAT文件可以参考如下博文:
https://blog.csdn.net/qq_29729577/article/details/113537243

回归正题:
本例使用InstallShield 2020版本

驱动文件准备

将INF、CAT、SYS等驱动相关文件放至同一目录下,本例为简单示例,文件如下:
InstallShield 制作INF驱动安装程序

新建工程

NewProject,新建InstallScript MSI工程
InstallShield 制作INF驱动安装程序

Project Assistant设置

  • Application Information
    自行填写
    InstallShield 制作INF驱动安装程序

  • Installation Requirements
    默认都选No

  • Installation Architecture
    默认选No

  • Application Files
    先不填写

  • Application Shortcuts
    默认不填

  • Application Registry
    默认选No

  • Installation Localization
    简体中文即可

Installation Designer设置

1. 驱动设置

选择OGANIZATION下的Setup Design
InstallShield 制作INF驱动安装程序
删除默认项目DefaultFeature,选择PROJECT下的Device Driver
InstallShield 制作INF驱动安装程序
进入设备驱动向导
Device Driver Package选择驱动存放目录下的INF文件
System Architecture根据具体情况选择
InstallShield 制作INF驱动安装程序
下一页会自动列出目录下相关的驱动文件
InstallShield 制作INF驱动安装程序
下一页如下勾选即可
InstallShield 制作INF驱动安装程序
下一页选择平台
InstallShield 制作INF驱动安装程序
最后点击完成即可

2. 安装脚本设置

选择BEHAVIOR AND LOGIC中的InstallScript
InstallShield 制作INF驱动安装程序
选择Setup.Rul -> Before Move Data -> OnFirstUIBefore
InstallShield 制作INF驱动安装程序

去掉代码中不必要的过程,最终代码如下:

function OnFirstUIBefore()
    NUMBER nResult, nSetupType, nvSize, nUser;
    STRING szTitle, szMsg, szQuestion, svName, svCompany, szFile;
    STRING szLicenseFile;
	BOOL bCustom, bIgnore1, bIgnore2;
begin	
    // TO DO: if you want to enable background, window title, and caption bar title                                                                   
    // SetTitle( @PRODUCT_NAME, 24, WHITE );                                        
    // SetTitle( @PRODUCT_NAME, 0, BACKGROUNDCAPTION ); 	                  
    // Enable( FULLWINDOWMODE );						   
    // Enable( BACKGROUND );							  
    // SetColor(BACKGROUND,RGB (0, 128, 128));					   

    // Added in InstallShield 15 - Show an appropriate error message if
    // -removeonly is specified and the product is not installed.
    if( REMOVEONLY ) then
        Disable( DIALOGCACHE );
		szMsg = SdLoadString( IDS_IFX_ERROR_PRODUCT_NOT_INSTALLED_UNINST );
   		SdSubstituteProductInfo( szMsg );
		MessageBox( szMsg, SEVERE );
		abort;
    endif;
    
	nSetupType = TYPICAL;	

Dlg_SdWelcome:
    szTitle = "";
    szMsg   = "";
    nResult = SdWelcome(szTitle, szMsg);
    if (nResult = BACK) goto Dlg_SdWelcome;
	
	szTitle   = "";
	svName    = "";
    svCompany = "";

Dlg_SdStartCopy:
    szTitle = "";
    szMsg   = "";
    nResult = SdStartCopy2( szTitle, szMsg );			
	
    if (nResult = BACK) then
       goto Dlg_SdWelcome;;
    endif;

    // Added in IS 2009 - Set appropriate StatusEx static text.
    SetStatusExStaticText( SdLoadString( IDS_IFX_STATUSEX_STATICTEXT_FIRSTUI ) );

    // setup default status
    Enable(STATUSEX);
 
    return 0;
end;

编译

最终进入Project Assistant的Build Installation进行编译即可
InstallShield 制作INF驱动安装程序
编译完成后,生成setup.exe,即可进入安装流程,安装流程如下:
InstallShield 制作INF驱动安装程序
InstallShield 制作INF驱动安装程序
InstallShield 制作INF驱动安装程序

总结

以上就是INF驱动简单的安装包制作流程,但还遇到一个问题尚未解决:

还未找到方法能够编译出同时适配x86和x64平台的安装包,目前x86和x64是分开编译为两个安装包

如果知道方法的朋友请给我留言,大家共同进步,谢谢!文章来源地址https://www.toymoban.com/news/detail-452816.html

到了这里,关于InstallShield 制作INF驱动安装程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包