web-dev-qa-db-fra.com

Exécuter un fichier exe en tant que ressource incorporée en C #

J'ai un EXE tiers. Je dois juste exécuter ceci à partir de mon application C #. 

Mon objectif principal est de protéger les droits d'auteur de cet exécutable tiers à partir de mon fichier C #. 

Y at-il une meilleure façon de faire cela? 

Comment puis-je faire ceci ? 

Je vous remercie
Menaka 

12
menakacol
  1. Tout d’abord, ajoutez le fichier exécutable intégré en tant que fichier de ressources à votre fichier de ressources existant. Si vous n’en avez pas, vous devez [ajouter un élément existant à votre projet et sélectionner le fichier de ressources].
  2. Lorsque vous ajoutez le fichier exécutable dans la page de l'éditeur de ressources, sélectionnez le type [Fichiers], puis recherchez votre fichier excutable incorporé et ajoutez-le. Par exemple, le fichier nommé "subexe.exe", le code suivant pour le fichier de conception de ressources comportera le code suivant:
    internal static byte[] SubExe {
            get {
                object obj = ResourceManager.GetObject("SubExe", resourceCulture);
                return ((byte[])(obj));
            }
        }
    
  3. ajoutez une méthode pour accéder à votre ressource, ce qui est également très simple; ajoutez simplement le code suivant dans votre fichier cs du concepteur de ressources

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

  4. Dans votre code source exécutable principal, ajoutez ce qui suit pour lire la ressource et écrivez-le dans un nouveau fichier

    
    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. Utiliser le processus pour exécuter le nouveau fichier exécutable

17
ljh

faites un clic droit sur votre projet la solution Explorer, puis ajoutez un élément existant, sélectionnez un fichier exécutable dans la boîte de dialogue, puis accédez à votre chemin exe et ajoutez votre exe dans votre projet. facile ... 

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

On pourrait écrire un plus simple

 private void ExtractResource (string resName, string fName) 
 {
 object ob = Propriétés.Ressources.ResourceManager.GetObject (resName, originalCulture); 
 octet [] myResBytes = (byte []) ob; 
 en utilisant (FileStream fsDst = new FileStream (fName, FileMode.CreateNew, FileAccess.Write)) 
 [
 byte [] bytes = myResBytes ; 
 fsDst.Write (octets, 0, octets.longueur); 
 fsDst.Close (); 
 fsDst.Dispose (); 
} 
} 
1
alikhil