Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

C-Sharp Abfrage eines Parameters einer exe

Mitglied: Manny1988

Manny1988 (Level 1) - Jetzt verbinden

10.07.2010 um 10:10 Uhr, 3932 Aufrufe, 10 Kommentare

Schönen guten Tag, und danke schon vorweg für die Antworten

Also ich habe eine Exe die mir den Status eines Programmes abruft. Ich kann also in der CMD eingeben:

\\Server\Order\Programm.exe get /status

In der CMD erscheint dann am Ende "AN" oder "AUS".

Ich möchte diesen Status abrufen, und ihn danach in der registry speichern, in "HKLM\SOFTWARE\Statusprogramm\Status"

Ist es in C# möglich, solche Parameter abzurufen?
Mitglied: LotPings
10.07.2010 um 11:11 Uhr
Hallo Manny,

klar geht das, ich hoffe du kannst Englisch
ProcessStartInfo.RedirectStandardOutput Property

Gruß
LotPings
Bitte warten ..
Mitglied: Manny1988
10.07.2010 um 11:38 Uhr
Ich muss gestehen, ich kann nicht viel damit anfangen. Es soll auf jedenfall eine Consolen Anwendung sein, die einfach nur die Exe ließt, und dann am Ende den Wert in den Regedit einträgt. Tut mir wirklich Leid, ich bin mit meinen Programmierkenntnissen noch nicht so weit, if & else, bischen was mit Schleifen und so Kleinzeug ist einfach, aber bei sowas wird mein Verständnis leider überschritten.

edit:

Also ich habs jetz mal so versucht, wahrscheinlich versteh ich einfach das Prinzip gar nicht und es is deswegen falsch

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace Zustand_prüfen
{
class Program
{
static void Main(string[] args)
{
Process DeepFreeze = new Process();
DeepFreeze.StartInfo.FileName = "\\server\Programme\DFC.exe";
DeepFreeze.StartInfo.Arguments = "get /isfrozen";
DeepFreeze.StartInfo.UseShellExecute = false;
DeepFreeze.StartInfo.RedirectStandardOutput = true;
DeepFreeze.Start();

Console.WriteLine(DeepFreeze.StandardOutput.ReadToEnd());

DeepFreeze.WaitForExit();


}
}
}

Bei dem "\\server\Programme wirft der mir einen Fehler aus, wahrscheinlich weil er nicht damit klar kommt das ich einen Pfad angebe?
Bitte warten ..
Mitglied: perseues
10.07.2010 um 12:01 Uhr
Hallo,

dann vielleicht mit Beispiel aus einem anderen Forum von einem mit gleichem Problem:
www.softgames.de/forum/frage121055.html.

Grüße perseues
Bitte warten ..
Mitglied: Manny1988
10.07.2010 um 14:18 Uhr
Unten ist jetzt mal der Code wie ich ihn jetzt zusammengebastelt hab aus euren Links. Mitlerweile startet das ganze Fehlerfrei, jedoch schließt es sich auch sofort.
Ich sehe nichtmal ob er wenigstens die Information ausgibt die er in der cmd normalerweise ausgeben würde.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace Zustand_prüfen
{
class Program
{
static void Main(string[] args)
{
Process p = new Process();

p.StartInfo.FileName = "C:\\DFC.exe";
p.StartInfo.Arguments = "get /isfrozen";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();

Console.WriteLine(p.StandardOutput.ReadToEnd());

p.WaitForExit();


}
}
}
Bitte warten ..
Mitglied: LotPings
10.07.2010 um 14:23 Uhr
Hallo Manny,
wenn du Code postest fasse ihn bitte in Code-Tags ein, siehe Formatierungshilfe

Deinen Wissensstand in bezug auf C# konnte man deinem ersten Posting nicht entnehmen.
Der Backslash ist ein Escapezeichen, du musst daher alle Backslash verdoppeln, damit sie ein Literales Backslash ergeben.
DeepFreeze.StartInfo.FileName = "\\\\server\\Programme\\DFC.exe";
Gruß
LotPings
Bitte warten ..
Mitglied: LotPings
10.07.2010 um 14:35 Uhr
Zitat von Manny1988:
Unten ist jetzt mal der Code wie ich ihn jetzt zusammengebastelt hab aus euren Links. Mitlerweile startet das ganze Fehlerfrei,
jedoch schließt es sich auch sofort.
Ich sehe nichtmal ob er wenigstens die Information ausgibt die er in der cmd normalerweise ausgeben würde.
Dann starte die Exe doch in einem CMD Fenster,
oder stelle deine IDE so ein, das das Fenster offenbleibt.

