阅读:5301回复:16
在INSTALLSHIELD12中用devcon方法制作驱动程序的安装程序步骤
devcon.rar 小弟前面一段时间被老板叫来做驱动的打包,刚开始做的时候无从下手,不知道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可借以参考一下,希望能对各位有所帮助。 谢谢!!! |
|
沙发#
发布于:2007-12-04 16:37
开头那个devcon.rar点击可以下载
|
|
板凳#
发布于:2008-03-08 16:24
usb的我倒是没试过,不好意思哈
如果有哪位知道可可以分享一下 |
|