Hi,
        ich hab mal von einem guten Bekannten (Programmierer) einen Source code bekommen.
        Das ganze funktioniert auf dem Server Client Prinzip.
        Ich hab das den Code nun ca 5 Jahre und bin immer noch am überlegen wie der das hinbekommen hat, bzw warum das Teil das macht was es macht. Ich checks einfach nicht.
        Übertragen wird der komplette Arbeitsplatz, mit allen Partitionen und Laufwerken, nur ich weiuss nicht warum.
        Den Up-Download hab ich mal rausgenommen, der sicherheit wegen ^^
        
        ------------------------------------------------
        Client:
        ------------------------------------------------
        Option Explicit
        
        Private Sub Command1_Click()
        If Winsock1.State sckClosed Then 'Falls Verbindung besteht (Irre klicken ja mehrmals auf Listen-Button)
        Winsock1.Close 'dann schliessen vor dem...
        End If
        Winsock1.LocalPort = Val(Text1.Text) '...neuem festsetzen des Port auf text1 (val, da localport eine Zahl erwartet)
        Winsock1.Listen ' und warten auf Action :)
        End Sub
        
        Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) 'Verbindungsanfrage vom Server
        If Winsock1.State sckClosed Then 'Falls schon eine Verbindung besteht
        Winsock1.Close '... vorher schliessen
        End If
        Winsock1.Accept requestID 'Verbindung zum Server akzeptieren und aufbauen
        Command1.Enabled = False 'Button ausschalten, nun überflüssig
        End Sub
        
        Private Sub Command3_Click()
        Winsock1.SendData "+#VU" 'Verzeichnis höher gehen (Befehl senden)
        End Sub
        
        Private Sub List1_Click()
        Winsock1.SendData "+#DV" & List1.List(List1.ListIndex) 'Laufwerk wechseln (Befehl senden)
        End Sub
        
        Private Sub List2_Click()
        Winsock1.SendData "+#VL" & List2.List(List2.ListIndex) 'Verzeichnis wechseln (Befehl senden)
        End Sub
        
        Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
        Dim data As String
        Dim befehl As String
        Dim s As String
        Dim t As Long
        
        Winsock1.GetData data 'Daten holen
        
        While Len(data) 'Solange Daten in Data sind alles wiederholen zwischen While...Wend
        
        befehl = Left(data, 4) 'ersten 4 Zeichen sind immer Befehl
        data = Mid(data, 5) ' ersten 4 Zeichen löschen aus data, diese liegen ja in befehl nun
        
        If befehl = "+#CL" Then 'Listboxen leeren-Befehl?
        List1.Clear: List2.Clear: List3.Clear
        Else 'alle anderen Befehle
        
        t = InStr(data, "+#") 'ist in data noch ein Befehl vorhanden? (Befehle fangen mit +# an)
        'Instr liefert 0, wenn kein weiterer Befehl da ist
        
        If t Then 'ja, weitere Befehle
        s = Left(data, t - 1) 's enthält den Text bis zum nächsten Befehl in data
        data = Mid(data, Len(s) + 1) 'daher nun data löschen bis zum nächsten Befehl
        Else ' nein, kein Befehl mehr in data
        s = data 'also ist s der Rest von data
        data = "" 'Data löschen, sonst läuft while...wend ja ohne Ende
        End If
        
        'in s ist ja nun der Text...
        Select Case befehl '...und diesen nun je nach Befehl zuordnen
        Case "+#DR"
        List1.AddItem s 'Laufwerksliste
        Case "+#DI"
        List2.AddItem s 'Verzeichnisliste
        Case "+#FI"
        List3.AddItem s 'Dateiliste
        Case "+#VU"
        Label1.Caption = s 'aktuellen Pfad anzeigen
        End Select
        End If
        
        Wend
        End Sub
        
        ---------------------------------------------------------------
        Server:
        ---------------------------------------------------------------
        
        Option Explicit
        
        Private Sub Form_Load()
        'Boxen ausschalten, wird ja vom Client gesteuert
        Dir1.Enabled = False: Drive1.Enabled = False: File1.Enabled = False
        End Sub
        
        Private Sub Form_Unload(Cancel As Integer)
        Winsock1.Close 'Winsock schliessen bei Programmende
        End Sub
        
        Private Sub Command1_Click()
        Winsock1.Connect Text1.Text, Val(Text2.Text) 'Verbindung aufbauen zu IP text1 über Port text2
        End Sub
        
        Private Sub Winsock1_Connect() 'Verbindung zu Client wurde aufgebaut
        Command1.Enabled = False 'also Button deaktivieren
        Senden ' und aktuelle Laufwerke + Pfad senden
        End Sub
        
        Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
        Dim data As String
        
        Winsock1.GetData data 'Daten holen
        Select Case Left(data, 4) ' Befehl, also ersten 4 Zeichen von Data
        
        Case "+#DV" 'Laufwerk gewechselt
        Drive1.Drive = Mid(data, 5) 'Data, ab 5. Stelle ist das Laufwerk
        Dir1.Path = Drive1.Drive 'Pfad auf Laufwerk setzen
        File1.Path = Dir1.Path 'Dateien auf Pfad setzen
        Senden 'und weg mit dem ganzen Mist
        
        Case "+#VU" 'Verzeichnis höher gehen
        Dir1.Path = Left(Dir1.Path, InStrRev(Dir1.Path, "\")) 'letztes Verzeichnis vom Pfad löschen
        File1.Path = Dir1.Path ' Dateien auf Pfad setzen
        Senden '... rate mal... klar, den Käse wieder senden
        
        Case "+#VL" 'Verzeichnis geändert
        Dir1.Path = Mid(data, 5) 'Data ab 5. Stelle enthält neues Verzeichnis (ersten 4 Stellen war ja der Befehl)
        File1.Path = Dir1.Path 'Dateien natürlich auch wieder holen
        Senden '.... *no-comment*
        
        End Select
        End Sub
        
        Private Sub Senden()
        Dim i As Long
        Winsock1.SendData "+#CL" 'Befehl senden zum leeren der Listboxen auf dem Client
        For i = 0 To Drive1.ListCount - 1 'Alle Laufwerke senden
        Winsock1.SendData "+#DR" & Drive1.List(i)
        Next i
        For i = 0 To Dir1.ListCount - 1 'Alle Verzeichnisse senden
        Winsock1.SendData "+#DI" & Dir1.List(i)
        Next i
        For i = 0 To File1.ListCount - 1 'Alle angezeigten Dateien senden
        Winsock1.SendData "+#FI" & File1.List(i)
        Next i
        Winsock1.SendData "+#VU" & File1.Path 'Aktuellen Pfad senden (Label1-Anzeige auf Client)
        End Sub
        
        Downoad der Source:
        http://biernot.silentz-productions.de/nickles/Remote_Laufwerke_01.rar
        
        Warum macht das Program mit diesen ganzen +vd +hd +35453 usw, das was es macht?
        
        Das Client/Server Prinzip hab ich schon verstanden, nur diese eine Source nicht!
        
        Danke
      
