linke520ll
驱动牛犊
驱动牛犊
  • 注册日期2005-01-24
  • 最后登录2005-02-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5107回复:8

实现驱动自动安装的方法

楼主#
更多 发布于:2005-01-27 09:52
本人想用installshiel实现驱动的自动安装,看了论坛上其他大虾发表的文章,归纳了一下,一共有以下几种:
1.通过调用SetupCopyOEMInf函数实现,该函数installshield脚本不
支持,不知道该如何实现?哪位大虾说一下
2。利用devcon或ddk下的install实现。具体实现是不是通过LaunchAppAndWait("F:\i386\devcon.exe ", "install c:\program files\qcmdm2k.inf  Vid_05c6&Pid_3197", WAIT);但本人在应用过程中出现问题,不知道是什么原因
3.szCmdLine = "setupapi.dll,InstallHinfSection Models 132  "+ProgramFilesFolder+"qcmdm2k.inf";
if(LaunchAppAndWait("rundll32.exe", szCmdLine, WAIT)<0) then
MessageBox ("Unable to launch" ,SEVERE);
return -1;
endif;其中Models指inf中的安装节,132不知道是什么意思。本人对inf不是很熟悉,根据inf的信息,不知道哪个是安装节,哪位大虾能告诉我安装节的相关信息吗?有什么特征?
以上三种方法,不管哪种方法,哪位大虾知道不妨告诉我一声,小弟不胜感激。

最新喜欢:

phoenix_lueiphoeni... kb219kb219
linke520ll
驱动牛犊
驱动牛犊
  • 注册日期2005-01-24
  • 最后登录2005-02-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-27 10:12
用SetupCopyOEMInf需要包含什么头文件?我没有装msdn,所以不知道这个函数在那个文件里定义。
mao0504
驱动牛犊
驱动牛犊
  • 注册日期2004-12-11
  • 最后登录2020-03-25
  • 粉丝0
  • 关注0
  • 积分51分
  • 威望47点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-01-27 14:53
---------------------------------------------
2。利用devcon或ddk下的install实现。具体实现是不是通过LaunchAppAndWait("F:i386devcon.exe ", "install c:program filesqcmdm2k.inf Vid_05c6&Pid_3197", WAIT);但本人在应用过程中出现问题,不知道是什么原因
-----------------------------------------------------
这种方法INSTALL.EXE,不许要INSTALL 例如:
    LaunchAppAndWait(WINSYSDIR^"log\\install.exe",WINSYSDIR^"log\\XX.inf  PCI\\VEN_10B5&DEV_9050&SUBSYS_33334291",WAIT) ;
第一个参数 INF路径,第二个设备ID
----------------------------------------------------------
这种方法
3.szCmdLine = "setupapi.dll,InstallHinfSection Models 132 "+ProgramFilesFolder+"qcmdm2k.inf";
if(LaunchAppAndWait("rundll32.exe", szCmdLine, WAIT)<0) then
MessageBox ("Unable to launch" ,SEVERE);
return -1;
endif
-----------------------------------------------------
这种方法
szProgram = "rundll32.exe";
szCmdLine = "setupapi.dll,InstallHinfSection DefaultInstall 132" + SUPPORTDIR + "netsf.inf";
LaunchAppAndWait(szProgram, szCmdLine, WAIT);

注意:

1、其中DefaultInstll是指INF文件中的安装节,必须替换为自己INF中的INSTALL节名,例如节名是USBCamera.Dev,则代码要要改为:
szCmdLine = "setupapi.dll,InstallHinfSection USBCamera.Dev 132" + SUPPORTDIR + "netsf.inf";


2、SUPPORTDIR是指inf及sys等所有Driver文件所在的路径.你要先把所有Driver文件copy到硬盘,例如你的文件在C:YourDriver,
则SUPPORTDIR在程序中要替换为 "C:\\YourDriver\\".
例如:
szCmdLine = "setupapi.dll,InstallHinfSection Manufacturer 132 "+"c:\\temp\\"+"qcmdm2k.inf";
if(LaunchAppAndWait("rundll32.exe", szCmdLine, WAIT)<0) then

----------------------------------------------------------------
hongstx
驱动牛犊
驱动牛犊
  • 注册日期2005-01-17
  • 最后登录2005-04-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-02 17:14
用SetupCopyOEMInf需要包含<Setupapi.h>头文件
wasprui
驱动牛犊
驱动牛犊
  • 注册日期2004-04-12
  • 最后登录2005-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-06-11 21:04
我也不知道132是什么意思,照着拷不行,执行后屏幕闪了一下,一切都是老样子。
l_hy_q
驱动牛犊
驱动牛犊
  • 注册日期2005-06-24
  • 最后登录2005-06-29
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-06-28 16:49
用SetupCopyOEMInf需要包含头文件hid.h人,但是要Link Setupapi.lib hid.lib就可以,不过本人用过好像不行!
foruok
驱动牛犊
驱动牛犊
  • 注册日期2005-06-27
  • 最后登录2006-03-22
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望7点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-08-09 13:20
132是需要重起时通知用户.
这种方法我实验了一下不行,在98下装不成功.我用它装raspppoe098b的驱动程序
xinerxf
驱动牛犊
驱动牛犊
  • 注册日期2004-09-27
  • 最后登录2008-12-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-08-11 09:12
在Install shield 脚本中可以使用 SetupCopyOEMInf 函数

只需加上函数声明:prototype BOOL SetupAPI.SetupCopyOEMInfA  (STRING, STRING, LONG, LONG, STRING, LONG, LONG, STRING);

就可以直接调用:UpdateFlag = SetupCopyOEMInfA (InfPath, "", SPOST_PATH, NULL, InfName,255, NULL, "");
wanted999
驱动牛犊
驱动牛犊
  • 注册日期2006-03-28
  • 最后登录2012-08-13
  • 粉丝0
  • 关注0
  • 积分519分
  • 威望429点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-05-30 10:39
thank you~
游客

返回顶部