这两天真是不顺利,首先是昨天模块软件的事情,今天结果又是对方人员说我们组成的数据帧正确,她测试也OK,结果我们自己无论怎么发送就是不行。
然后又是那个传真软件的事情,简直令我抓狂。好端端的一个程序,外部调用后再内部调用打印,结果WIN2K就是报告找不到打印机,WINXP就是可以,还有一个头疼的,我的是WINXP,测试OK,让同事WIN2K帮我测试,告诉我OK,然后我就气势汹汹地冲到报告人那里,以为重装软件,重装打印机驱动,或者SFC /SCANNOW /SCANNOW 立即扫描所有受保护的系统文件。 应该可以解决,结果折腾了半天还是屡次出现,唯一的收获是找到一个不同之处:
如果先运行软件,那么无论是外部调用打印还是内部调用打印,均OK,但是一旦先外部调用,那么内部调用肯定失败。
然后回来再到同事那里一运行,也是一样的效果,我简直无话可说。一问他为什么刚才说可以,他就说我也不知道啊。什么世道?!又不是刚出道的学生,好歹也是一个硕士,年纪也不小了,只好把火气憋住了。不禁怀念那个辞职的同事。
所谓内部调用,就是软件本身模拟了一个资源管理器,选择文件进行发送;外部调用是指直接从外部程序如WORD打印到传真打印机。
做了三个测试版本,非常奇怪的是:显示代码走到PRINTERS.COUNT判断的时候就说明数目为0。可是系统明明有两个打印机。使用COMMONDIALOG.SHOWPRINTER显示却有两个打印机。
回来自己安装了一个WIN2K,调试了一下,的确一外部调用,从程序运行开始就是0了。
Printers 集合可用来查询可用的打印机,这样就可以为应用程序指定一台缺省打印机。例如也许要找出哪些可用打印机用了指定的打印驱动程序。下面的代码查找所有的可用打印机,定位在第一个将页码方向设置为纵向的打印机,然后将其设置为 Portrait。
Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
\’设定为系统缺省打印机。
Set Printer = X
\’ 终止查找打印机。
Exit For
End If
Next
dim i as integer
for i=0 to Printers.count-1
debug.print printer(i).devicename
next
printers.count显示打印机的数目
调用方式:WINWinExec(strExe,SW_SHOW);
The WinExec function runs the specified application.
This function is provided for compatibility with 16-bit Windows. Win32-based applications should use the CreateProcess function
In Win32, the WinExec function returns when the started process calls the GetMessage function or a time-out limit is reached. To avoid waiting for the time out delay, call the GetMessage function as soon as possible in any process started by a call to WinExec
Private Sub Form_Load()
MsgBox Str(Printers.Count)
If Printers.Count > 0 Then
End If
MsgBox "BPrns " + Str(BPrns)
If Not BPrns Then \’找不到打印机
MsgBox "Can not Find printer,please install the software again!", vbCritical
End If
Exit Sub
ee:
MsgBox Err.Description, vbCritical
调试结果就是报告数目为0,BRNS为FALSE,然后自然就是报告找不到打印机。活活郁闷~~~~~
历史博文
- 嵌入式Linux学习笔记(一)-嵌入式Linux基础知识和开发环境的构建 - 技术文章 - DoDo's Blog - 2010
- 20081114 wpf flash ocx - 2009
- 20071023 linux schedule pthread_create - 2008
- 20070218 opennms install 5 - 2007
- 0317 Windows Genuine Advantage GenuineCheck update - 2006
- microsoft sms api - 2005
- 禁止IE弹出窗口的弊端 - 2005
- WIN2K/WINXP共存看版本 - 2005
- µC/OS-II UCOSII学习笔记1 - 2005