您的位置:程序门 -> vb -> 数据库(包含打印,安装,报表)



指定默认打印机打印问题!!!!!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


指定默认打印机打印问题!!!!!!
发表于:2007-12-20 21:05:54 楼主
        非常谢谢你上次给我的关于指定打印机打印问题的代码。我当时试的是连接在同一台电脑上的两台打印机(只是安装了驱动,没有物理打印机),这样没有问题,但是现在软件正式开始使用了,有一台没有连接在本台电脑上,好象不行,修改不了默认打印机。这是怎么回事呢???以下是实际的两台物理打印机。

private   sub   datareport_initialize()
        call   setdefaultprinter("\\epson   lq-1600kiii")
end   sub
此台打印机是网络上其他电脑上安装的,我写成   call   setdefaultprinter("\\epson   lq-1600kiii")或者   call   setdefaultprinter("epson   lq-1600kiii")或者   call   setdefaultprinter("\\wk2\epson   lq-1600kiii")也不行,但是这台打印机如果是安装本台电脑上的就没有问题。

private   sub   datareport_queryclose(cancel   as   integer,   closemode   as   integer)
        call   setdefaultprinter("epson   lq-630k")
        end
end   sub
epson   lq-630k打印机是连接在本台电脑上的
还有就是顺便问一下:call   setdefaultprinter("\\pc1epson   lq-680k   esc/p   2")
中的pc1epson   lq-680k   esc/p   2应该只是打印机名称吧?需要指定是哪台电脑安装的吗?必须要用\\这个符号吗(是网络路径吗)?
****我本想把这两台打印机都连接在同一电脑上,但是受办公条件和位置的影响,epson   lq-1600kiii不能连接在该台电脑上。
发表于:2007-12-21 19:10:201楼 得分:0
引用windows   script   host   object   model
添加   2个按钮1个listbox
assembly code
option explicit private sub command1_click() dim a as printer for each a in printers list1.additem a.devicename next end sub private sub command2_click() dim ps as string dim wn as new wshnetwork ps = list1.list(list1.listindex) debug.print ps wn.setdefaultprinter ps end sub
发表于:2007-12-22 07:58:252楼 得分:0
你的问题主要是你参数不正确,网络打印机有一个共享名称,你要输入这个共享名称才行。你可以参考楼上小刀的代码,list1中就是本机所有打印机名称,包括网共享打印机名称
发表于:2007-12-22 09:25:063楼 得分:0
还有,按我的经验,你的这个系统,不能将打印机名称固定写在代码中,而是应该写在配置文件中。理由很简单,不同的公司不同的打印机,这样有更好的适用性,还有即便你是自己公司用,那天换了台打印机,或者重装系统共享打印机改了名称等等,这样只要修改一下配置文件就行了。
发表于:2007-12-22 14:29:094楼 得分:0
谢谢您们的指点!
epson   lq-1600kiii是网络上另外一台电脑安装此打印机时共享出来的名称。
还有就是我在安装网络打印机的时候,就自动出现了两个名称,一个是“epson   lq-1600kiii   在wk2上”,另外一个是“在   wk2上   自动   epson   lq-1600kiii”,这两个都可以打印,你说的共享名称就应该是“epson   lq-1600kiii”吧?
还有就是关于配置文件问题,我最初都是这样想的,把打印机写进程序肯定是不好的,但是现在主要是只有我一个人,很多东西我也不懂,我现在主要是用vb+sql2000做的,现在追求的只有是能用就行,效率方面慢慢改进,很多时候没有办法啊,别见笑哦。
我再试试吧,谢谢您们啦!
发表于:2007-12-22 14:37:105楼 得分:0
你可以删除其中一个,但那个参数名称一定要完整,你参考上面小刀的代码,用printer对象来获得准确的名称,并不一定就是“epson   lq-1600kiii”

vbscript code
private sub command1_click() dim a as printer for each a in printers debug.print a.devicename next end sub


这样你就可以在立即窗口打印出本机所有打印机名称,复制到你代码中去
发表于:2007-12-22 14:42:366楼 得分:0
好的,谢谢,我再试一下!


快速检索

最新资讯
热门点击