Windows 7 Can';在Windows 7上,我不能在VB6中获得错误,而在Windows Xp上我可以

Windows 7 Can';在Windows 7上,我不能在VB6中获得错误,而在Windows Xp上我可以,windows-7,vb6,windows-xp,Windows 7,Vb6,Windows Xp,我必须纠正用VB6编写的程序中的一些问题 当我尝试以XPS类型打印文件,然后关闭文件夹选择框时,程序会显示“运行时错误482” 因此,我决定通过以下方式获得错误: On Error GoTo Error_Handler 它在Windows XP上工作,运行时错误不会出现,但在Windows 7(64位)下,程序没有响应 我不知道为什么它在一边起作用而在另一边不起作用 我曾尝试在Windows7上运行与WindowsXP兼容的软件,但不起作用 Public Sub Print_All_Click

我必须纠正用VB6编写的程序中的一些问题

当我尝试以XPS类型打印文件,然后关闭文件夹选择框时,程序会显示“运行时错误482”

因此,我决定通过以下方式获得错误:

On Error GoTo Error_Handler
它在Windows XP上工作,运行时错误不会出现,但在Windows 7(64位)下,程序没有响应

我不知道为什么它在一边起作用而在另一边不起作用

我曾尝试在Windows7上运行与WindowsXP兼容的软件,但不起作用

Public Sub Print_All_Click()
Dim prntLePrinter As Printer
Dim iI As Integer

    For Each prntLePrinter In Printers
        iI = iI + 1
    Next

    On Error GoTo Error_Handler

    If (iI > 0) Then
        MousePointer = vbHourglass
        'CD Référence d'échelle pour l'imprimante
        Printer.ScaleHeight = 100
        Printer.ScaleWidth = 100
        'CD Configuration de la font
        Printer.FontName = "Arial"
        Printer.FontSize = 8
        Printer.FontBold = False
        Printer.FontItalic = False
        Printer.FontUnderline = False
        Printer.FontStrikethru = False
        Printer.FontTransparent = True
        Printer.Font.Charset = 0

        If g_nbSessions = 1 Then 'Mode NORMAL
            PrintHEADER
            PrintGeneral
            PrintExceedances
            PrintEpc
            PrintAlarms
            PrintMfdPages
            PrintEndReport

        Else 'Mode CUMUL
            PrintHEADERCumul
            PrintCUMUL
            PrintEndReportCumul
        End If

        Printer.EndDoc

        MousePointer = vbDefault

    Else
        MsgBox "No printer installed !", vbOKOnly, Frm_Main.Caption

    End If

Error_Handler:

    If MousePointer <> vbDefault Then
        MousePointer = vbDefault
    End If

End Sub
Public Sub-Print\u All\u Click()
将打印机设置为打印机
作为整数的Dim iI
对于打印机中的每个打印机
iI=iI+1
下一个
关于错误转到错误处理程序
如果(iI>0),则
鼠标指针=V沙漏
“和平进程CD”
Printer.ScaleHeight=100
Printer.ScaleWidth=100
'CD配置de la字体
Printer.FontName=“Arial”
Printer.FontSize=8
Printer.FontBold=False
Printer.FontItalic=False
Printer.FontUnderline=False
Printer.fontstrickethru=False
Printer.FontTransparent=True
Printer.Font.Charset=0
如果g_nbSessions=1,则“模式正常”
打印头
印刷将军
印刷超标
打印EPC
打印报警
打印MFDPages
PrintEndReport
埃尔斯模式
打印头
印刷体
PrintEndReportCumul
如果结束
打印机.EndDoc
MousePointer=vbDefault
其他的
MsgBox“未安装打印机!”,vbOKOnly,Frm_Main.Caption
如果结束
错误\u处理程序:
如果鼠标指针为默认值,则
MousePointer=vbDefault
如果结束
端接头
我找到了解决办法

在处理错误后,我必须使用“清除”来明确清除Err对象,然后当我想关闭“选择文件夹框”时,程序会在Windows XP和Windows 7上正确关闭它

因此,如果在错误上使用
转到错误处理程序

不要忘记使用:

Error_Handler:
以及:

