分享

在INSTALLSHIELD12中用devcon方法制作驱动程序的安装程序步骤 | 驱动及...

 iceberg_horn 2010-03-13

在INSTALLSHIELD12中用devcon方法制作驱动程序的安装程序步骤

");
devcon.rar (64 K) 下载次数:291 小弟前面一段时间被老板叫来做驱动的打包,刚开始做的时候无从下手,不知道IS是啥子东东,匆匆忙忙看了一下,在BBS上乱搜了一阵,请教了N多个大虾,在此过程中却遭尽歧视,大多数大虾都不鸟我,可能觉得我的问题太低级了,唉,我也是无可奈何啊,其中还是有一些大虾给予了小弟一些帮助,在此小弟深表感激。但是在此过程中似乎没有一个帖子,一个人能给予一个完整的答案。小弟前几天刚刚搞定老板交代的任务,在此写一下,希望有我以前困惑的XDJM们能够从中获益。
PS:小弟是个菜鸟,写的东东拿不上什么台面,只是自己做的一点点东西,希望那些大虾不要鄙视。
如果有什么高见可以畅所欲言。谢谢!!!
言规正传,小弟打包的是PCI驱动程序,之前老板要求,写了个PCI驱动程序,时候要求我打包。
有两个文件,一个是.inf安装文件,一个是.sys驱动文件,要求是制作一个setup文件,实现驱动程序的自动安装。

之前阅读过qigongwei大虾在03年发的一篇帖子上面介绍了两种方法:
1. 通过在脚本中调用rundll32来实现安装
2. 通过InstallShield在安装过程中通过脚本来调用Devcon来实现安装
刚开始我用第一种方法来做的,主要就是下面3行代码:
Windows 9x
szProgram = \"rundll.exe\";
szCmdLine = \"setupx.dll,InstallHinfSection DefaultInstall 132 \" + SUPPORTDIR + \"test.inf\";
LaunchAppAndWait(szProgram, szCmdLine, WAIT);

Windows NT / 2000
szProgram = \"rundll32.exe\";
szCmdLine = \"setupapi.dll,InstallHinfSection DefaultInstall 132 \" + SUPPORTDIR + \"test.inf\";
LaunchAppAndWait(szProgram, szCmdLine, WAIT);
但是我用这个方法一直没有成功,后来在IS的社区里面看到一个老外发帖说这种方法有时候不起作用,具体好像是由于不是所有INF文件都有defaultinstall安装节的原因,所以我就放弃了这种做法(在这个过程中耗了我将近一个月的时间)。
因此,我就选用了第二种方法,介绍如下:
在网上下载一个DEVCON.EXE文件,小弟在这里提供了,大家可以下载,或者到网站:http://support.microsoft.com/default.aspx?scid=http://support.microsoft..com:80/support/kb/articles/q311/2/72.asp&NoWebContent=1
上面下载,上面还介绍了DEVCON的作用,大家可以参考。
整个过程很简单,就是
1. 在IS12中用向导先生成一些基本的对话框,到最后一步的时候进入脚本编辑界面
(在使用向导的过程中,利用向导将devcon.exe文件和你的.inf文件添加到一个指定的目录,比如system32目录下)
2. 在脚本编辑界面中的脚本结构是:
function OnFirstUIBefore()
......
begin
...
...
...
return 0;
end;
3.在其后面再添加:
function OnFirstUIAfter()
begin
  LaunchAppAndWait(WINSYSDIR^"\\devcon.exe", "install C:\\WINDOWS\\system32\\×××.inf PCI\\VEN_FFFF&DEV_FFFF&SUBSYS_00000000&REV_00", WAIT);
    return 0;
end;

其中第一项WINSYSDIR^"\\devcon.exe"是你DEVCON文件所在位置,可以在向导的Application Files页中将devcon.exe文件和你的INF文件放到一个目录下,然后在这里指出这个路径就可以了(我是将其放到向导Application Files页中的windows\Windows System\下面(这就是WINSYSDIR,也就是system32目录));

第二项中的"install C:\\WINDOWS\\system32\\×××.inf 是你的INF文件的目录,也是用向导事先放到一个指定目录下,我是将其和devcon一起放到了system32目录下(WINSYSDIR);
PCI\\VEN_FFFF&DEV_FFFF&SUBSYS_00000000&REV_00"是你的硬件ID,在INF文件中可以找到,这个ID是在小弟的Manufacturer and Models Sections节中,应该比较好找。

就OK了,再编译生成一个安装文件就可以使用了

由于时间仓卒,其中可能会有些错误,希望各位大虾多多指正。东西很简单,NB的大虾不要鄙视小弟写的浅显,不会的XDJM可借以参考一下,希望能对各位有所帮助。
谢谢!!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多