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
internal static byte[] SubExe {
get {
object obj = ResourceManager.GetObject("SubExe", resourceCulture);
return ((byte[])(obj));
}
}
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;
}
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>
Utiliser le processus pour exécuter le nouveau fichier exécutable
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");
}
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 (); } }