wguxue21cn
驱动牛犊
驱动牛犊
  • 注册日期2003-10-14
  • 最后登录2004-09-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1624回复:5

高分求助--打印机驱动安装文件的制作!

楼主#
更多 发布于:2004-05-15 12:30
我们是打印机销售,OEM之类的公司,打印机用的是EPSON的驱动程序,但是公司为了提高点形象,要把驱动信息做成一个安装文件,点击安装以后,往注册表里面写信息,然后就可以在打印机列表里面看到增加了新打印机,并且可以使用!现在我不知道具体要写哪些东西到哪里,求救各位大侠,指点一下,最好哪里有应用笔记或者DEMO程序!!!谢谢!
好男人应该象linux 强壮,稳健,有力 多才多艺 信守诺言...... 多任务多用户--有点花心 但如果你一旦成功登陆为root 你就可以把你看不顺眼的process kill掉...... ????还完全免费????
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-16 13:49
做安装程序大致分3步:
1、是把驱动文件拷贝系统目录(98下是SYSTEM,2K/XP是system32\\spool\\drivers\\w32x86\\3)
4、调用AddPrinter函数
3、调用AddPrinterDriver函数

以前有人讨论过,你和查一查以前的贴子
http://www.driverdevelop.com/forum/html_56808.html?1084685532

学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
wguxue21cn
驱动牛犊
驱动牛犊
  • 注册日期2003-10-14
  • 最后登录2004-09-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-17 09:10
谢谢关注,等后面看看有没有更好的答案再给分!
好男人应该象linux 强壮,稳健,有力 多才多艺 信守诺言...... 多任务多用户--有点花心 但如果你一旦成功登陆为root 你就可以把你看不顺眼的process kill掉...... ????还完全免费????
mooneye
驱动牛犊
驱动牛犊
  • 注册日期2004-04-05
  • 最后登录2005-07-28
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-05-17 16:41
基本就是snowstart兄弟说得那样,但是那几个支持文件你要搞清楚,具体的你参看msdn重addpinterdriver和addprinter帮助就可以了!!但是是将需要支持的文件copy到system32\\spool\\drivers\\w32x86目录下,安装的时候系统会自动将你的支持文件copy到system32\\spool\\drivers\\w32x86\\3目录下的,不要搞错了!!
davy_yang
驱动牛犊
驱动牛犊
  • 注册日期2004-01-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-05-19 11:43
以上两位说得正确。不过这是虚拟打印机的安装,如果是打印机硬件安装驱动的话,要在注册表里写些东西,而且在删除时也要把它删除,而且要在INF目录下把oemN.inf和 oemN.pnf文件删除。最好是写一个.dll用SetupDiCallClassInstaller(DIF_REGISTERDEVICE,
        DeviceInfoSet,
        &DeviceInfoData)来安装,这样就不要用addprinter和addprinterdriver了,而且删除是是用:SetupDiCallClassInstaller(DIF_REMOVE,
                    DeviceInfoSet,
                    &DeviceInfoData)。这样来就会在注册表里的东西删除得很干净了,在删除之前先找注册表里的类,然后再找RegQueryValueEx(hDrvRegKey, \"InfPath\", NULL, NULL, (LPBYTE) szInfFile, &dwBufSize);,这时返回值是oemN.inf,这样你就可以把INF的文件和其他文件删除了。做好这一切后你就可以用installshield 来调用你的.dll了。

以上只是我个人的观点。说了简单,不过做起来问题倒不少的,我是今天刚刚作完这样的安装。我的是USB 端口打印机。安装和卸载都完成了。可以轻松一下啦。
davy_yang@163.com
cliicy
驱动牛犊
驱动牛犊
  • 注册日期2003-12-05
  • 最后登录2004-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-25 12:14
以上两位说得正确。不过这是虚拟打印机的安装,如果是打印机硬件安装驱动的话,要在注册表里写些东西,而且在删除时也要把它删除,而且要在INF目录下把oemN.inf和 oemN.pnf文件删除。最好是写一个.dll用SetupDiCallClassInstaller(DIF_REGISTERDEVICE,
        DeviceInfoSet,
        &DeviceInfoData)来安装,这样就不要用addprinter和addprinterdriver了,而且删除是是用:SetupDiCallClassInstaller(DIF_REMOVE,
                    DeviceInfoSet,
                    &DeviceInfoData)。这样来就会在注册表里的东西删除得很干净了,在删除之前先找注册表里的类,然后再找RegQueryValueEx(hDrvRegKey, "InfPath", NULL, NULL, (LPBYTE) szInfFile, &dwBufSize);,这时返回值是oemN.inf,这样你就可以把INF的文件和其他文件删除了。做好这一切后你就可以用installshield 来调用你的.dll了。

以上只是我个人的观点。说了简单,不过做起来问题倒不少的,我是今天刚刚作完这样的安装。我的是USB 端口打印机。安装和卸载都完成了。可以轻松一下啦。
 




请问:你用这种方法安装好打印机后,如果你的打印机是系统中第一个被安装上的打印机,那你的打印机将会被系统设为默认的打印机,这样被系统设为默认的打印机后你的打印机的驱动程序将会被系统占用,那这时你的打印机驱动程序能够被重命名或被更新的驱动程序替换吗?
游客

返回顶部