注册 登录
编程论坛 VB6论坛

打印机名称赋值错误

w360989426 发布于 2014-03-24 12:19, 552 次点击
只有本站会员才能查看附件,请 登录

我有2个打印机,\\192.168.0.37\EPSON LQ-730K ESC/P2 与 \\192.168.0.4\hp LaserJet 1010
当我将\\192.168.0.4\hp LaserJet 1010设为默认打印机时,出现以下画面,让我选择打印机
我选择了\\192.168.0.37\EPSON LQ-730K ESC/P2,但是最后到类模块这段赋值错误
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

不等于\\192.168.0.37\EPSON LQ-730K ESC/P2,错误,
此段代码为strNewPrinterName = UCase$(Left(DevMode.dmDeviceName, _
                        InStr(DevMode.dmDeviceName, Chr$(0)) - 1))
这段代码影响后面的判断
   For Each objPrinter In Printers
        If UCase$(objPrinter.DeviceName) = strNewPrinterName Then _
          Set Printer = objPrinter
      Next
求指导谢谢
不知为什么,还请大师指导一下,



[ 本帖最后由 w360989426 于 2014-3-24 12:25 编辑 ]
9 回复
#2
w3609894262014-03-24 16:48
大侠们,来救救我啊
#3
w3609894262014-03-24 19:59
选择\\192.168.0.4\hp LaserJet 1010不会出现这样的错误,就是选择\\192.168.0.37\EPSON LQ-730K ESC/P2会出现这样的错误,这是为什么啊。。版主来救救啊
#4
lowxiong2014-03-24 20:54
你首先得确认在系统下EPSON LQ-730K ESC/P2能打印,其次你把EPSON LQ-730K ESC/P2随便改个名字试试,也许在vb里“/”会当作路径分隔符。
没有条件实验,纯分析。
#5
w3609894262014-03-25 14:29
回复 4楼 lowxiong
版主,您好,我已经将ESC/P2 给去掉了,结果测试正常,但是有一个问题,我自己明白,但是我开发给别人用,并不能跟别人说把打印机名字改一下才能用,别人不懂这个东西,敢问版主还有其他方法可以解决这个问题!
#6
w3609894262014-03-25 19:53
回复 4楼 lowxiong
版主,有解决方法吗?
#7
lowxiong2014-03-25 20:24
没环境做实验,一下给不出答案。
一般来说,本机打印机是不会出现这种情况的,而网络打印机规则上命名不能输入“/ \”的,不知道你的为什么会出现这种情况。
#8
w3609894262014-03-25 21:51
回复 7楼 lowxiong
应该不会啊。。那前面的IP地址不是没有发生错误么
#9
风吹过b2014-03-26 08:58
估计是按 C++ 的转义来的。

\\  取消转意,
\字母  代表一个意思,然后放在字符串里时,转意后给 应用。然后就错误了。。。。

如果是这种,只有一种解决办法。你去翻一下 C++ 的转意代码,然后把转意表放到你应用里。
如果发现打印机名里包含 \字母  ,或者转意后的不可打印字母, 查这个表,进行还原成 不转意之前的内容。

-------------------
你自己测试一下吧,我们没这个环境测试。
仅仅是猜测。
#10
w3609894262014-03-26 18:16
好吧
1