Netzlaufwerk mit system() verbinden
-
Moin Leute!
Ich probiere gerade mit dem system() Befehl (ja ich weiß, sollte man nicht nutzen -> teste ja nur mal was) ein Netzlaufwerk zu verbinden.
system("net use z: \\192.168.178.21\freigabe");
Das funktioniert aber nicht, es kommt immmer die Meldung:
Sytememfehler 67 aufgetreten Der Netzwerkname wurde nicht gefunden
In der Konsole funktioniert es einwandfrei, wenn ich net use nutzen will....
Hat jemand ne Idee, woran das liegen könnte?
System:
Windows XP Home, SP2
Netzwerkkonfiguration über DHCP
Visual C++ Net 2003Gruß Ivo
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Sorry. Voreilig verschoben.
Versuch mal die Backslashes zu escapen:
system("net use z: \\\\192.168.178.21\\freigabe");
-
Danke es geht
Ich hatte es die ganze Zeit so versucht:
system("net use z: \\\192.168.178.21\freigabe");
Naja hätt ich noch mal einen Backslash mehr gemacht
So ist es besser und läuft auch auf anderen Rechnern:
system("net use z: \\\\127.0.0.1\\freigabe");
Gruß Ivo
EDIT:
Geht es auch das ich anstatt der IP-Adresse eine Variable einfüge?
-
Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Rund um die Programmierung in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ja, natürlich. Du kannst system einfach einen string übergeben. Den musst du dir dann natürlich vorher zurecht basteln. Siehe stringstream oä.
-
kingruedi schrieb:
Ja, natürlich. Du kannst system einfach einen string übergeben. Den musst du dir dann natürlich vorher zurecht basteln. Siehe stringstream oä.
std::string oder C-String?
-
Lars Hupel schrieb:
kingruedi schrieb:
Ja, natürlich. Du kannst system einfach einen string übergeben. Den musst du dir dann natürlich vorher zurecht basteln. Siehe stringstream oä.
std::string oder C-String?
War die Frage ernstgemeint?
Wenn ja: system erwartet einen c-string.Caipi
-
ja, die war tatsächlich ernst gemeint. die aussage "string" ist für mich mehrdeutig. es hätte ja irgendein string sein können...
ich kenne natürlich system() aus der C-standardbibliothek. aber hätte es nicht sein können ( neues sprachmittel in C++: überladung), dass diese in der C++-bibliothek so deklariert wurde:
void system(const char* befehl); void system(std::string befehl);
-
Wenn schon dann wenigstens
void system(const string&)
Allerdings du hättest das auch in einer Referenz nachschlagen können. Zum Beispiel http://cppreference.com
-
So hab ich´s nun gemacht
std::string ip = "127.0.0.1"; system(std::string(std::string("ping") + ip).c_str());
So wird der string ip an system() übergeben, aber eben zum pingen, nun.
Mit dat_ein kann ich nun eine Liste pingen und Netzlaufwerke verbinden.Gruß Ivo
-
1. Kann man das noch etwas Abkürzen
2. Fehlt dir ein Leerzeichen nach Pingsystem((std::string("ping")+ip).c_str()); // op+ liefert wieder std::string und es benötigt keines weiteren Konstruktor-Aufrufs
MfG SideWinder
-
SideWinder schrieb:
2. Fehlt dir ein Leerzeichen nach Ping
system((std::string("ping")+ip).c_str()); // op+ liefert wieder std::string und es benötigt keines weiteren Konstruktor-Aufrufs
MfG SideWinder
dann verbesser es doch wenigstens
system((std::string("ping ")+ip).c_str());