阅读:2499回复:7
inf文件做成exe文件来安装问题,请高手关注讨论!
系统为WIN2K,设备是一个端口设备,用厂商提供的inf和sys可以正确安装,
现在我想做成一个exe文件来安装驱动,用的是SetupCopyOEMInf函数 如下的代码可以在WINNT\inf目录下产生oem*.inf和oem*.PNF,可 是我重启系统后插入硬件设备,还是提示发现新硬件,然后还是要 指定文件位置,就和什么都没做安装新硬件一样 BOOL CSetupInfDlg::SetupInf(CString InfName) { if(!SetupCopyOEMInf(InfName, NULL, SPOST_PATH, SP_COPY_DELETESOURCE, NULL, 0, NULL, NULL )) return 0; else return 1; //正常返回1,成功 } void CSetupInfDlg::OnButton1() { bool IsSetupOK; CString lpszValue; lpszValue="C:\\OXSER_c.INF"; IsSetupOK = SetupInf(lpszValue); } //上面好象没有改注册表的任何地方,我想这种做法是否有问题? 我只要在VC中编成exe文件来用,不用installshied等打包工具 |
|
最新喜欢:![]() |
沙发#
发布于:2004-11-23 08:46
上面是winnt下的inf,怎么斜杠不能显示
lpszValue="C:\OXSER_c.INF"; 上面也是显示少了一条斜杠 [编辑 - 11/23/04 by chenggp_fj] |
|
板凳#
发布于:2004-11-23 09:07
光拷贝inf不行吧,是不还要把驱动文件拷贝到系统目录
|
|
|
地板#
发布于:2004-11-23 10:01
都拷了
sys拷到system32下的drivers下了 dll拷到了system32下了 用发现新硬件-》指定文件所在目录 的方式。正确安装后有改注册表,但用我上面的代 码没有改注册表,这样能行吗?我疑惑的很,但是注册表我们 不能强行去改吧,因为我们无法确定端口是COM4,COM5还是COMn ,另外XP下的节点还有权限限制 [编辑 - 11/23/04 by chenggp_fj] |
|
地下室#
发布于:2004-11-23 13:21
????????
???????? 没人会是吗? |
|
5楼#
发布于:2004-11-28 21:28
把sys拷到system32\\drivers下是不行的,具体放哪儿要看你的inf文件是怎么写的。
按下面的做法试试,应该问题不大: 1,注释掉inf文件中的SourceDisksFiles和SourceDisksNames两节; 2,新建一个目录,然后把sys文件和inf文件放在此目录下; 3,以“新目录名\\xxx.inf”作为参数调用SetupCopyOEMInf; 4,插上设备,应该能够自己找到sys文件。 [编辑 - 11/28/04 by tigerL] |
|
|
6楼#
发布于:2004-11-30 17:40
sys文件不是必须的拷贝到系统文件夹下面吗?
要不能装上吗? 如果不拷贝到系统文件夹下面的话, 能装上吗?(能完成驱动的自动装载吗?) 还想问一下:装载驱动的时候要将什么文件拷贝到系统文件夹下面? (出来sys以外应该还有别的文件吧?) |
|
|
7楼#
发布于:2004-11-30 22:22
如果是2k那么,执行完安装之后,插上设备,系统会自动把驱动程序从安装目录下复制系统目录下,并执行安装。
如果是xp那么,如果驱动程序和inf文件没有经过数字签名,系统会弹出“发现新硬件”窗口,你只需点“下一步”即可完成安装。 |
|
|