如何解决在Windows 10中使用``卸载我''导致VB6表单崩溃的问题?

时间:2019-02-05 22:59:26

标签: vb6 windows-10 vb6-migration

我试图在Windows 10计算机上安装VB6应用程序,但是当我加载子窗体然后将其卸载时,程序崩溃。如果从快捷方式以管理员身份启动该应用程序,则可以加载和卸载所有内容而不会出现问题。您以前有经历过吗?

到目前为止,我已经尝试了以下方法:

  • 直接以管理员身份启动.exe。无法正常工作。
  • 选中了.exe上下文菜单(属性/兼容性)中的“以管理员身份运行”复选框。不好。
  • 创建一个.reg文件以影响 HLKM \ ... \ AppCompatFlags \ Layers 键。娜达。
  • 尝试同时影响HKLM和HKCU密钥。谢谢,接下来。
  • 检查某些Recordset或变量是否已填充或处于活动状态。一切都空了。
  • 尝试为其中一张表单卸载[表单名称] ,而不是卸载我。结果相同。

其中一种形式的部分卸载代码如下:

Private Sub cmdSalir_Click()
On Error GoTo ErrHandler

Dim frm As Form       'Identifica las formas a cerrar
    For Each frm In Forms
        If Not frm Is frmPoliza And Not frm Is MDIPrincipal Then
            If Not frm Is frmAsegNoReclam And Not frm Is frmEndosoMedico Then _
                Unload frm
            End If
    Next frm
    gsPlan = ""
    gmstrInstPagoInd = ""
    gmstrCondEnv = ""

    If IsFormLoaded("frmCotiza") = False Then
        'gbInicio = True
    End If

    Unload Me
ErrHandler:                 'APM 2019-01-31: Captura el error que se provoca al descargar la forma
    If Err.Number <> 0 Then
        MsgBox "Ocurrió un error al cerrar: " & Err.Number & " - " & Err.Description, vbOKOnly
    End If
End Sub

重要的是要说WinXP的安装工作正常,但是在2台Win10的计算机上复制了错误,因此我猜测Win10的安全策略或安装软件包的制作方式与此有关。

如果您可以帮助解决此问题,我们将不胜感激。

谢谢

托尼。

3 个答案:

答案 0 :(得分:0)

如果问题是您需要使用提升的权限运行,那么建议您在应用程序清单中声明该名称,以便提示用户授予该权限。您可以创建一个单独的清单文件或将其嵌入。详细信息请参见此处:

How do I create a manifest file in Visual Basic 6.0?

答案 1 :(得分:0)

因此,我向客户介绍了此问题,并决定让该程序在XP中进行虚拟化,而不是适应于x64。不是我想要的结账,而是毕竟的结账。

谢谢大家的努力。

答案 2 :(得分:0)

不确定这是否可以解决特定问题,但是发现在Windows 10上以Windows 8兼容模式运行应用程序可以解决此类问题。值得一试。