Visual Basic Anwendung, Probleme mit Ordnerumleitung
Hallo zusammen,
ich habe folgendes Problem, zu dem ich weitere Ideen zur Lösungsfindung suche:
Windows 7 prof. (und ebenfalls XP)
Ein Programm, geschrieben mit Visual Basic, vermutlich irgendwo zwischen Version 4 und 6.
Ursprünglich war der Rechner nicht im Netzwerk integriert, daher wurden die üblichen Pfade verwendet für "Eigene Dateien" etc. Das Programm funktioniert auf dieser Standard-Installation. Es greift auf drei Verzeichnisse zu:
C:\Program Files\FOO\
C:\Program Files\Common Files\FOO\
C:\Users\User\Documents\FOO\
Der Rechner wurde dann in ein Domänen-Netzwerk integriert, es wird eine Ordnerumleitung verwendet.
Statt C:\Users\User\Documents\FOO\ wird jetzt X:\ocuments\FOO\ bzw. in UNC-Form \\SERVER\Userdirs\User\Documents\FOO\ verwendet.
Das Programm kann offensichtlich auf den umgeleiteten Ordner zugreifen, denn es erstellt beim ersten Start seinen entsprechenden Ordner in den Documents. Trotzdem bricht es kurz nach dem Start ab mit einer Fehlermeldung 5, Ungültiger Parameter. Starte ich das Programm mit dem ursprünglichen lokalen Benutzer funktioniert es weiterhin. Es soll (nach Überlieferung durch einen Kollegen) für die Pfadfindung eine dll verwendet werden mit der Funktion shGetFolderPath.
Das Programm selbst ist eine Eigenentwicklung. Der Entwickler ist nicht mehr greifbar, der Quelltext nicht verfügbar.
Hat jemand eine Idee, wo ein Problem vorliegen könnte?
Danke für Eure Hilfe,
Dennis
ich habe folgendes Problem, zu dem ich weitere Ideen zur Lösungsfindung suche:
Windows 7 prof. (und ebenfalls XP)
Ein Programm, geschrieben mit Visual Basic, vermutlich irgendwo zwischen Version 4 und 6.
Ursprünglich war der Rechner nicht im Netzwerk integriert, daher wurden die üblichen Pfade verwendet für "Eigene Dateien" etc. Das Programm funktioniert auf dieser Standard-Installation. Es greift auf drei Verzeichnisse zu:
C:\Program Files\FOO\
C:\Program Files\Common Files\FOO\
C:\Users\User\Documents\FOO\
Der Rechner wurde dann in ein Domänen-Netzwerk integriert, es wird eine Ordnerumleitung verwendet.
Statt C:\Users\User\Documents\FOO\ wird jetzt X:\ocuments\FOO\ bzw. in UNC-Form \\SERVER\Userdirs\User\Documents\FOO\ verwendet.
Das Programm kann offensichtlich auf den umgeleiteten Ordner zugreifen, denn es erstellt beim ersten Start seinen entsprechenden Ordner in den Documents. Trotzdem bricht es kurz nach dem Start ab mit einer Fehlermeldung 5, Ungültiger Parameter. Starte ich das Programm mit dem ursprünglichen lokalen Benutzer funktioniert es weiterhin. Es soll (nach Überlieferung durch einen Kollegen) für die Pfadfindung eine dll verwendet werden mit der Funktion shGetFolderPath.
Das Programm selbst ist eine Eigenentwicklung. Der Entwickler ist nicht mehr greifbar, der Quelltext nicht verfügbar.
Hat jemand eine Idee, wo ein Problem vorliegen könnte?
Danke für Eure Hilfe,
Dennis
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 288091
Url: https://administrator.de/contentid/288091
Ausgedruckt am: 19.11.2024 um 22:11 Uhr
7 Kommentare
Neuester Kommentar
Hi,
Du könntest mit dem Process Explorer versuchen, herauszufinden, bei welchem Zugriff genau das Programm aussteigt.
E.
Du könntest mit dem Process Explorer versuchen, herauszufinden, bei welchem Zugriff genau das Programm aussteigt.
E.
Fehlermeldung 5, Ungültiger Parameter
Der Windows Standardfehler 5 bedeutet "Zugriff verweigert", nicht "Pfad nicht existent", das wäre 2 oder 3.Und es könnte sich auch um einen Registry-Zugriff handeln.
Ist der lokale Benutzer zufällig auch Mitglied der lokalen Administratoren und der Domänenbenutzer nicht?
Hallo,
Jo, ist aber ein VB-Programm und hier hat der Fehler 5 eine andere Bedeutung:
Unzulässiger Prozeduraufruf oder ungültiges Argument (Fehler 5)
Sieht also so aus, als ob die Umleitung nicht vollständig ist bzw. eine davon ins Leere zeigt. Ohne den Quellcode zu kennen ist das natürlich auch nur eine Spekulation...
MfG Andreas
Der Windows Standardfehler 5 bedeutet "Zugriff verweigert", nicht "Pfad nicht existent", das wäre 2 oder 3.
Jo, ist aber ein VB-Programm und hier hat der Fehler 5 eine andere Bedeutung:
Unzulässiger Prozeduraufruf oder ungültiges Argument (Fehler 5)
Sieht also so aus, als ob die Umleitung nicht vollständig ist bzw. eine davon ins Leere zeigt. Ohne den Quellcode zu kennen ist das natürlich auch nur eine Spekulation...
MfG Andreas
Hallo,
wenn Du noch Zugriff auf ein MS Visual Studio 6 hast, kannst Du das selber prüfen. Lade Dir einfach mal einen folgenden (VB6) Code und prüfe deine Umleitungen:
http://vbnet.mvps.org/index.html?code/browse/csidl.htm
Der Fehler 5 (Unzulässiger Prozeduraufruf oder ungültiges Argument) wird u.a. geworfen, wenn ein String-Kommando auf ein Leerstring erfolgt. Nehmen wir mal direkt das Beispiel von Microsoft für die SHGetFolderPath-Funktion:
Zeile 9 würde jetzt einen Fehler 5 produzieren, wenn der Pfad (sPath) leer ist, bzw deine Umleitung ins Leere zeigt.
Mit freundlichen Grüßen Andreas
wenn Du noch Zugriff auf ein MS Visual Studio 6 hast, kannst Du das selber prüfen. Lade Dir einfach mal einen folgenden (VB6) Code und prüfe deine Umleitungen:
http://vbnet.mvps.org/index.html?code/browse/csidl.htm
Der Fehler 5 (Unzulässiger Prozeduraufruf oder ungültiges Argument) wird u.a. geworfen, wenn ein String-Kommando auf ein Leerstring erfolgt. Nehmen wir mal direkt das Beispiel von Microsoft für die SHGetFolderPath-Funktion:
RetVal = SHGetFolderPath(0, CSIDL_LOCAL_APPDATA Or CSIDL_FLAG_CREATE, 0, SHGFP_TYPE_CURRENT, sPath)
Select Case RetVal
Case S_OK
' We retrieved the folder successfully
' All C strings are null terminated
' So we need to return the string upto the first null character
sPath = Left(sPath, InStr(1, sPath, Chr(0)) - 1)
Text1.Text = sPath
Case S_FALSE
' The CSIDL in nFolder is valid, but the folder does not exist.
' Use CSIDL_FLAG_CREATE to have it created automatically
MsgBox "The folder does not exist"
Case E_INVALIDARG
' nFolder is invalid
MsgBox "An invalid folder ID was specified"
End Select
Zeile 9 würde jetzt einen Fehler 5 produzieren, wenn der Pfad (sPath) leer ist, bzw deine Umleitung ins Leere zeigt.
Mit freundlichen Grüßen Andreas