wake-up-neo.com

Exe-Datei als eingebettete Ressource in C # ausführen

Ich habe eine 3rd Party EXE. Ich muss dies nur von meiner C # -Anwendung aus ausführen. 

Mein vorrangiges Ziel ist es, die ausführbare Datei von Drittanbietern aus meiner C # -Datei zu urheberrechtlich geschützt zu haben. 

Gibt es einen besseren Weg, dies zu tun? 

Wie kann ich das machen ? 

Vielen Dank
Menaka 

12
menakacol
  1. Fügen Sie die eingebettete ausführbare Datei zunächst als Ressourcendatei Ihrer vorhandenen Ressourcendatei hinzu. Wenn Sie noch keine haben, müssen Sie [Ihr vorhandenes Element zu Ihrem Projekt hinzufügen und Ressourcendatei auswählen].
  2. Wenn Sie die ausführbare Datei auf der Ressourcen-Editor-Seite hinzufügen, wählen Sie als Typ [Dateien] aus, suchen Sie dann die eingebettete ausführbare Datei und fügen Sie sie hinzu. Zum Beispiel wird die Datei mit dem Namen "subexe.exe" und der Ressourcendesign-Datei mit folgendem Code hinzugefügt:
    internal static byte[] SubExe {
            get {
                object obj = ResourceManager.GetObject("SubExe", resourceCulture);
                return ((byte[])(obj));
            }
        }
    
  3. fügen Sie eine Methode für den Zugriff auf Ihre Ressource hinzu, die ebenfalls sehr einfach ist. Fügen Sie einfach folgenden Code zu Ihrer Ressource-Designer-CS-Datei hinzu.

    
    public static byte[] GetSubExe()
        {
            return SubExe;
        }
    
     

  4. Fügen Sie in Ihrem ausführbaren Hauptcode Folgendes hinzu, um die Ressource zu lesen, und schreiben Sie sie in eine neue Datei

    
    string tempExeName = Path.Combine(Directory.GetCurrentDirectory(), "A3E5.exe");

        using(FileStream fsDst = new FileStream(tempExeName,FileMode.CreateNew,FileAccess.Write))
        {
            byte[] bytes = Resource1.GetSubExe();
    
            fsDst.Write(bytes, 0, bytes.Length);
        }    
    

    </ pre> </ code>

  5. Verwenden Sie process, um die neue ausführbare Datei auszuführen

17
ljh

klicken Sie mit der rechten Maustaste auf Ihr Projekt, und klicken Sie auf den Projektmappen-Explorer. Fügen Sie dann das vorhandene Element hinzu. Wählen Sie die ausführbare Datei im Dialogfeld aus. Gehen Sie dann zu Ihrem Exe-Pfad und fügen Sie Ihr Exe in Ihr Projekt ein einfach ... 

private void button_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("fire.EXE");
        }
2
EAGLEONE

Man könnte einfacher schreiben

 private void ExtractResource (Zeichenfolge resName, Zeichenfolge fName) 
 {
 object ob = Eigenschaften.Resourcen.ResourceManager.GetObject (resName, originalCulture); 
 byte [] myResBytes = (Byte []) ob; 
 using (FileStream fsDst = neuer FileStream (fName, FileMode.CreateNew, FileAccess.Write)) 
 {
 bytes = myResBytes ; 
 fsDst.Write (Bytes, 0, Bytes.Länge); 
 fsDst.Close (); 
 fsDst.Dispose (); 
} 
} 
1
alikhil