我现在的代码:

Public Sub Print_All_Click()
Dim prntLePrinter As Printer
Dim iI As Integer

    For Each prntLePrinter In Printers
        iI = iI + 1
    Next

    On Error GoTo Error_Handler

    If (iI > 0) Then
        MousePointer = vbHourglass
        'CD Référence d'échelle pour l'imprimante
        Printer.ScaleHeight = 100
        Printer.ScaleWidth = 100
        'CD Configuration de la font
        Printer.FontName = "Arial"
        Printer.FontSize = 8
        Printer.FontBold = False
        Printer.FontItalic = False
        Printer.FontUnderline = False
        Printer.FontStrikethru = False
        Printer.FontTransparent = True
        Printer.Font.Charset = 0

        If g_nbSessions = 1 Then 'Mode NORMAL
            PrintHEADER
            PrintGeneral
            PrintExceedances
            PrintEpc
            PrintAlarms
            PrintMfdPages
            PrintEndReport

        Else 'Mode CUMUL
            PrintHEADERCumul
            PrintCUMUL
            PrintEndReportCumul
        End If

        Printer.EndDoc

        MousePointer = vbDefault

    Else
        MsgBox "No printer installed !", vbOKOnly, Frm_Main.Caption

    End If

Error_Handler:
Err.Clear

    If MousePointer <> vbDefault Then
        MousePointer = vbDefault
    End If

End Sub
Public Sub-Print\u All\u Click()
将打印机设置为打印机
作为整数的Dim iI
对于打印机中的每个打印机
iI=iI+1
下一个
关于错误转到错误处理程序
如果(iI>0),则
鼠标指针=V沙漏
“和平进程CD”
Printer.ScaleHeight=100
Printer.ScaleWidth=100
'CD配置de la字体
Printer.FontName=“Arial”
Printer.FontSize=8
Printer.FontBold=False
Printer.FontItalic=False
Printer.FontUnderline=False
Printer.fontstrickethru=False
Printer.FontTransparent=True
Printer.Font.Charset=0
如果g_nbSessions=1,则“模式正常”
打印头
印刷将军
印刷超标
打印EPC
打印报警
打印MFDPages
PrintEndReport
埃尔斯模式
打印头
印刷体
PrintEndReportCumul
如果结束
打印机.EndDoc
MousePointer=vbDefault
其他的
MsgBox“未安装打印机!”,vbOKOnly,Frm_Main.Caption
如果结束
错误\u处理程序:
呃,明白了
如果鼠标指针为默认值,则
MousePointer=vbDefault
如果结束
端接头

使用
iI=打印机。对每个
循环计数
而不是第一个
。哪种方法会跳转到XP上的错误处理程序?谢谢你的回答,但我找到了解决问题的方法。
Public Sub Print_All_Click()
Dim prntLePrinter As Printer
Dim iI As Integer

    For Each prntLePrinter In Printers
        iI = iI + 1
    Next

    On Error GoTo Error_Handler

    If (iI > 0) Then
        MousePointer = vbHourglass
        'CD Référence d'échelle pour l'imprimante
        Printer.ScaleHeight = 100
        Printer.ScaleWidth = 100
        'CD Configuration de la font
        Printer.FontName = "Arial"
        Printer.FontSize = 8
        Printer.FontBold = False
        Printer.FontItalic = False
        Printer.FontUnderline = False
        Printer.FontStrikethru = False
        Printer.FontTransparent = True
        Printer.Font.Charset = 0

        If g_nbSessions = 1 Then 'Mode NORMAL
            PrintHEADER
            PrintGeneral
            PrintExceedances
            PrintEpc
            PrintAlarms
            PrintMfdPages
            PrintEndReport

        Else 'Mode CUMUL
            PrintHEADERCumul
            PrintCUMUL
            PrintEndReportCumul
        End If

        Printer.EndDoc

        MousePointer = vbDefault

    Else
        MsgBox "No printer installed !", vbOKOnly, Frm_Main.Caption

    End If

Error_Handler:
Err.Clear

    If MousePointer <> vbDefault Then
        MousePointer = vbDefault
    End If

End Sub