Frage zu "SetVolumeLabel" und ADMIN-Rechten (winXP)
-
Hallo,
ich schreibe gerade so eine Art Systemtool und möchte dem Benutzer die Möglichkeit geben, die Bezeichnung der Festplatte zu ändern.
Ich habe bereits folgenden Code:
**char VolumeName;
char *pVolumeName;cout << "\nBitte neue Bezeichnung angeben: ";
cin >> VolumeName;pVolumeName = &VolumeName;
("C:\", pVolumeName);**
Das Problem:
Es erscheint jeweils nur der erste Buchstabe der Bezeichnung, die der Benutzer angegeben hat, plus zwei Zeichen: E@!
Beispiel: Der User gibt "Windoof" als Bezeichnung ein - das Ergebnis: "WE@", Wieso?Und noch eine kleine Frage: Wenn der Benutzer nur als "Gast" am PC angemeldet ist, kann selbst die Software nich die Datenträgerbezeichnung ändern, kann man dies ändern ?!?
Danke
-
Das mit der Eingabe könnte daran liegen, dass du eine Zeichenkette der Länge 1 erstellst. Das liegt dann doch auf der Hand, dass das nicht gehen kann.
Außerdem würde ich an deiner Stelle sowieso strings vorziehen.
entweder:
char *VolumeName = new char[50]; cin >> *VolumeName;oder:
#include <string> using namespace std; string str; cin >> str;Bei der zweiten Variante hast du wenigstens keine Probleme mit Overflow deiner Pointer.