PDA

Vollständige Version anzeigen : Wie Directory wechseln?


Stema
11.07.2001, 17:00
Hallo Forum,

ich möchte die aktuelle Directory und das Laufwerk wechseln.
Das Problem dabei: Ich weiß nur den Netzwerkpfad, weil die User u.U. andere Laufwerkbuchstaben definiert haben können. Wie kann ich diesen LW-Buchstaben ermitteln?
A97, NT4.0, SP5

FW
11.07.2001, 19:41
... CHDIR funktioniert doch auch mit Netzwerkpfaden, warum dann so umständlich?

Ansonsten wohl nur über eine entsprechende API, deren Name mir gerade entfallen ist, aber wenn's Dich interessiert, schlag ich gerne nochmal nach...

Stema
12.07.2001, 15:58
... CHDIR funktioniert doch auch mit Netzwerkpfaden, warum dann so umständlich?


Tja, das funktioniert nun mal eben nicht. Das ist ja mein Problem.
Für eine andere Idee wäre ich echt dankbar.

FW
12.07.2001, 18:03
... die API-Funktion "WNetGetConnection" liefert zu einem logischen Laufwerk den entsprechenden Netzwerkpfad...

A.S.
13.07.2001, 07:02
Hallo FW,

wenn Du jetzt noch entsprechendes Coding für die API-Funktion, oder einen Verweis auf solches, posten könntest, damit alle die kein API-Verzeichnis haben diese ggf. auch nutzen können, wären Dir hier sicherlich viele Leute danbar ;)

Dank im voraus und gruß

Arno

[08:30] Zusatz: Habe gerade einen Beispielcode gefunden... siehe hier.... http://www.mvps.org/access/api/api0003.htm

[Dieser Beitrag wurde von ArnoSimon am 13.07.2001 editiert.]

FW
13.07.2001, 07:56
... na gut:

Public Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Public Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, cbRemoteName As Long) As Long

Public Sub GetNetDrives()
Const intBuffSize As Integer = 2048

Dim lngVar As Long
Dim strDrives As String, strNetPath As String

' alle logischen Laufwerke holen:
strDrives = String(intBuffSize, 32)
GetLogicalDriveStrings intBuffSize, strDrives
' strDrives enthält Chr$(0)-Zeichen, diese sollten noch durch Blanks ersetzt werden!
strDrives = Trim$(strDrives)
' dann sin die Laufwerke durch Blank getrennt
Debug.Print strDrives

' Netzpfad für das Laufwerk x holen:
strNetPath = String(intBuffSize, 32)
lngVar = intBuffSize
WNetGetConnection "x:", strNetPath, lngVar
strNetPath = Trim$(strNetPath)
Debug.Print "x:", strNetPath
End Sub

...

Stema
16.07.2001, 10:57
Hallo Leute,
vielen Dank für Eure Hilfe. Werde ich mir nach meinem Urlaub zu Gemüte führen.