Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Warum geht das nicht ??

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
24.01.2006, 16:04 Uhr
chw1234



Hallo,

Danke so geht es. Ich hatte aber inzwischen den CreateProcess Befehl genommen. Wie get das denn da nu wieder ? Kannst Du mir noch mal nen Tipp geben ?

Hier mal mein Code:

STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
for (a=0;a<m_iAusfuehrungPing;a++)
{

// Start the child process.
if( !CreateProcess( NULL, // No module name (use command line).
TEXT("c:/cygwin/bin/ping.exe -d 127.0.0.1 56 5"), // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
printf( "CreateProcess failed (%d).\n", GetLastError() );
return;
}
} //Ende for-Schleife

// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );

// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
24.01.2006, 16:18 Uhr
Tommix




Zitat von chw1234:
Wie get das denn da nu wieder ?

??
Genau so. Dort wo bei Dir die "Commanline" fest verdrahtet ist, schreibst Du cmd hin.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
24.01.2006, 17:20 Uhr
chw1234



und was mache ich jetzt wieder falsch ? wenn ich das so hinschreibe öffnet er nur noch ne normale DOS-Box

STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
--> CString cmd;
--> cmd.Format("c:/cygwin/bin/ping.exe -d 127.0.0.1 %d %d", (m_iPaketgroesse-8), m_iAnzahlPing);

for (a=0;a<m_iAusfuehrungPing;a++)
{

// Start the child process.

if( !CreateProcess( NULL, // No module name (use command line).
--> TEXT("cmd"), // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
printf( "CreateProcess failed (%d).\n", GetLastError() );
return;
}
} //Ende for-Schleife

// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );

// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
24.01.2006, 17:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ohne "" eingeben. er soll den INHALT der Variablen cmd nehmen und nicht das string-literal "cmd"
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
24.01.2006, 18:34 Uhr
chw1234



das hatte ich schon gemacht - aber dann bekomme ich diese Fehlermeldung:

error C2664: 'CreateProcessA' : Konvertierung des Parameters 2 von 'class CString' in 'char *' nicht moeglich

und dabei verweist er in diese Zeile:

--> &pi ) // Pointer to PROCESS_INFORMATION structure.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
24.01.2006, 19:08 Uhr
xXx
Devil


SO:

C++:
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
char cmd[512];
sprintf(cmd, "c:/cygwin/bin/ping.exe -d 127.0.0.1 %d %d", (m_iPaketgroesse-8), m_iAnzahlPing);

for (a=0;a<m_iAusfuehrungPing;a++)
{
    // Start the child process.

    if( !CreateProcess( NULL, cmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ) )
    {
        printf( "CreateProcess failed (%d).\n", GetLastError() );
        return;
    }
} //Ende for-Schleife

// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );

// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
24.01.2006, 22:25 Uhr
chw1234



Hallo,

nen char hatte ich auch schon mal angelegt.
Aber so wie ich das sehe braucht man den sprintf befehl hier zwingend Oder ??
und warum hast du ein char[512] angelegt ? warum so groß ?

und nochmal die frage wie kann ich meine ip-addresse als variable übergben ? doch mit nem Edit-Feld ? oder ist dieses ip-addressen-feld eine eigene klasse ??? wie binde ich diese dann ein


void CStresstestDlg::OnOK():public blabla
ist der Start-Button

ist das eine Möglichkeit oder wird das Grottenfalsch ....??

Danke
Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
25.01.2006, 14:44 Uhr
xXx
Devil


hmm du kannst nen CEdit oder nen CIPAddressCtrl nehmen... ...ne nette Klasse fürs CIPAddressCtrl: XIPAddressCtrl



Zitat von chw1234:

Aber so wie ich das sehe braucht man den sprintf befehl hier zwingend Oder ??


Kannst es ja anders versuchen


Zitat von chw1234:

warum hast du ein char[512] angelegt ? warum so groß ?


Arg... mist, sry.. müsste nen 128 reichen

wenn de noch die IP mit da reinpacken willst machst de es einfach so:

C++:
char cmd[512];
sprintf(cmd, "c:/cygwin/bin/ping.exe -d %s %d %d", m_cIPAddress, (m_iPaketgroesse-8), m_iAnzahlPing);


Allerdings musst de gucken... musst, wenn du keinen String hast %s anpassen... aber das kau ich dir net vor

... void CStresstestDlg::OnOK(); net void CStresstestDlg::OnOK():public blabla ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
25.01.2006, 19:47 Uhr
chw1234



Danke für deine hilfe!

aber wofür GENAU steht eigentlich %d und %s ??

%s - ist wohl ein String ??
%d - int und auch float ??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: