CString in WinExec-Anweisung als z.B. Pfadangabe ?
-
Its me again
Ich habe noch 1 Sache auf dem Herzen (vorerst *g*).
In meiner Befehleszeile:WinExec("net use x: \\123.123.123.123\f", SW_SHOW);
möchte ich gerne die IP-Adresse und den Pfad je durch eine Variable
ersetzen (CString stringip und stringpfad). Ich muß ja allerdings dann
irgendein "Trennzeichen" setzen, um dem Befehl zu sagen,
daß es sich um eine Variable handelt.
Wie gehe ich vor ?CString stringip; CString stringpfad; WinExec("net use x: \\stringip\stringpfad)", SW_SHOW);
Stringip und stringpfad sind Variablen aus 2 verschiedenen
Eingabefenstern, sollen also nur hier in den Funtionsaufruf
übergeben werden.
Bin gerade etwas in Hektik, hoffe war verständlich was ich
meinte :pGruß
Chris
-
Du kannst in WinExec nicht mehr Variablen angeben, als vorgesehen.
Versuchs dochmal so.CString strNetCmd; strNetCmd = "net use x: \\\\"; strNetCmd += strimgip; strNetCmd += "\\" + stringpfad; WinExec(LPCSTR(strNetCnd),SW_SHOW);
Weiss jetzt nicht, ob das mit den Backslashs richtig ist, habe einfach mal die von dir übernommen.
[ Dieser Beitrag wurde am 21.08.2002 um 16:37 Uhr von Lightbringer editiert. ]
-
Danke, der Tip war gut !
Ich habe jetzt den nachstehenden Code. Wenn ich jedoch auf
die public definierte Variable m_tos zugreifen will,
bekomme ich den darin eingegebenen Wert nicht.
Greife ich falsch darauf zu ?Hab erstmal 123.123.123.123 für m_tos eingesetzt, den so geht es.
Wobei 123... natürlich die jeweilige aktive IP sein muß.Code:
void CChatServerDlg::OnButton7() { struct hostent *pHostInfo; unsigned long IPAddress = inet_addr(m_tos); WSADATA WSAData; memset(&WSAData, 0, sizeof(WSAData)); if(::WSAStartup(MAKEWORD(1, 0), &WSAData) == FALSE) { pHostInfo = ::gethostbyaddr(reinterpret_cast<char *>(&IPAddress),sizeof(unsigned long),AF_INET); } if(!pHostInfo) { WSACleanup(); } CString test = pHostInfo->h_name; //wandelt die struct wohl in ne string um ;) MessageBox(test,"Hostname lautet:",MB_OK); UpdateData(TRUE); } void CChatServerDlg::OnButton9() { CString strNetCmd; // faßt stringelemente zusammen um fehler bei ausgabe von "\\\" zu vermeiden CString stringpfad; // soll später über eingabefeld variabel definiert werden..hier aber als testordner benannt CString stringip; // soll den wert von m_tos annehmen stringip ="123.123.123.123"; // m_tos ist ein public definierter CString aus OnButton7() stringpfad="testordner"; // Testordner ist der freigegebene Ordner strNetCmd = "net use x: \\"; // 1 baustein des befehles wird also "net use x: \" strNetCmd += "\\"+stringip; // erweitert befehl auf "net use x: \\123.123.123.123" strNetCmd += "\\" + stringpfad; // erweitert befehl auf "net use x: \\123.123.123.123\testordner" WinExec(LPCSTR(strNetCmd),SW_SHOW); // führt verkettete elemente aus und stellt netzlaufwerk x: her }
und wenn ich wie gesagt schreibe stringip = m_tos, dann
hab ich wieder den Hinweis beim klicken von OnButton9(),
daß beim ausführen des Net use-Befehls die falsche Syntax vorliegt
Help
Chris
-
Mach mal am Anfang von OnButton9 ein UpdateData(TRUE);
[ Dieser Beitrag wurde am 21.08.2002 um 18:38 Uhr von dEUs editiert. ]
-
Und wieder was gelernt...
so, bleibt mir mal nur wieder zu sagen:
Danke
Chris