tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
519
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mafiamix mafiamix ist offline Mitglied Silber
    Registriert seit
    May 2007
    Ort
    Nürnberg / Fürth (Bayern)
    Beiträge
    90
    Hallo,

    ich möchte, dass eine exe-Datei aus den Ressourcen von einem Programm gestartet wird und unabhängig vom "alten" Programm ist. Das heißt, wenn ich beispielsweise auf ein Button klicke, dass die exe-Datei aus den Ressourcen geöffnet wird und ich jetzt auch das Programm mit dem Button, durch das die exe-Datei gestartet wurde und wo die exe Datei in den Ressourcen gespeichert ist, schließen könnte.
    Ist das überhaupt möglich?
    Ich habs bisher versucht, dass man es mit Process.start(my.ressoures...) startet, dann dass man eine Kopie ins Verzeichnis macht und von dort dann startet, was aber alles leider nicht funktioniert.
    Kann mir da einer weiterhelfen?

    Lg,

    mafiamix
     

  2. #2
    Topia Topia ist offline Mitglied Bronze
    Registriert seit
    Feb 2008
    Beiträge
    48
    Hi, einen Process kannst du mit dem namespace using System.IO; und dem Code:



    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    private void button1_Click(object sender, EventArgs e)
            {
     
                //Neuer Pfad
                string pfad = @"pfad + dateiendung exe....";
     
                //Pfad wird überprüft
                if (File.Exists(pfad))
                {
                    // Neuer Prozess wird initalisiert damit du ihn mit Namen ansprechen kannst
                    Process myprocess;
                    myprocess = Process.Start(pfad);
                   
     
                }
                else
                    MessageBox.Show("Datei nicht vorhanden");
     

  3. #3
    mafiamix mafiamix ist offline Mitglied Silber
    Registriert seit
    May 2007
    Ort
    Nürnberg / Fürth (Bayern)
    Beiträge
    90
    Hm hatte das eigentlich in VB.net, aber habs schon verstanden, was du genau meinst. Genauer gesagt, hab ich es bereits so versucht. :/

    IO.File.Create(My.Resources.Datei)

    Hier würde der Name der exe-Datei "Datei" heißen, allerdings kann man so anscheinend keine exe Dateien aus den Ressourcen von einem Programm erstellen bzw. öffnen, weil folgender Fehler kommt:

    Der Wert vom Typ "1-dimensionales Array von Byte" kann nicht zu "String" konvertiert werden.

    Auch wenn ich hiter Datei noch ".tostring" dransetze, funktioniert es nicht bzw. dann ist die Fehlermeldung weg, aber wenn ich den Code im Programm aufrufe, wird eine Datei mit irgendeinem Namen mit "[]Byte" im Dateinamen erstellt. Allerdings nicht die Datei, die ich aus den Ressourcen haben möchte.
     

  4. #4
    mafiamix mafiamix ist offline Mitglied Silber
    Registriert seit
    May 2007
    Ort
    Nürnberg / Fürth (Bayern)
    Beiträge
    90
    Habs jetzt nochmal so probiert, dass ich die Array zu nem String umwandel, aber funktioniert dann auch nicht. :/
    Weiß da keiner weiter?
     

  5. #5
    engelmarkus engelmarkus ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Beiträge
    473
    Das sollte arg kompliziert werden, wenn du nicht vorher das Byte-Array aus den Resourcen in eine temporäre Datei schreibst und diese dann startest.
    Ich weiß nicht, ob nicht spätestens DEP was unternimmt, wenn du versuchst, dein Array in den Speicher zu schreiben und dann aufzurufen...
     

  6. #6
    mafiamix mafiamix ist offline Mitglied Silber
    Registriert seit
    May 2007
    Ort
    Nürnberg / Fürth (Bayern)
    Beiträge
    90
    Ist eigentlich egal, ob man es erst in ein Verzeichnis rein kopiert und dann startet. Sollte eigentlich sogar besser sein. Weißt du wie sowas geht?
     

  7. #7
    engelmarkus engelmarkus ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Beiträge
    473
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    Imports System.IO
     
    Module Module1
        Sub Main()
            Using fs As New FileStream(Path.Combine(My.Computer.FileSystem.SpecialDirectories.Temp, "Programm.exe"), FileMode.Create, FileAccess.Write, FileShare.None)
                With New BinaryWriter(fs)
                    .Write(My.Resources.Programm)
                    .Flush()
                    .Close()
                End With
     
                Process.Start(fs.Name)
            End Using
     
            Console.ReadKey()
        End Sub
    End Module

    So sollte das gehen...
    Du musst dich nur noch drum kümmern, die Datei zu löschen, wenn du sie nicht mehr brauchst, oder wenn das Programm beendet ist, oder so.
    Geändert von engelmarkus (15.09.08 um 18:52 Uhr)
     

  8. #8
    mafiamix mafiamix ist offline Mitglied Silber
    Registriert seit
    May 2007
    Ort
    Nürnberg / Fürth (Bayern)
    Beiträge
    90
    Vielen Dank.
    GENAU das hab ich gesucht. Das mit dem Dateilöschen usw. ist jetzt kein Problem mehr, nur an dem hats gehangen. Bewertung für die Beiträge hier bekommst gleich mal
    Dankeschön.
     

Ähnliche Themen

  1. .exe Datei starten
    Von shader09 im Forum C/C++
    Antworten: 7
    Letzter Beitrag: 13.06.08, 21:00
  2. Antworten: 1
    Letzter Beitrag: 05.03.08, 15:10
  3. jar-Datei starten
    Von Martin0x62 im Forum Linux & Unix
    Antworten: 3
    Letzter Beitrag: 13.02.08, 08:55
  4. Ressourcen (CUSTOM) aus einer Ressourcen-dll auslesen
    Von DjTommy79 im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 16.11.07, 14:32
  5. mit php .cdm/.bat-Datei starten?
    Von stega im Forum PHP
    Antworten: 5
    Letzter Beitrag: 30.04.07, 17:40