net use ausführen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

    net use ausführen

    Hallo an alle!

    Ich habe vor, ein kleines VBnet-Programm zum Einsatz zu bringen. Es soll ein Netzlaufwerk verbinden, danach ein Programm, das auf diesem Laufwerk liegt, ausführen und nach Beendigung des Programms das Netzlaufwerk wieder trennen.

    Folgender Quellcode liegt dem Programm zugrunde:

    Public
    Class Form1

    Public ExterneAnwendung As New System.Diagnostics.Process()

    Public ExterneAnwendung2 As New System.Diagnostics.Process()

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Shell("C:\windows\system32\net use P: \\Server\Software$ europa /user:August")

    ExterneAnwendung.StartInfo.FileName = "P:\Atlantis\prog\Tuwas.exe"

    ExterneAnwendung.Start()

    ExterneAnwendung.WaitForExit()

    Shell("C:\windows\system32\net use P: /delete")
    End Sub
    End
    Class

    Das Programm hat auch schon mal funktioniert, aber nur einmal. Bei wiederholtem Aufruf meldet es stets folgenden Fehler:

    "Das System kann die angegebene Datei nicht finden"

    Dieser bezieht sich dabei auf die Zeile "ExterneAnwendung.Start()"

    Scheinbar wird der net use-Befehl bei wiederholtem Aufruf nicht richtig ausgeführt. Wo liegt mein Denkfehler?

    Ich bedanke mich schon im Voraus für euere Beiträge.

    Hakam

    Nachtrag: Da ich in VBNET noch Anfänger bin noch eine Zusatzfrage: Wie erzeuge ich eine EXE-File, wo ist diese gespeichert und kann diese EXE-File ohne VBNET-Umgebung ausgeführt werden?
    Du musst warten, bis das Laufwerk verfügbar ist.

    Die .exe und alle ZUGEHÖRIGEN Dateien liegen im Unterordner /release oder /debug deines Projekts.

    NEIN. .Net Programme brauchen IMMER das entsprechende Framework, das auf dem Rechner installiert sein muss! Natürlich muss nicht die IDE installiert sein!
    API ist hier definitiv besser, weil ein Shell wird ausgeführt und der Code danach geht weiter, du müsstet also eine Schleife bauen die überprüft ob der Laufwerksbuchstabe existiert um dann das programm zu starten. Bei API geht der Code erst weiter wenn das Laufwerk verbunden ist oder ein Fehler aufgetreten ist. Da kannst du halt dann gleich danach prüfen.