C# Memory an Exe als Paramter übergeben

Gast #4411984
Lesenswert?

Hallo und ein frohes neues Jahr,

ich wollte mal fragen, ob Ihr eine Möglichkeit kennt an eine exe Datei 
als Parameter ein Speicherbereich zu übergeben.

Die Exedatei möchte gerne als Übergabeparameter eine PNG Datei haben und 
die PNG Datei liegt schon als Bytearray in meinem Programm vor.

Ich möchte mir das Abspeichern auf der Festplatte gerne einsparen, indem 
ich die Daten direkt vom Speicher aus an die Exe Datei übergeben kann.

Geht sowas?
Gast #4413511
Lesenswert?

Thorsten schrieb:

> ich wollte mal fragen, ob Ihr eine Möglichkeit kennt an eine exe Datei
> als Parameter ein Speicherbereich zu übergeben.

Ja, sogar mehrere. Letztlich ist das nämlich nur eine ganz normale 
IPC(*)-Anwendung. Man benutzt dazu unter Windows genau die 
Schnittstellen, die das Windows-API für IPC bereitstellt.

(*) IPC=inter-process communication

Es gibt (mindestens) folgende Möglichkeiten:

-WM_COPYDATA-Windows-Message
-Shared memory
-Memory mapped files
-Named pipes
-Mailslots

Wenn .net in's Spiel kommt, muß man zusätzlich leider hochineffizent 
Speicherinhalte zwischen "verwaltetem" und nichtverwaltetem Speicher 
hin- und herkopieren. Methoden, die das leisten, stellt die Klasse 
System.Runtime.InteropServices.Marshal bereit. Auch die zur Anbindung 
der Win32-API-Funktionen nötigen .net-Sprachfeatures werden über den 
Interop-Namespace bereitgestellt.

RTFM
Gast #4420902
Lesenswert?

Hallo, ich musste meine Prioritäten vom Programm etwas verschieben, 
deshalb kam ich nicht dazu. Ich benutze die Android Debug Bridge um mit 
meinem Handy zu kommunizieren bzw. Applicationen zu testen, dazu rufe 
ich in meinem C# Programm die Executable adb.exe mit dem Parameter für 
ein Shell auf "adb.exe -s myhandy shell, danach befinde ich mich in der 
Console auf dem Mobiltelefon, soweit so gut. Nun kann ich Daten über 
stdout und Stdin direkt an die Console senden. Ich bin immer noch etwas 
wackelig mit der OOP und frage mich, wie lange mein Process gültig ist. 
Kann ich jetzt aus jeder Methode heraus auf den Process zugreifen? Oder 
verliert die Instance Ihre Gültigkeit, nachdem ich aus der Methode zum 
Aufruf der Instance verlassen hab?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren