Работа с сетевыми подключениями в XE7

neobi1

Местный
Регистрация
6 Июл 2014
Сообщения
49
Реакции
3
Credits
82
Кто что использует, существует ли готовый компонент для работы с сетевыми подключениями (получение информации о состоянии, количество принятой информации количество переданной информации, изминение настроек (IP, DNS, MASK), создание удаление подключения)
 

emale

Местный
Регистрация
18 Апр 2008
Сообщения
9
Реакции
6
Credits
29
ищи винапи функции по кодовому слову IP helpers
В частности: Для просмотра ссылки Войди или Зарегистрируйся

там есть функции для доступа к любой информации. Собственно все виндовые утили через них и работают.
 

kolobok16

Турист
Регистрация
8 Дек 2014
Сообщения
5
Реакции
2
Credits
187
Есть прекрасный компонент IPHelper там показывает полную статистику, сколько принято, чего отправлено и т.д., список всех интерфейсов, IP и их настроек, даже таблица ARP есть и маршрутизация. Но это только статистика. А вот компонент чтобы управлял настройками Windows, сетевыми подключениями и DNS - такого в жизни не встречал.
 

neobi1

Местный
Регистрация
6 Июл 2014
Сообщения
49
Реакции
3
Credits
82
Есть прекрасный компонент IPHelper там показывает полную статистику, сколько принято, чего отправлено и т.д., список всех интерфейсов, IP и их настроек, даже таблица ARP есть и маршрутизация. Но это только статистика. А вот компонент чтобы управлял настройками Windows, сетевыми подключениями и DNS - такого в жизни не встречал.

Дак этоже вроде не компонент, а библиотека работы с dll через тотже WinAPI или както так.

правда может я чего упустил, пожайлуста ссылку можешь дать на этот компонент ?
 
Последнее редактирование модератором:

neobi1

Местный
Регистрация
6 Июл 2014
Сообщения
49
Реакции
3
Credits
82
А ктонибуть сталкивался с таким: Получить резульятат выполнения команды из cmd окна допустим от команды ipconfig /all кучу примеров пересмотрел неодин неработатет на delphi XE7 постоянно вываливаются ошибки.
 

ziv_2010

Местный
Регистрация
19 Май 2010
Сообщения
11
Реакции
4
Credits
22
Я пользовался Indy и ICS. Программа на ICS жрет меньше процессорного времени в 2-3 раза. Кроме того в ICS есть ассинхронное исполнение. А в Indy синхронное.
 

ASDOH

Турист
Регистрация
1 Июл 2010
Сообщения
12
Реакции
2
Credits
22
А ктонибуть сталкивался с таким: Получить резульятат выполнения команды из cmd окна допустим от команды ipconfig /all кучу примеров пересмотрел неодин неработатет на delphi XE7 постоянно вываливаются ошибки.
Код:
  procedure RunDosInMemo(DosApp:String;AMemo:TMemo) ;
  const
     ReadBuffer = 2400;
  var
   Security : TSecurityAttributes;
   ReadPipe,WritePipe : THandle;
   start : TStartUpInfo;
   ProcessInfo : TProcessInformation;
   Buffer : PAnsichar;
   BytesRead : DWord;
   Apprunning : DWord;
  begin
   With Security do begin
    nlength := SizeOf(TSecurityAttributes) ;
    binherithandle := true;
    lpsecuritydescriptor := nil;
   end;
   if Createpipe (ReadPipe, WritePipe,
                  @Security, 0) then begin
    Buffer := AllocMem(ReadBuffer*sizeof(Ansichar) + 1) ;
    FillChar(Start,Sizeof(Start),#0) ;
    start.cb := SizeOf(start) ;
    start.hStdOutput := WritePipe;
    start.hStdInput := ReadPipe;
    start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
    start.wShowWindow := SW_HIDE;
    UniqueString(DosApp);
    if CreateProcess(nil,
           PChar(DosApp),
           @Security,
           @Security,
           true,
           NORMAL_PRIORITY_CLASS,
           nil,
           nil,
           start,
           ProcessInfo)
    then begin
        repeat
            Apprunning := WaitForSingleObject(ProcessInfo.hProcess,100) ;
            Application.ProcessMessages;
        until (Apprunning <> WAIT_TIMEOUT) ;
        Repeat
        BytesRead := 0;
        ReadFile(ReadPipe,Buffer[0], ReadBuffer,BytesRead,nil) ;
        Buffer[BytesRead]:= #0;
        //OemToAnsiBuff(Buffer,Buffer,BytesRead) ;
        AMemo.Text := AMemo.text + String(Buffer) ;
        until (BytesRead < ReadBuffer) ;
   end;
   FreeMem(Buffer) ;
   CloseHandle(ProcessInfo.hProcess) ;
   CloseHandle(ProcessInfo.hThread) ;
   CloseHandle(ReadPipe) ;
   CloseHandle(WritePipe) ;
   end;
  end;
begin
RunDosInMemo('ipconfig.exe /all',Memo1) ;
end;
Честно украдено с просторов и переработано. Проверил на XE5, работает. В зависимости от вывода комментируем или раскоментируем //OemToAnsiBuff(Buffer,Buffer,BytesRead) ;
 

neobi1

Местный
Регистрация
6 Июл 2014
Сообщения
49
Реакции
3
Credits
82
Код:
  procedure RunDosInMemo(DosApp:String;AMemo:TMemo) ;
  const
     ReadBuffer = 2400;
  var
   Security : TSecurityAttributes;
   ReadPipe,WritePipe : THandle;
   start : TStartUpInfo;
   ProcessInfo : TProcessInformation;
   Buffer : PAnsichar;
   BytesRead : DWord;
   Apprunning : DWord;
  begin
   With Security do begin
    nlength := SizeOf(TSecurityAttributes) ;
    binherithandle := true;
    lpsecuritydescriptor := nil;
   end;
   if Createpipe (ReadPipe, WritePipe,
                  @Security, 0) then begin
    Buffer := AllocMem(ReadBuffer*sizeof(Ansichar) + 1) ;
    FillChar(Start,Sizeof(Start),#0) ;
    start.cb := SizeOf(start) ;
    start.hStdOutput := WritePipe;
    start.hStdInput := ReadPipe;
    start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
    start.wShowWindow := SW_HIDE;
    UniqueString(DosApp);
    if CreateProcess(nil,
           PChar(DosApp),
           @Security,
           @Security,
           true,
           NORMAL_PRIORITY_CLASS,
           nil,
           nil,
           start,
           ProcessInfo)
    then begin
        repeat
            Apprunning := WaitForSingleObject(ProcessInfo.hProcess,100) ;
            Application.ProcessMessages;
        until (Apprunning <> WAIT_TIMEOUT) ;
        Repeat
        BytesRead := 0;
        ReadFile(ReadPipe,Buffer[0], ReadBuffer,BytesRead,nil) ;
        Buffer[BytesRead]:= #0;
        //OemToAnsiBuff(Buffer,Buffer,BytesRead) ;
        AMemo.Text := AMemo.text + String(Buffer) ;
        until (BytesRead < ReadBuffer) ;
   end;
   FreeMem(Buffer) ;
   CloseHandle(ProcessInfo.hProcess) ;
   CloseHandle(ProcessInfo.hThread) ;
   CloseHandle(ReadPipe) ;
   CloseHandle(WritePipe) ;
   end;
  end;
begin
RunDosInMemo('ipconfig.exe /all',Memo1) ;
end;
Честно украдено с просторов и переработано. Проверил на XE5, работает. В зависимости от вывода комментируем или раскоментируем //OemToAnsiBuff(Buffer,Buffer,BytesRead) ;


Респект тебе и уважуха. Давно искал рабочий вариант. Огромное тебе спасибо
 

werful

Турист
Регистрация
24 Май 2009
Сообщения
24
Реакции
1
Credits
48
Код:
  procedure RunDosInMemo(DosApp:String;AMemo:TMemo) ;
  const
     ReadBuffer = 2400;
  var
   Security : TSecurityAttributes;
   ReadPipe,WritePipe : THandle;
   start : TStartUpInfo;
   ProcessInfo : TProcessInformation;
   Buffer : PAnsichar;
   BytesRead : DWord;
   Apprunning : DWord;
  begin
   With Security do begin
    nlength := SizeOf(TSecurityAttributes) ;
    binherithandle := true;
    lpsecuritydescriptor := nil;
   end;
   if Createpipe (ReadPipe, WritePipe,
                  @Security, 0) then begin
    Buffer := AllocMem(ReadBuffer*sizeof(Ansichar) + 1) ;
    FillChar(Start,Sizeof(Start),#0) ;
    start.cb := SizeOf(start) ;
    start.hStdOutput := WritePipe;
    start.hStdInput := ReadPipe;
    start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
    start.wShowWindow := SW_HIDE;
    UniqueString(DosApp);
    if CreateProcess(nil,
           PChar(DosApp),
           @Security,
           @Security,
           true,
           NORMAL_PRIORITY_CLASS,
           nil,
           nil,
           start,
           ProcessInfo)
    then begin
        repeat
            Apprunning := WaitForSingleObject(ProcessInfo.hProcess,100) ;
            Application.ProcessMessages;
        until (Apprunning <> WAIT_TIMEOUT) ;
        Repeat
        BytesRead := 0;
        ReadFile(ReadPipe,Buffer[0], ReadBuffer,BytesRead,nil) ;
        Buffer[BytesRead]:= #0;
        //OemToAnsiBuff(Buffer,Buffer,BytesRead) ;
        AMemo.Text := AMemo.text + String(Buffer) ;
        until (BytesRead < ReadBuffer) ;
   end;
   FreeMem(Buffer) ;
   CloseHandle(ProcessInfo.hProcess) ;
   CloseHandle(ProcessInfo.hThread) ;
   CloseHandle(ReadPipe) ;
   CloseHandle(WritePipe) ;
   end;
  end;
begin
RunDosInMemo('ipconfig.exe /all',Memo1) ;
end;
Честно украдено с просторов и переработано. Проверил на XE5, работает. В зависимости от вывода комментируем или раскоментируем //OemToAnsiBuff(Buffer,Buffer,BytesRead) ;

Прикольное решение. Надо будет взять на заметку
 

DelGor

Местный
Регистрация
25 Июл 2011
Сообщения
21
Реакции
3
Credits
36
Кто что использует, существует ли готовый компонент для работы с сетевыми подключениями (получение информации о состоянии, количество принятой информации количество переданной информации, изминение настроек (IP, DNS, MASK), создание удаление подключения)

Для просмотра ссылки Войди или Зарегистрируйся