Kompatibilitätsprobleme mit einer VB6-App unter Windows 10

Kompatibilitätsprobleme mit einer VB6-App unter Windows 10

Das große Problem

In der Organisation, in der ich arbeite, wurde das Managementsystem (eine modulare Anwendung, die von einem anderen Unternehmen entwickelt wurde) im Jahr 97/98 auf VB entwickelt und nie auf eine andere, weiterentwickelte Entwicklungsplattform wie VB.NET migriert. Diese Anwendung (32 Bit) funktionierte unter Windows 7 sowohl in der 32- als auch in der 64-Bit-Version einwandfrei.

Aus offensichtlichen Sicherheitsgründen müssen wir dieses System nun unter Windows 10 installieren. Dabei treten mehrere Probleme auf:

  1. Ohne Kompatibilität mit Windows 7,Die Hauptanwendung startet Unteranwendungen mit anderen Schaltflächen, als wären sie Module.Es kommt vor, dass mehrere dieser UnteranwendungenLaufzeitfehler „53“: Datei nicht gefundenohne Angabe welche DLL fehlt. Andere Unteranwendungen öffnen sich nicht.Natürlich haben wir bereits überprüft, dass die Bibliotheken bei registriert sind regsvr32.
  2. Mit Kompatibilität mit Windows 7,Laufzeitfehler '53' scheint zu verschwinden, aber dann gibt das Programm eine Warnung aus (sagen wir, einvorhergesagtWarnung, da es in einer anderen Sprache als Englisch erscheint),Beachten Sie, dass es nicht möglich war, einige Dateien, die verarbeitet werden müssen, in den speziellen Ordner zu kopierenUserProfile,Hinzufügen als Detail„Laufzeitfehler ‚52‘: Ungültiger Dateiname oder ungültige Dateinummer“.

Was habe ich versucht?

  • Ich habe versucht, die Anwendung unter Windows 10 mit 32 und 64 Bit auszuführen. In beiden Versionen funktionierte das Programm nicht und in der 32-Bit-Version schien es sogar noch schlechter zu funktionieren.

  • Ich habe auch versucht, den Code zu zerlegen, und habe dabei herausgefunden, dass der Fehler beim Lösen einer Route im Zusammenhang mit den speziellen Ordnern (zumindest ProgramFilesund UserProfile) auftritt.

  • Ich habe selbst recherchiert und vermute, dass es an einigenShell- und Architekturproblem, wie in diesem Thread gezeigt, Da die Anwendung die Shell zum Auflösen der speziellen Ordner verwendet. Die Pfade dieser Ordner werden jedoch korrekt aufgelöst.

  • Ich habe den starken Verdacht, dass es damit zusammenhängt, dass die Anwendung in einem höheren Modus ausgeführt wird. Ich habe versucht, sie im Administratormodus auszuführen und die Berechtigungen der speziellen Ordner zu übernehmen. Aber ich glaube, dass mir eine Konfiguration fehlt.

  • Ich denke ernsthaft darüber nach, Windows 7 innerhalb von Windows 10 zu virtualisieren, bis das Programm aktualisiert wird.wie hier vorgeschlagen, aber ich möchte es als letztes Mittel verwenden.

Ehrlich gesagt, ich stecke fest.Irgendwelche Ideen?

PD: Bitte vermeiden Sie offensichtliche Antworten auf den Stil„Ihre Organisation sollte für bessere Software bezahlen“; Ich arbeite in der IT-Abteilung und wir haben es noch nicht geschafft, die Datenbanken von dieser hässlichen Verwaltungssoftware zu lösen; ganz zu schweigen von den Kosten, die es uns kostet, unsere Vorgesetzten von der Änderung zu überzeugen.

Antwort1

Meiner Erfahrung nach gab es keine spezifischen Probleme mit Windows 10, die grundsätzlich andere Probleme als mit Windows 7 verursacht hätten. Natürlich können die Anwendungen unterschiedlich sein, sodass das nicht immer zutrifft. Ich würde jedoch zunächst eher nach Installations- oder Konfigurationsproblemen suchen und nicht nach reiner Kompatibilität.

Die Fehler 52/53 könnten sein - Berechtigungen? Laufwerkszuordnungen? Ich würde empfehlen, Ihre Anwendung auszuführen gegenProzessmonitorund prüfen Sie, ob Sie mit diesem Tool herausfinden können, was fehlt/nicht gefunden wurde.

Antwort2

- Führen Sie es als Administrator aus.

-Installieren Sie es in einem von Ihnen erstellten Ordner.

- Übernehmen Sie die Verantwortung für alle seine Unterordner.

Viele VB6-Anwendungen haben unter Windows 10 nicht einmal die Berechtigung, auf ihre eigenen Ordner zuzugreifen.

Testen Sie das MS Application Compatibility Toolkit

verwandte Informationen