Batch dateien ausführen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von user2100.

    Batch dateien ausführen

    Hi, ich habe ein kleines programm erstellt mit dem man einige Windows Funktionen aufrufen kann
    zum beispiel den God Mode

    ich habe eine batch datei erstellt mit folgendem inhalt:

    VB.NET-Quellcode

    1. @echo off
    2. mkdir God_Mode.{ED7BA470-8E54-465E-825C-99712043E01C}


    diese batch datei habe ich in ressourcen kopiert.mit folgendem code kopiere ich diese bacth datei in einen ordner auf dem pc
    dies mache ich mit folgendem code:

    VB.NET-Quellcode

    1. Dim binaryw As New BinaryWriter(New FileStream("C:\BAT\god.bat", FileMode.Create))
    2. binaryw.Write(My.Resources.god)
    3. binaryw.Close()


    das funktioniert alles ganz gut.

    mit folgendem code starte ich die .bat datei und das ausführen funktioniert super.

    VB.NET-Quellcode

    1. Dim batch As New Process
    2. batch.StartInfo.FileName = "C:\BAT\god.bat"
    3. batch.Start()


    nun wollte ich es genauso machen mit folgenden befehl(ebenfalls mit einer .bat datei)

    VB.NET-Quellcode

    1. @ echo off
    2. stikynot


    wenn ich die .bat datei mit der maus anklicke dann wird ein notizzettel erstellt ebenfalls eine windowsfunktion.
    aber wenn ich auf den button in meinem programm klicke sollte diese datei ausgeführt werden. tut es aber nicht und ich weiss nicht warum
    ich habe es genauso gemacht wie ich es beim god mode gemacht habe.
    alles funktioniert auch bis auf das ausführen dieser.bat datei.

    freu mich über jede hilfe.

    :)
    Unsinnig eine Bat in den Resourcen, schicke den Befehl direkt an die Process-Klasse, wozu der Umweg über die Bat? Die macht nichts anderes als auch mit Process-Start machen kannst.

    VB.NET-Quellcode

    1. Process.Start("mkdir", "God_Mode.{ED7BA470-8E54-465E-825C-99712043E01C}")


    VB.NET-Quellcode

    1. Process.Start("stikynot")
    Bei Process.Start sollte doch bitte die Extension der Datei angegeben werden :!:

    VB.NET-Quellcode

    1. Process.Start("stikynot.exe")
    oder so.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wieso muss man eigentlich alles immer so kompliziert machen hmmm

    VB.NET-Quellcode

    1. System.IO.Directory.CreateDirectory(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "God_Mode.{ED7BA470-8E54-465E-825C-99712043E01C}"))


    Dieser Code erstellt die Verknüpfung auf dem Desktop.

    Edit:
    Zum Thema mit Stikynote:
    So wie du davon schilderst gehe ich davon aus, dass dein Programm in x86 kompiliert wurde.
    Das ist dann auch kein Wunder das er die stikynot.exe nicht findet weil er im SysWow64 Ordner sucht und es dort keine stikynot.exe gibt!

    Auch wenn du C:\Windows\System32\stikynot.exe angibst, wird der Pfad nach dem kompilieren immer auf C:\windows\syswow64\stikynot.exe verweisen, da du als x86 kompilierst.



    Was ist also nun die Lösung?
    Als x64 kompilieren.
    Wie geht das?

    Öffne deine .vbproj Datei mit notepad und ändere im XML-Knoten "<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">"
    folgende Zeile
    <PlatformTarget>x86</PlatformTarget>
    zu
    <PlatformTarget>x64</PlatformTarget>

    abspeichern und das Projekt neu laden.
    Nun einmal mit F5 builden und der Prozess läuft im 64bit Modus ---> nun wird auch die stikynot.exe gestartet.

    Noch fragen?

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

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. Process.Start("stikynot.exe")
    Du bist hier im Hauptforum. :rolleyes:
    Dann mach da eben das draus:

    VB.NET-Quellcode

    1. Process.Start("Y:\DEIN_PFAD\stikynot.exe"
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!