Public Declare Function MapPhysToLin Lib "TM88II.DLL" (ByVal PhysAddr As Long, ByVal PhysSize As Long, ByRef PhysMemHandle) As Long
Public Declare Function UnmapPhysicalMemory Lib "TM88II.DLL" (ByVal PhysMemHandle, ByVal LinAddr) As Boolean
Public Declare Function GetPhysLong Lib "TM88II.DLL" (ByVal PhysAddr As Long, ByRef PhysVal As Long) As Boolean
Public Declare Function SetPhysLong Lib "TM88II.DLL" (ByVal PhysAddr As Long, ByVal PhysVal As Long) As Boolean
Public Declare Function GetPortVal Lib "TM88II.DLL" (ByVal PortAddr As Integer, ByRef PortVal As Long, ByVal bSize As Byte) As Boolean
Public Declare Function SetPortVal Lib "TM88II.DLL" (ByVal PortAddr As Integer, ByVal PortVal As Long, ByVal bSize As Byte) As Boolean
Public Declare Function InitializeWinIo Lib "TM88II.DLL" () As Boolean
Public Declare Function ShutdownWinIo Lib "TM88II.DLL" () As Boolean
Public Declare Function InstallWinIoDriver Lib "TM88II.DLL" (ByVal DriverPath As String, ByVal Mode As Integer) As Boolean
Public Declare Function RemoveWinIoDriver Lib "TM88II.DLL" () As Boolean
Public IOStat As BooleanPublic Function GetPrnStat(ByVal LptPort As String) As Long
Dim PrnAddr As Long
On Error Resume Next
If IOStat = False Then IOStat = InitializeWinIo()
If IOStat Then
If UCase(LptPort) = "COM1:" Then
PrnAddr = &H379
ElseIf UCase(LptPort) = "COM2:" Then
PrnAddr = &H279
End If
GetPortVal PrnAddr, GetPrnStat, 1
Else
GetPrnStat = &HFF
End If
GetPrnStat = GetPrnStat And &HF8
Select Case GetPrnStat
Case &H68, &H58, &H70
GetPrnStat = 1 'No paper
Case &H78
GetPrnStat = 2 'No contact
Case &HD8
GetPrnStat = 0 'Normal
Case Else
GetPrnStat = 3 'Error
End Select
End FunctionPublic Function CheckPrintErr(ByVal PrintName As String) As Long
'CheckPrintErr
'0£ºNo Error
'1£ºNo Contact
'2£ºNo paper
'3£ºNo install printer
Dim printjieguo As Long
Dim i As Long, k As Long
On Error GoTo ErrCheckPrint
If Printers.Count = 0 Then
CheckPrintErr = 4 'No install printer
Exit Function
End If
'Check printer Contact
For i = 0 To Printers.Count - 1
If (Printers(i).DeviceName = PrintName) Then
k = k + 1
Exit For
End If
Next
If k = 0 Then 'Printer Name Error
CheckPrintErr = 5
Exit Function
End If
Set Printer = Printers(i)
CheckPrintErr = GetPrnStat(Printer.Port)
Exit Function
ErrCheckPrint:
CheckPrintErr = 3
Exit Function
End Function执行到上面一步,IOStat 还是等于 False
DLL已经注册了。
Public Declare Function UnmapPhysicalMemory Lib "TM88II.DLL" (ByVal PhysMemHandle, ByVal LinAddr) As Boolean
Public Declare Function GetPhysLong Lib "TM88II.DLL" (ByVal PhysAddr As Long, ByRef PhysVal As Long) As Boolean
Public Declare Function SetPhysLong Lib "TM88II.DLL" (ByVal PhysAddr As Long, ByVal PhysVal As Long) As Boolean
Public Declare Function GetPortVal Lib "TM88II.DLL" (ByVal PortAddr As Integer, ByRef PortVal As Long, ByVal bSize As Byte) As Boolean
Public Declare Function SetPortVal Lib "TM88II.DLL" (ByVal PortAddr As Integer, ByVal PortVal As Long, ByVal bSize As Byte) As Boolean
Public Declare Function InitializeWinIo Lib "TM88II.DLL" () As Boolean
Public Declare Function ShutdownWinIo Lib "TM88II.DLL" () As Boolean
Public Declare Function InstallWinIoDriver Lib "TM88II.DLL" (ByVal DriverPath As String, ByVal Mode As Integer) As Boolean
Public Declare Function RemoveWinIoDriver Lib "TM88II.DLL" () As Boolean
Public IOStat As BooleanPublic Function GetPrnStat(ByVal LptPort As String) As Long
Dim PrnAddr As Long
On Error Resume Next
If IOStat = False Then IOStat = InitializeWinIo()
If IOStat Then
If UCase(LptPort) = "COM1:" Then
PrnAddr = &H379
ElseIf UCase(LptPort) = "COM2:" Then
PrnAddr = &H279
End If
GetPortVal PrnAddr, GetPrnStat, 1
Else
GetPrnStat = &HFF
End If
GetPrnStat = GetPrnStat And &HF8
Select Case GetPrnStat
Case &H68, &H58, &H70
GetPrnStat = 1 'No paper
Case &H78
GetPrnStat = 2 'No contact
Case &HD8
GetPrnStat = 0 'Normal
Case Else
GetPrnStat = 3 'Error
End Select
End FunctionPublic Function CheckPrintErr(ByVal PrintName As String) As Long
'CheckPrintErr
'0£ºNo Error
'1£ºNo Contact
'2£ºNo paper
'3£ºNo install printer
Dim printjieguo As Long
Dim i As Long, k As Long
On Error GoTo ErrCheckPrint
If Printers.Count = 0 Then
CheckPrintErr = 4 'No install printer
Exit Function
End If
'Check printer Contact
For i = 0 To Printers.Count - 1
If (Printers(i).DeviceName = PrintName) Then
k = k + 1
Exit For
End If
Next
If k = 0 Then 'Printer Name Error
CheckPrintErr = 5
Exit Function
End If
Set Printer = Printers(i)
CheckPrintErr = GetPrnStat(Printer.Port)
Exit Function
ErrCheckPrint:
CheckPrintErr = 3
Exit Function
End Function执行到上面一步,IOStat 还是等于 False
DLL已经注册了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货