Wenn dich C# vor Probleme stellt, warum nimmst du nicht einfach eine Batch für die an sich triviale Aufgabe?

Gruß
LotPings
Bitte warten ..
Mitglied: Manny1988
10.07.2010 um 14:46 Uhr
01.
 class Program 
02.
    {        
03.
        static void Main(string[] args) 
04.
05.
            Process p = new Process(); 
06.
 
07.
            p.StartInfo.FileName = "\\\\b7serve\\Programme\\DFC.exe"; 
08.
            p.StartInfo.Arguments = "get /isfrozen"; 
09.
            p.StartInfo.UseShellExecute = false; 
10.
            p.StartInfo.RedirectStandardOutput = true; 
11.
            p.Start(); 
12.
 
13.
            Console.WriteLine(p.StandardOutput.ReadToEnd()); 
14.
 
15.
            p.WaitForExit(); 
16.
 
17.
 
18.
19.
    }
Entschuldigung, habe ich wahrlich nicht erwähnt. Also ich bin in Sachen Programmierung kein erfahrener Mensch. Bissel was in Batch, aber das wars auch.

Okay, mit dem Doppel-Backslash ruft er das Programm vom Server ab, jedoch schließt es sich dennoch sofort.
Bitte warten ..
Mitglied: 76109
10.07.2010 um 16:31 Uhr
Hallo Manny1988!

müsste das nicht eher etwas in dieser Art sein?:
01.
 class Program 
02.
    {        
03.
        static void Main(string[] args) 
04.
05.
            Process p = new Process(); 
06.
 
07.
            p.StartInfo.FileName = "\\\\b7serve\\Programme\\DFC.exe"; 
08.
            p.StartInfo.Arguments = "get /isfrozen"; 
09.
            p.StartInfo.UseShellExecute = false; 
10.
            p.StartInfo.RedirectStandardOutput = true; 
11.
            p.WaitForExit(); 
12.
 
13.
            Console.WriteLine(p.StandardOutput.ReadToEnd()); 
14.
15.
    }
Wobei die Codezeile 11 den anderen Prozess startet, auf dessen Beendigung wartet und im Anschluß der Std-Out gelesen wird?

Gruß Diete
Bitte warten ..
Mitglied: LotPings
10.07.2010 um 19:31 Uhr
Zitat von 76109:
müsste das nicht eher etwas in dieser Art sein?:
snip
Wobei die Codezeile 11 den anderen Prozess startet, auf dessen Beendigung wartet und im Anschluß der Std-Out gelesen wird?
Hallo Dieter,

laut der Info in meinem obigen Link soll diese Reihenfolge mögliche Deadlocks verhindern. (Auch wenn das bei der hier minimalen Ausgabe eher unwahrscheinlich ist.)
The code example avoids a deadlock condition by calling p.StandardOutput.ReadToEnd before p.WaitForExit. A deadlock condition can result if the parent process calls p.WaitForExit before p.StandardOutput.ReadToEnd and the child process writes enough text to fill the redirected stream. The parent process would wait indefinitely for the child process to exit. The child process would wait indefinitely for the parent to read from the full StandardOutput stream.

Gruß
LotPings
Bitte warten ..
Mitglied: 76109
10.07.2010 um 21:27 Uhr
Hallo LotPings!

Mhm, dann hätte ich Deinen Info-Link wohl besser vorher lesen sollen

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
C und C++
C Sharp SQL Abfrage Problem
Frage von 115122C und C++3 Kommentare

Hallo, ich möchte in C# eine Verbindung zu einer DB/Tabelle herstellen, eine Abfrage starten und die Ergebnismenge darstellen. Das ...

Visual Studio

C-sharp - Eine exe in ein Projekt importieren und ausführen?

Frage von MyApps2GO.deVisual Studio3 Kommentare

Hallo zusammen, ich würde sehr gerne eine exe Datei in mein Projekt importieren und diese ausführen. Importiert hab ich ...

C und C++

C-Sharp - vshost32.exe funkioniert nicht mehr

gelöst Frage von mabue88C und C++2 Kommentare

Hallo, ich habe eine Velleman K8055 USB-Interfacekarte. Sie kann über eine DLL in eigene Programme eingebunden werden, um die ...

IDE & Editoren

IDE für C-Sharp und C++ auf Windows

gelöst Frage von BugdroidIDE & Editoren8 Kommentare

Hallo, Ich nutze derzeit Visual Studio, aber auf Dauer ist es mir etwas zu Ressourcenfressend und für meine Zwecke ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 6 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 6 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 10 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 1 TagWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server39 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...