另类判断打印机是否为脱机状态的方法

来源:互联网 发布:金兰软件官方网站 编辑:程序博客网 时间:2024/04/29 04:57

'取得窗体句柄Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Integer, ByVal wCmd As Integer) As IntegerPublic Const GW_HWNDPREV As Short = 3Public Const GW_HWNDNEXT As Short = 2Public Const GW_HWNDFIRST As Short = 0Public Const GW_OWNER As Short = 4'取得窗体文本Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Integer, ByVal lpString As String, ByVal cch As Integer) As Integer'查找运行程式列表中是否有指定标题的程式Public Function FindRunningProgram(ByVal PrgName As String, Optional ByVal ExtString As String = "") As IntegerDim RenHWND As IntegerDim RetValue As IntegerDim WinText As New VB.Compatibility.VB6.FixedLengthString(256)Dim fgFindRunningProgram As Integer'取得第一个HwndRenHWND = GetWindow(Form7.Handle.ToInt32, GW_HWNDFIRST)Do  '取得标题  RetValue = GetWindowText(RenHWND, WinText.Value, 256)  '如果成功  If RetValue <> 0 Then     '判断是否是要找的程式     If ExtString = "" Then        If InStr(1, WinText.Value, PrgName) > 0 Then           fgFindRunningProgram = 1           Exit Do        End If     Else        If InStr(1, WinText.Value, PrgName) > 0 AndAlso InStr(1, WinText.Value, ExtString) > 0 Then           fgFindRunningProgram = 1           Exit Do        End If     End If  End If  '寻找下一个  RenHWND = GetWindow(RenHWND, GW_HWNDNEXT)Loop Until RenHWND = 0Return fgFindRunningProgramEnd FunctionPublic Function IsOffline(ByVal PrinterName As String) As Integer  If FindRunningProgram(PrinterName) > 0 Then     If FindRunningProgram(PrinterName, "脱机使用打印机") > 0 Then        Return 1     Else        Return 0     End If  Else     Return -1  End IfEnd Function


呵呵,是不是很流氓啊~


原创粉丝点击