Entwickler-Ecke

Basistechnologien - Kurze cmd-Befehle über c#?


Trautmann - Do 19.03.09 22:09
Titel: Kurze cmd-Befehle über c#?
Hallo ich hätte gerne gewusst, ob man mit C# Cmd-Befehle ausführen kann.
Ich hab gelesen das das mit Process.Start geht aber da kommt bei mir nur "Der Name 'Process' ist nicht im aktuellen Konten vorhanden," (trotz using System.Diagnostics;)
Benutze C# 2008 Express Edition von MS und Framework version 3.5 auf einem vista 64 bit Rechner.

danke schon jetzt

mfg

Trautmann


Christian S. - Do 19.03.09 22:16

:welcome:

Zeig mal Deinen Code mit Process.Start, damit wird nämlich eigentlich gemacht :gruebel:

Grüße
Christian


Trautmann - Do 19.03.09 22:22


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
using System;
using System.Diagnostics;

class Install
{
    public static void Main()
    {
        Process.Start("cmd.exe /k shutdown -f -s");
    }
}


Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt


Christian S. - Do 19.03.09 22:26

Der Fehler dürfte dran liegen, dass Du die Parameter mit zur zu startenden Datei packst. Die sollten aber in der Start-Methode in einen extra dafür vorhandenen Parameter.


Trautmann - Do 19.03.09 22:30

Hiho

Quelltext
1:
Process.Start("IExplore.exe");                    

geht auch nicht :(

Process wir rot makiert mit dem Kommentar: "Der Name 'Process' ist nicht im aktuellen Konten vorhanden,"


Christian S. - Do 19.03.09 22:36

Bei mir klappt das. Generell sollte man aber natürlich den Pfad mit zur Datei schreiben, evtl. hilft das bei Dir dann auch.


Trautmann - Do 19.03.09 22:44

Process wir rot makiert mit dem Kommentar: "Der Name 'Process' ist nicht im aktuellen Kontent vorhanden,"

scheint also als gäbs Probleme die Methode zu finden.


Christian S. - Do 19.03.09 22:52

Also, wenn der Namespace eingebunden ist und Du die "System.dll" in den Referenzen hast (wovon ich mal stark ausgehe), dann sollte die Klasse da sein.

Was für eine Art von Projekt hast Du denn erstellt? Bei Silverlight gäbe es die Klasse z.B nicht ;-)



//edit: in Deinem ersten Code-Schnipsel hast Du aber was rausgekürzt, oder? Oder steht Deine Klasse wirklcih nicht in einem Namespace (das muss sie nämlich)


Trautmann - Do 19.03.09 23:07

Hallo,

hab das Problem behoben (hab das in ein Code-Element geschrieben das klappt dann wohl nicht).
Jetzt würd ich aber gern was anderes machen und zwar nicht shutdown sondern einen pfad mit "-install -output screen".
bei Process.Start("cmd.exe", pfad+"-install -output screen"); öffnet er nur cmd aber sonst nichts.

mfg


Kha - Do 19.03.09 23:25

user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
Oder steht Deine Klasse wirklcih nicht in einem Namespace (das muss sie nämlich)
Nicht unbedingt. Nicht, dass man das Feature bräuchte ;) .

@Trautmann: Wenn pfad einen absoluten Pfad auf ein Programm enthält, wozu dann noch der Umweg über cmd? Starte das Programm direkt über Process.Start(pfad, ...


Trautmann - Fr 20.03.09 00:40

Hi
Ich mach das mit cmd weil ich einen Bug übergehen muss.
Wenn ich die Setup-Datei direkt aufrufe, passiert herzlich wenig.


Kha - Fr 20.03.09 13:17

Ich glaube, du hast da was falsch verstanden: cmd ist nur Mittel zum Zweck und für den User gedacht. Was cmd kann, kannst du mit eigenem Code genauso gut. Siehe auch http://c-sharp-forum.de/viewtopic.php?p=552138#552138


Trautmann - Fr 20.03.09 17:45

Oh jetzt hab ichs ;P
Danke für die Hilfe.

Dann hätt ich noch eine Frage und zwar: gibt es eine vorgefertigte Klasse mit denen man sie diese "Durchsuchen" Fenster machen kann?(die z.b.: bei Datei Speichern kommen)

mfg

Trautmann


Christian S. - Fr 20.03.09 17:50

Hallo!

Bitte erstelle für eine neue Frage auch immer einen neuen Thread. Dann kansnt Du den in die richtige Sparte packen und mit einem eigenen Titel versehen. Danke! :-)

Grüße
Christian