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
internal static byte[] SubExe {
get {
object obj = ResourceManager.GetObject("SubExe", resourceCulture);
return ((byte[])(obj));
}
}
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;
}
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>
Verwenden Sie process, um die neue ausführbare Datei auszuführen
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");
}
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 (); } }