eingabefeld verknüpfen

Der Funktionsaufruf war doch schon vollständig. Ich versteh nicht, wieso du da den Part zur Ermittlung von "strResult" zwischenkopiert hast ?
Probier's mal so:
Code:
CString str1, str2, str3;
GetDlgItemText(IDC_EDIT1, str1);
GetDlgItemText(IDC_EDIT2, str2);
GetDlgItemText(IDC_EDIT3, str3);
CString strResult = _T("net send ") + str1 + _T(" ") + str2 + _T(" ") + str3;

STARTUPINFO         siStartInfo;
PROCESS_INFORMATION piProcInfo;
memset(&siStartInfo, 0, sizeof(siStartInfo));
siStartInfo.cb = sizeof(STARTUPINFO);

CreateProcess( NULL,
               strResult, 
               NULL,
               NULL,
               FALSE,
               NULL,
               NULL,
               NULL, 
               &siStartInfo,
               &piProcInfo );

Gruß
MCoder
 
ompilierung läuft...
NETSEND§Dlg.cpp
C:\DOKUMENTE UND EINSTELLUNGEN\*****\DESKTOP\TEST!\NETSEND§\NETSEND§Dlg.cpp(238) : error C2664: 'CreateProcessA' : Konvertierung des Parameters 2 von 'class CString' in 'char *' nicht moeglich
Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
Fehler beim Ausführen von cl.exe.

NETSEND§Dlg.obj - 1 Fehler, 0 Warnung(en)

diese fehlermeldung kommt
 
Sorry, Fehler von mir. Man kann den CString nicht direkt verwenden, sonder muss noch casten:
Code:
CreateProcess( NULL,
               (LPTSTR)(LPCTSTR)strResult,
               NULL,
               NULL,
               FALSE,
               NULL,
               NULL,
               NULL, 
               &siStartInfo,
               &piProcInfo );
 
MCoder hat gesagt.:
Sorry, Fehler von mir. Man kann den CString nicht direkt verwenden, sonder muss noch casten:
Code:
CreateProcess( NULL,
               (LPTSTR)(LPCTSTR)strResult,
               NULL,
               NULL,
               FALSE,
               NULL,
               NULL,
               NULL, 
               &siStartInfo,
               &piProcInfo );

das funktioniert jetzt auch...

aber beim edit3 will ich eine beschränkte zeichenanzahl setzen(max 500 zeichen) was für ein code muss ich reinsetzen? ich hab hier schon zwar gesucht aber nixgefunden!

was mir aber eben auffällt...
das immer noch ein dosfenster kommt!

also was ist jetzt der unterschied?
 
scorpionx hat gesagt.:
aber beim edit3 will ich eine beschränkte zeichenanzahl setzen
Bei Dialog Initialisierung ausführen:
Code:
((CEdit *)GetDlgItem(IDC_EDIT3))->SetLimitText(500);
scorpionx hat gesagt.:
was mir aber eben auffällt...
das immer noch ein dosfenster kommt!
Füg mal das noch vor dem Aufruf von CreateProcess() ein:
Code:
siStartInfo.dwFlags     = STARTF_USESHOWWINDOW;
siStartInfo.wShowWindow = SW_HIDE;

Gruß
MCoder
 
Danke funktioniert alles!

kann mir jemand eine gute installshield programm empfehlen für die exe datei?

und nochmal ein extra dank für mcoder

hast mir sehr weiter geholfen!


aber eine frage hätt ich da noch:

kann man es so machen das wenn die nachricht erfolgreich gesendet worden ist das eine messagebox kommt

"Ihre Nachricht wurde erfolgreich gesendet!"

und wenn nicht

"Es trat ein Fehler beim senden auf! drücken sie auf hilfe um....."

würd doch so ungefähr gehen:

Code:
{
   MessageBox("Es trat ein Fehler beim senden auf! drücken sie auf hilfe um.....", "FEHLER", 
      MB_ICONEXCLAMATION | MB_OK);
}

ich hab keine ahnung wie ich das in eine IF Funktion geschrieben werden kann
 
Hi,
deine Funktion muß einen Wert zurückgeben, der aussagt, ob sie erfolgreich war. Dann kannst du diesen Wert auswerten.
Code:
if(ergebnis==true)
   MessageBox(...) //alles in Ordnung
else
   MessageBox(...) //Fehler

Mfg

langer
 

Neue Beiträge

Zurück