C++ (MFC) Konsolenbefehl - Konvertierung

Jabor

Cadet 3rd Year
Registriert
Aug. 2007
Beiträge
34
Hallo CB,

ich hab leider ein Problem das ich nicht gelöst bekomme!
Ich möchte in meinem Programm einen Kosolenbefehl ausführen, nach dem Motto

Code:
shutdown -r -t <ZEIT>

Es gibt ja mehrere Möglichkeiten, das zu realisieren. (Microsoft Visual C++ 2008 Express)
Doch egal in welcher Art und Weise ich das tue, ich bin leider zu blöd meinen Befehl in dem korrekten Typ zu übergeben.

Die Zeit soll im Shutdown-Befehl selbstverständlich variabel sein, und daher lese ich sie aus 2 Trackbars aus:

Code:
60*60* this->tBHours->Value + 60* this->tBMinutes->Value + this->tBSeconds->Value

Zusammen mit dem vorderen Teil des Befehl versuche ich also, "shutdown -r -t " mit obigem zusammenzubringen, sodass es letztendlich der Argumentenliste von sagen wir

Code:
system()

genügt. Doch wie?
Alle meine Versuche scheiterten.

Hat das jemand mal gemacht und kennt die Antwort :rolleyes:

Dankeschön schonmal im Voraus! :)
 
Du kannst einem cmd-Befehl keinen Wert aus einer Variable mitgeben, aber es gibt eine eigene Funktion um den PC herunterzufahren.
Die Funktion ExitWindowsEx könntest du dazu verwenden, den Timer musst du dann aber selbst schreiben!

Gruß
BlackMark
 
benutz stattdessen lieber die funktion ExitWindowsEx. müsstest halt lediglich die zeitüberbrückung selbst handhaben.

BlackMark schrieb:
Du kannst einem cmd-Befehl keinen Wert aus einer Variable mitgeben,
klar, geht problemlos.
Code:
int i = 60*60* this->tBHours->Value + 60* this->tBMinutes->Value + this->tBSeconds->Value
char num[20];
_itoa_s( i, buf, 20, 10 );

char cmdline[255];
strcpy( "shutdown -r -t ", num );

system( cmdline );
allerdings is das mit der funktion einfacher, besser und eleganter.
 
Zuletzt bearbeitet:
Ich kann nem CMD-Befehl keinen Wert einer Variablen mitgeben O.o
Also ich will jetzt nicht unhöflich erscheinen, schließlich bin ich ja der Fragende, aber das kann ich nur schwer glauben!

Im Prinzip will ich ja nur eine Zahl wie 100 in einen string konvertieren und den dann mit einem zweiten verbinden, den ich dann in system() einspeise.
Nur will das halt von den typen her nicht.

Ja gut, ich könnte selbst einen Timer im Programm erstellen und DANN "shutdown -r -f" in system() einspeise, klar da hab ich gar nicht dran gedacht :D
Vielen Dank!
 
Du must die Zeit halt in einen String wandeln z.B: mit sprintf o.ä.

BlackMark schrieb:
Du kannst einem cmd-Befehl keinen Wert aus einer Variable mitgeben
Das meinst du doch nicht ernst? :D
 
Das meinst du doch nicht ernst?
Gut ihr habt ja recht, so wie es claW. gemacht hat funktioniert es, ich wollte nur den Thread-Ersteller vom system-Befehl wegholen, da dieser sehr "unelegant" ist und man doch lieber auf die WinAPI zurückgreifen sollte, vor allem wenn man schon mit der MFC programmiert!

Gruß
BlackMark
 
Zuletzt bearbeitet:
Habt Dank!
In diesem Falle werde ich selbstverstädlich auch auf die Funktion zurückgreifen, aber dennoch sollte man die Möglichkeit offen lassen ^^

greetZ
 
Zurück
Oben