Symptome
Kurz nachdem Sie SPEED Ferret starten, wird die Fehlermeldung 'Run-time error 52: Bad file name or number' angezeigt. Wenn Sie OK drücken, wird SPEED Ferret beendet.
Ursache
Die Projekte, Suchvorgänge, und andere Objekte, die Sie mit SPEED Ferret erstellen, werden in einem Verzeichnis Namens SPEED Ferret Data Store gespeichert. Dieses Verzeichnis wird normalerweise beim ersten Start von SPEED Ferret angelegt.
Gemäß der Microsoft Richtlinien, legt SPEED Ferret den data store im Ordner für ihre persönlichen Daten (Eigene Dateien) an. Um diesen Ordner zu bestimmen, ruft SPEED Ferret die von Microsoft zur Vefügung gestellte Funktion SHGetFolderPath auf. SHGetFolderPath gibt normalerweise Werte wie C:\Dokumente oder Einstellungen\Administrator\Eigene Dateien zurück. Auf manchen Systemen gibt die Funktion SHGetFolderPath jedoch ein Root-Verzeichnis wie z.B. F:\ zurück. Dies bewirkt, das SPEED Ferret eine falsch Pfadspezifikation konstruiert, weil SPEED Ferret immer einen Backslash an den Pfad anfügt.
Temporärer Workaround
Sie können einen anderen Pfad angeben, indem Sie die Windows Registry editieren.
Dazu gehen Sie wie folgt vor:
- Clicken Sie auf START in der Windows Taskleiste
- Wählen Sie Ausführen...
- Geben Sie regedit ein und drücken Sie ENTER.
- Gehen sie zum Registrierungsschlüssel HKEY_CURRENT_USER\Software\Black Moshannon Systems\SPEED Ferret\4.0\Options.
- Wählen Sie den Options Schlüssel und erstellen Sie eine neue Zeichenfolge Namens DataStore
- Setzen Sie den Wert von DataStore auf den Pfad in dem der SPEED Ferret Data Store angelegt werden soll (z.B. C:\MeineDateien)
- Verlassen Sie den Registry Editor.
Das nächste Mal wenn Sie SPEED Ferret starten, wird der Data Store im angegebenen Pfad angelegt.
Wir untersuchen diese Angelegenheit gegenwärtig, da wir annehmen, dass die Funktion SHGetFolderPath möglicherweise das falsche Ergebnis zurückliefert, wenn ein Root-Verzeichnis angegeben wird.
Wenn der Fehler 52 bei Ihnen auftritt, würden wir uns freuen etws darüber von Ihnen zu hören, um mehr über dieses Problem herauszufinden. Insbesondere wären wir dankbar, wenn Sie folgenden Quellcode ausführen könnten und uns den Rückgabewert auf Ihrem System mitteilen würden.
Sieht der Pfad korrekt aus?
Zeigt er wirklich auf Ihren persönlichen Ordner (Eigene Dateien)?
Das Problem tritt (zum Glück) selten auf, und wir konnten es auf unseren Testsystemen nicht reproduzieren, daher wäre Ihre Unterstützung hier hilfreich.
Public Const CSIDL_PERSONAL = &H5
Public Const SHGFP_TYPE_CURRENT = 0
Public Const MAX_PATH = 260
Declare Function SHGetFolderPath Lib "shfolder.dll" Alias "SHGetFolderPathA" _
(ByVal hWndOwner As Long, ByVal nFolder As Long, ByVal hToken As Long, _
ByVal dwFlags As Long, ByVal Path As String) As Long
Sub Test()
Dim Path As String
Path = Space$(MAX_PATH + 1)
SHGetFolderPath 0, CSIDL_PERSONAL, 0, SHGFP_TYPE_CURRENT, Path
Debug.Print Left$(Path, InStr(Path, Chr$(0)) - 1)
End Sub
Permanente Lösung
Wir hoffen, das Problem im ersten Update für SPEED Ferret 4.0 beheben zu können, dass kostenlos zum Download bereit gestellt wird. Das Veröffentlichungsdatum des Updates wurde noch nicht festgelegt. Näheres wird auf unserer Homepage (www.liza.com) bekanntgegeben.