Datei wird nicht gefunden obwohl vorhanden

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

    Datei wird nicht gefunden obwohl vorhanden

    Moin,
    ich hab ein mysteriöses Problem. Ich will eine fremde .exe starten, die auch vorhanden ist.
    Aber VB findet sie nicht?!

    Folgendes habe ich probiert:

    VB.NET-Quellcode

    1. Trace.WriteLine(System.IO.File.Exists(Environment.SystemDirectory & "\wol.exe"))
    2. Trace.WriteLine(System.IO.File.Exists( "C:\Windows\System32\wol.exe"))

    Ergebnis: False, wird nicht gefunden

    Wenn ich z.B. die Shutdown.exe suchen lasse, findet er sie.
    Bei der WorkFolders.exe aber (gleicher Ordner), ist es das gleiche Problem, wird auch nicht gefunden.

    VB.NET-Quellcode

    1. With New Process
    2. .StartInfo.WorkingDirectory = Environment.SystemDirectory
    3. .StartInfo.FileName = Environment.SystemDirectory & "\wol.exe"
    4. .Start()
    5. End With
    6. With New Process
    7. .StartInfo.FileName = "C:\Windows\System32\wol.exe"
    8. .Start()
    9. End With

    Funktioniert dann natürlich auch nicht.
    Ausnahme ausgelöst: "System.ComponentModel.Win32Exception" in System.dll
    ----------------------------------------------------------------
    Unerwarteter Anwendungsfehler:
    Das System kann die angegebene Datei nicht finden


    Kopiere ich den Pfad ins Windows Ausführen-Fenster, funzt alles gut.
    Bis gestern funktionierte es auch. Jetzt habe ich den Code und die dazu gehörende Form in ein anderes Projekt integriert und er findet die Datei nicht mehr. Die ebenfalls benutzte shutdown.exe arbeitet aber wunderbar.

    Hat einer eine Idee für dieses Verhalten?
    Brauch' ich die?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hanuta“ ()

    Deinem Programm fehlen evtl. Rechte um auf den Ordner bzw. die .exe zugreifen zu können.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    Hanuta schrieb:

    Welche Rechte benutzt mein Prog eigentlich? Die des angemeldeten Users?
    Ja. Starte die .exe mal manuell über die Windows Explorer.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @Mo - Ich kann sie ohne Probleme direkt starten, auch aus CMD heraus
    @Blue - Das ist # nehme ich an? Das gleiche Problem, Datei nicht gefunden. Mache ich es mit der Shutdown.exe oder rundll32.exe, aus dem gleichen Ordner gibt es keine Probleme...

    Nette Ergänzung:
    Ich starte ein neues Projekt, einzig die Zeile

    VB.NET-Quellcode

    1. Trace.WriteLine(IO.File.Exists(Environment.SystemDirectory & "\wol.exe"))


    Wenn ich als neues Projekt "Windows Forms-App (.NET Framework)" mit 4.7.2 benutze, funktioniert es nicht.
    Als "Windows Forms-App" kann ich nur zwischen Net 5.0 und 3.1 wählen, da klappt es wunderbarerweise... Macht mich jetzt nicht wirklich schlauer, euch vielleicht?


    Brauch' ich die?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hanuta“ ()

    Ja, ich arbeite immer mit Adminrechten.

    Update, macht es in meinen Augen aber eher noch merkwürdiger:

    Der Unterschied zwischen "Windows Forms-App" und "Windows Forms-App (.NET Framework)" ist mir zwar nicht klar, aber er existiert.

    "Windows Forms-App (.NET Framework)":
    Egal welche .NET Version, es geht nicht. Der Einzeiler "Trace.WriteLine(IO.File.Exists(Environment.SystemDirectory & "\wol.exe"))" wird von Kaspersky sogar als Virus erkannt!
    Keine Änderung durch VS-Neuinstallation.

    "Windows Forms-App":
    Egal ob .NET 3.1 oder 5, beides funktioniert, auch keine Viruswarnung. Es gab aber Probs beim Speichern des Projekts, auch gab es keine Icons in der Dokumentenübersicht (jetzt Document Outline).
    Als letzte Notlösung VS komplett neu installiert. Jetzt sind alle Probleme erledigt, es läuft, aber weiterhin nur als "Windows Forms-App".
    Brauch' ich die?
    Windows Forms-App (.NET Framework) = "das alte", eben mit .NET Framework bis 4.8
    Windows Forms-App = "das neue", quasi .NET Framework 5.0; wurde aber anders benannt und der Designer und ein paar Kleinigkeiten laufen anders oder besser oder noch nicht ganz rund. Abhängig davon, bei welcher Sache Du grad dran bist ;)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Eventuell hast Du eine 32 Bit .NET Anwendung und versuchst eine 64 Bit .exe zu starten oder umgekehrt.
    Diese Erfahrung habe ich mit der Tastaturanwendung osk.exe machen müssen.
    Auf 64 Bit Systemen kannst aus einer nativen 32 Bit Anwendung die osk.exe NICHT starten, obwohl diese existiert.

    Wird wohl mit Deiner Systemdatei ähnlich sein. Und würde auch erklären warum es bei manchen geht und bei Dir nicht.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at