Autor Beitrag
C#
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Do 29.12.11 17:59 
Hallo @ll,

ich arbeite grad an einer Art Konsole (aber Windows.Forms-Namespace). Auf jeden fall soll die Konsole verschiedene Kommandos ausführen können. Die Befehle sollen jeweils in einzelnen Dateien gespeichert sein. So ähnlich wie bei der "cmd" mit den Batch-Dateien. Kann man das Realisieren, und wenn ja wie? Über Dll-Dateien klappt dass ja nicht nimm ich an. Der Code der Befehle hat immer den gleichen aufbau:
1. Befehl wird aufgerufen und Parameter werden übergeben
2. Befehl verarbeitet
3. Befehl gibt einen String oder so zurück mit dem dann der Status enthalten ist

Hat jemand eine Idee?

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Do 29.12.11 22:49 
user profile iconC# hat folgendes geschrieben Zum zitierten Posting springen:
ich arbeite grad an einer Art Konsole (aber Windows.Forms-Namespace). Auf jeden fall soll die Konsole verschiedene Kommandos ausführen können.
Was denn nun, Console, Windows Forms oder aber vielleicht WPF?

Naja, so wie ich das sehe, kommst Du um CodeDom nicht rum.

Also ich würde so vorgehen: Es wird irgendein Befehl übergeben + Parameter optional.
Nun schaust Du in Deinem Verzeichnis nach, ob dort eine Datei existiert, die den Namen des Befehls hat. Wenn ja, diese lesen und an den CodeDom-Provider übergeben, der daraus ausführbaren Code macht. Dann den Code ausführen und die Parameter übergeben. Und Returnvalue ausgeben.

Aber wozu brauchst Du das eigentlich??
Das ist alles eine sehr wacklige Angelegenheit. Und für einen Anfänger nicht gerade leicht zu programmieren.
Vor allem die Fehlerbehandlung!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 30.12.11 10:29 
Hallo C#,

um was für Art von Dateien soll es sich denn handeln (native Anwendungen, managed-Anwendungen bzw. DLLs oder Skriptdateien bzw. noch zu kompilierender C#-Code)?

Für native Anwendungen kannst du die WinAPI-Funktion ExecuteShell verwenden.
Für managed-Anwendungen bzw. DLLs kannst du AppDomain.ExecuteAssembly verwenden. Oder aber du lädst eine Assembly per einer der Assembly.LoadXXXX-Methoden und rufst dann per Reflection eine bestimmte Methode (z.B. Main) mit Parametern auf.

Als Rückgabewert wird aber jeweils nur ein 'int' geliefert (meist als Fehlercode für Batchdateien).
C# Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Fr 30.12.11 12:30 
Danke für die Antworten. Ich habe nochmal rumgesucht und ich denke ich werde es wohl über CodeDom machen. Die Dateien sind unkompilierter C#-Code.
Ich programiere eine WindowsForms-Anwendung, die so aussieht wie eine Konsole, nur eben mit ein paar "Zusätzen".
Aber was für Vorteile bietet mir WPF gegenüber Forms? Ich benutze normalerweise Forms oder Console.

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 30.12.11 13:26 
Hallo C#,

unter www.c-sharp-forum.de....php?p=640316#640316 und www.c-sharp-forum.de....php?p=654229#654229 habe ich ein paar Links zu CodeDOM-Beispielen hinterlegt gehabt (die Frage kam also schon öfters ;-))

Für diesen Beitrag haben gedankt: C#