Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
/*****************************************************************************************
FILE : shutdown.c
VERSION AUTOR DATUM BEMERKUNG
USED BY
FIRMA C-Kurs / Grundlagen
BESCHREIBUNG
Dieser Batch ermoeglicht das Runterfahren oder Neustarten eines Computers in ihrem
Netzwerk ohne jegliche Konsolenkenntnisse.
*****************************************************************************************/
// Import
#include <stdlib.h>
#include <stdio.h>
// Konstanten
#define G
// Variablen
char Ip_name[16]; // IP-Adresse oder Computername
char Cmd[256] = "SHUTDOWN "; // Variable welche den Shutdownbefehl enthält
int Eingabe_menu; // Eingabe des Gewünschten schrittes
int Menu_abfrage; // Abfrage sicherstellen Ja oder Nein
int Counter = 10; // Counter um bei Falscheingabe die Zeit zu vertögern
//Hauptprogramm
int main() {
system(); //Titel in der Konsole
main:
//Anzeige Verbesserungen
system("cls"); //Leert den Bildschirm*/
system("Color E"); //Der Text wird nun in gelb ausgegeben*/
//Bildschirmausgabe
printf("Dieser Batch ermoeglicht das Runterfahren oder Neustarten eines Computers\n");
printf("in ihrem LAN.\n\n");
//Auswahlmenu
printf("Auswahlmenu\n");
printf("-----------\n");
printf("[1] --- /i Ermoeglicht eine Grafische Oberflaeche\n\n");
printf("[2] --- /s Herunterfahren\n\n");
printf("[3] --- /s /c /t xxx Herunterfahren, Grund, Zeit in Sekunden\n\n");
printf("[4] --- /r Neustart\n\n");
printf("[5] --- /r /c /t xxx Neustart, Grund, Zeit in Sekunden\n\n");
printf("[6] --- /a Abbrechen des Herunterfahren oder Neustartes\n\n");
printf("[7] --- Deinstallation Loescht alle Programmdateien\n\n");
printf("[0] --- EXIT Beendet das Programm\n\n\n");
printf("Waehlen sie [1], [2], [3], [4], [5], [6], [7] oder [0]\n\n");
printf("Eingabe = ");
//Eingabe des gewünschten Schrittes
scanf ("%i",&Eingabe_menu);
//Abfrage zur Überprüfung ob die Eingabe kleiner als 7 ist
if (Eingabe_menu <= 7) {
//Sprungmarken zum gewünschten Punkt welche jedoch keine IP brauchen
if (Eingabe_menu == 1)
goto one;
if (Eingabe_menu == 7)
goto seven;
if (Eingabe_menu == 0)
goto zero;
}
//Sprungmarke zum beginn, wegen falscher eingabe
else {
goto main;
}
//Sprungmarken zum gewünschten Punkt welche jedoch eine IP brauchen
if (Eingabe_menu == 2 || 3 || 4 || 5 || 6)
//Eingabe: IP-Adresse oder Computername
printf("\nGeben sie bitte die IP-Adresse oder den Computernamen ein: ");
scanf("%s",&Ip_name);
printf("\n%s\n\n", Ip_name);
if (Eingabe_menu == 2)
system("SHUTDOWN /s /m \\%s"), Ip_name;
if (Eingabe_menu == 3)
goto three;
if (Eingabe_menu == 4)
goto four;
if (Eingabe_menu == 5)
goto five;
if (Eingabe_menu == 6)
goto six;
goto end;
//Sprungmarken 0,1 & 7
zero:
printf("0");
//system(cmd
goto end;
one:
printf("1");
goto end;
seven:
printf("7");
goto end;
//Sprungmarken 2 - 6
two:
printf("2");
goto end;
three:
printf("3");
goto end;
four:
printf("4");
goto end;
five:
printf("5");
goto end;
six:
printf("6");
goto end;
//Programmende & Kontrolle des Programmablauf
end: // Sprungmarke zum ende
system("PAUSE"); // nur während Entwicklungsphase
return 0;
}
sizeof ist ein Operator der zur Kompilierzeit die Größe (in Bytes) eines Datentyps bzw. einer Variablen ermittelt. Da cmd ein Array von chars ist und ein char genau ein Byte groß ist, ist die Größe von cmd 256 Bytes.zyclop hat gesagt.:Was macht das
Code:sizeof(cmd)-strlen(cmd)-1);
if (scanf("%15s", ipaddr) != 1) {
/* Fehler beim Einlesen */
exit(1);
}
Das hab ich doch oben lang und breit erklärt!?zyclop hat gesagt.:Code:system("SHUTDOWN /s /m \\%s"), Ip_name;
ist Fett angestrichen, wie kann das lösen, kann mir da jemand helfen
Du kannst die Parameter einfach nacheinander zusammenbasteln - bzw. konkatenieren. Die Parameter die nicht dynamisch ermittelt werden würde ich gleich zu Anfang einfügen:zyclop hat gesagt.:hab ich nun
schgugg
Code:strncat(Cmd, Par_s, Par_m, Par_slash, Ip_name, sizeof(Cmd)-strlen(Cmd)-1);
jetzt sind es aber zuviele argumente
was soll ich nun machen
strncat(Cmd, " /s /m \\\\", sizeof(Cmd)-strlen(Cmd)-1);
strncat(Cmd, Ip_name, sizeof(Cmd)-strlen(Cmd)-1);