阅读:15425回复:64
怎样把打印机驱动程序做成安装程序?
有一个虚拟打印机的程序,BOSS要求做成安装程序,就是直接一装就好而不到添加打印机里那样添加。要求打包工具用InstallShield。
我的驱动一共就只有两个dll,一个ini,一个inf。InstallShield我从来没用过,用Project Wizard做了一个安装包。运行之后并不能把打印机装上。我去3里看了看,dll和ini都有了,但是BUD文件和GPD文件没有(这两个文件怎么来的我一直不明白),打印机里也没有显示出新装的打印机。(驱动没有问题,添加打印机那样装是好的) 我不知道驱动程序时候能够这样安装,如果能的话请教大家我要怎么做。Project Wizard是否能够完成所有的工作,是不是还要做些别的设置?多谢多谢! |
|
最新喜欢:![]() |
沙发#
发布于:2003-06-25 13:02
还得要自己写一个安装程序专门用来安装打印机驱动,你可以看看AddPrinter和AddPrinterDriver函数。
|
|
|
板凳#
发布于:2003-06-25 15:37
你的是2000/XP下的还是98下的?
2000/XP我做过一个,98的还没有. |
|
地板#
发布于:2003-06-25 15:38
2000下的!!!!!!!!
[编辑 - 8/15/04 by songkiki] |
|
地下室#
发布于:2003-06-25 17:46
如果是简单的加一个打印机,可以调用
rundll32.exe printui.dll,PrintUIEntry /if /f .\\\\OEMSETUP.INF /r \"LPT1:\" /b \"TVP3000 Printer\" /m \"TVP3000 Printer\" (假定使用端口是LPT1,打印名是TVP3000) 可以打rundll32.exe printui.dll,PrintUIEntry /?获得更多帮助. 如果是添加端口或者删除端口,好像不写代码不行,要这方面的源程序的话我整理一下再贴出来. |
|
5楼#
发布于:2003-06-25 17:51
谢谢你,不过这些东西我都是头一次听说,他们要写在哪呢?
[编辑 - 6/25/03 by songkiki] |
|
6楼#
发布于:2003-06-25 18:58
可以在程序里用CreateProcess(...)或exec(...)等函数执行
rundll32.exe printui.dll ..... eg, CreateProcess(\"C:\\\\WINDOWS\\\\SYSTEM32\\\\RUNDLL32.EXE\", \"rundll32.exe printui.dll,PrintUIEntry /if /f .\\\\OEMSETUP.INF /r \\\"RPT1:\\\" /b \\\"TVP3000 Printer\\\" /m \\\"TVP3000 Printer\\\"\"), NULL, NULL, FALSE, 0, NULL, NULL, &Si, &Pi); 在installsheild里直接抄这两句就行了, RUNDLL32.EXE和PRINTUI.DLL都是WINDOWS自带的. 用这个方法缺点是得不到返回值. [编辑 - 6/25/03 by caesun] |
|
7楼#
发布于:2003-06-25 20:27
哦,这样也行啊。有AddPrinter和AddPrinterDriver API函数就是用来安装打印机的。98、2k下都可以
|
|
|
8楼#
发布于:2003-06-26 09:22
to caesun :
你说的两句的第一句的省略号代表什么呢? rundll32.exe printui.dll ..... eg, 是这句吗? rundll32.exe printui.dll,PrintUIEntry /if /f .\\\\OEMSETUP.INF /r \"LPT1:\" /b \"TVP3000 Printer\" /m \"TVP3000 Printer\" 我的InstallShield 是用Project wizard做的,说实话,我第一次用它,如果要写代码的话是不是就不能用Project wizard了? to 刷牙的小老鼠: 你给我的两个函数是要在那里调用呢?也是InstallShield 里吗?那么问题同上。 谢谢你们! |
|
9楼#
发布于:2003-06-26 10:00
caesun:
你能给我找找添加端口的代码吗?或者发个工程给我,谢谢谢谢啦! |
|
10楼#
发布于:2003-06-26 10:02
you can open a cmd prompt windown and type
rundll32.exe printui.dll,PrintUIEntry /if /f .\\\\OEMSETUP.INF /r \"LPT1:\" /b \"TVP3000 Printer\" /m \"TVP3000 Printer\" to have a test. for more helps, please type rundll32.exe printui.dll /? good luck! |
|
11楼#
发布于:2003-06-26 13:24
to caesun : 不是,你不写再作一个程序专门用来安装你的打印机。这个程序最后和打印机驱动一起打包在installshield中,安装时由installshield安装程序调用安装 |
|
|
12楼#
发布于:2003-06-26 17:02
楼主请查收PORT操作的程序.
程序没整理过,简陋的很. |
|
13楼#
发布于:2003-06-26 17:07
好人啊,感激!!!我在看,就是还没看明白,呵呵
|
|
14楼#
发布于:2003-06-27 09:40
为什么好多乱码呢?
// stdafx.h : |
|
15楼#
发布于:2003-06-27 09:58
…>_<… 晕了,看不懂啊,你的程序是想实现什么功能呢?
|
|
16楼#
发布于:2003-06-27 14:06
讨论了半天,能不能把代码贴出来啊?共同学习。
我是用AddPrinter和AddPrinterDriver API函数安装打印机的,安装成功了但不能使用DeletePrinter删除打印机,不知如何解决。 |
|
17楼#
发布于:2003-06-27 17:24
哇!那能不能把你的代码给我一份啊,我能装就好!!!
他给我发的是一个工程,我没看懂什么用。 到是上面那个运行命令行有用,可是不知道哪里不对,运行说执行错误,正在研究中…… |
|
18楼#
发布于:2003-06-27 17:48
还要请教一下caesun :
你的这句 rundll32.exe printui.dll,PrintUIEntry /if /f .\\\\OEMSETUP.INF /r \"LPT1:\" /b \"TVP3000 Printer\" /m \"TVP3000 Printer\" 最后一个\"TVP3000 Printer\"说的是什么呢?前面那个应该是打印机的名称,这个也是吗?我看帮助上说应该是打印机的信息,不过如果是我自己写的程序,应该是什么呢?就是打印机名字吗? 这个, 运行 inf 安装: 和用 inf 添加打印机驱动程序: 的区别是什么呢?我看在帮助里这是两个类型,可是我觉得意义是一样的啊 [编辑 - 6/27/03 by songkiki] |
|
19楼#
发布于:2003-06-28 09:19
讨论了半天,能不能把代码贴出来啊?共同学习。 delete的过程应该正好是相反的,你的先用DeletePrinterDriver删除打印机驱动,然后调用DeletePrinter试试 |
|
|
上一页
下一页