如何解决在Windows 10中使用Unload Me崩溃的VB6表单?

问题描述 投票:1回答:3

我试图在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的安全策略或安装包的方式与此有关。

如果你能帮我解决这个问题,我将非常感激。

谢谢,

托尼。

vb6 windows-10 vb6-migration
3个回答
0
投票

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

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


0
投票

所以我告诉客户这个问题,并决定让程序在XP中虚拟化,而不是适应x64。不是我想要的收盘,而是一场收盘。

谢谢大家的努力。


0
投票

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

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.