iandvb
驱动牛犊
驱动牛犊
  • 注册日期2003-06-05
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1531回复:7

关于使用程序实现驱动程序安装的问题

楼主#
更多 发布于:2003-06-18 18:02
困扰我多日的程序实现驱动程序安装的问题
我大概在论坛上面翻了翻
有这么一些解决方案,小弟有些疑问请指教:
 
1.使用ntddk里面的驱动安装例子
这样的话只要小小改动就可以用了
但是在98环境下无法工作(这就是我最头疼的)

2.写程序执行inf所要做的工作,包含文件copy和注册表修改(不知是否有遗漏)
我不太明白怎么知道安装驱动程序时对注册表有那些操作,有为大虾说通过监测注册表的前后变化收集到了这些改动,能不能教教我呢我好想知道。

3.一个csdn那里的牛人寄了个wxxxxxxxx写的fastinstall给我
我看了看说明,好像是说用了之后,双击inf就可安装了,但是需
要在vc1.52下build,我没有,只好作罢


请有经验的xdjm们指点迷津
xyyln
驱动老牛
驱动老牛
  • 注册日期2003-01-02
  • 最后登录2009-12-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-19 09:48
去看看fastinstall的新版本
[img]http://www.jt99.com/zjbbs/UploadFile/2003113018513643830.gif[/img]
iandvb
驱动牛犊
驱动牛犊
  • 注册日期2003-06-05
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-19 11:20
去哪里可以弄的到呢
hanfuxu
驱动牛犊
驱动牛犊
  • 注册日期2001-07-14
  • 最后登录2009-01-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-21 11:32
我在论坛中找到的部分代码,稍稍改了一下,还没试过,你先试试!
对于98的安装!你的2k的安装用ddk中Install的例子?我也没试过呢!
好用吗?

void InstallDriver98(char InfFile[],char SysFile[])
{
TCHAR CurrenPath[MAX_PATH],InfPathName[MAX_PATH];
TCHAR WinDir[MAX_PATH],WinDir1[MAX_PATH];
TCHAR WinDir2[MAX_PATH];
GetWindowsDirectory(WinDir,MAX_PATH);
lstrcat(WinDir,\"\\\\inf\\\\\");lstrcat(WinDir,InfFile);

GetCurrentDirectory(MAX_PATH,CurrenPath);
lstrcpy(InfPathName,CurrenPath);
lstrcat(InfPathName,\"\\\\\");lstrcat(InfPathName,InfFile);
CopyFile(InfPathName,WinDir,TRUE);

////////////////////////////////
//*******************************
GetWindowsDirectory(WinDir,MAX_PATH);
lstrcat(WinDir,\"\\\\system32\\\\drivers\\\\\");lstrcat(WinDir,SysFile);
lstrcpy(InfPathName,CurrenPath);
lstrcat(InfPathName,\"\\\\\");lstrcat(InfPathName,SysFile);
CopyFile(InfPathName,WinDir,TRUE);

// ɾ³ýÐÅÏ¢¿â
GetWindowsDirectory(WinDir1,MAX_PATH);
GetWindowsDirectory(WinDir2,MAX_PATH);
lstrcat(WinDir1,\"\\\\inf\\\\drvidx.bin\");
DeleteFile(WinDir1);

lstrcat(WinDir2,\"\\\\inf\\\\Drvdata.bin\");
DeleteFile(WinDir2);

}
iandvb
驱动牛犊
驱动牛犊
  • 注册日期2003-06-05
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-27 10:53
ntddk里面的那个例子不错,我在nt下用它没问题

在ntddk-->src-->general-->setup-->install里
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-27 12:08
我是这样做的:

仍然使用SetupAPI,基于INF,但界面自己提供。
安装程序主要把文件copy到目的地(按照INF中的指示),以及是INF copy到INF目录中,然后把这个INF修改掉(主要是去掉copyfile那几行)。

这样,当插上设备时,就能自动装上了。

觉得这样做比较省事 :)
我打字很快。
zhangyuancau
驱动牛犊
驱动牛犊
  • 注册日期2003-04-27
  • 最后登录2003-07-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-28 16:24
小弟有一个投机的方法,但是似乎不灵光
想要在用户不干预的情况下安装驱动程序
把类似c:\\windows\\rundll.exe setupx.dll,InstallHinfSection InstallSectioName 132 %1这样的命令行作了个BAT文件 这就类似
键点‘安装’INF

然后执行。看起来FIELCOPY里的文件完全COPY过去了,但是不知道为什么注册表修改的不完全,结果驱动还是装不上去。

用REG TRACER和正确的安装比较,确实少改了好多项目,可是
这些项目我在ADDREG那里都看见了(这个INF是绝对对的)

希望大侠教我,到底这种方式和一般的用管理器安装有什么不同?
可不可以完成驱动的安装呀?
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-02 18:18
ddk里有一个很好的工具,叫devcon,有很多的功能,但就是没有源码,不知道哪位仁兄有这方面的信息
今天我发现我家的金鱼淹死了,:(
游客

返回顶部