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

neobi1

Member
Регистрация
06.07.2014
Сообщения
49
Реакции
3
Баллы
8
Кто что использует, существует ли готовый компонент для работы с сетевыми подключениями (получение информации о состоянии, количество принятой информации количество переданной информации, изминение настроек (IP, DNS, MASK), создание удаление подключения)
 

emale

New member
Регистрация
18.04.2008
Сообщения
9
Реакции
6
Баллы
3
Местоположение
Russia, Tver
ищи винапи функции по кодовому слову IP helpers
В частности:

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

kolobok16

New member
Регистрация
08.12.2014
Сообщения
4
Реакции
0
Баллы
1
Есть прекрасный компонент IPHelper там показывает полную статистику, сколько принято, чего отправлено и т.д., список всех интерфейсов, IP и их настроек, даже таблица ARP есть и маршрутизация. Но это только статистика. А вот компонент чтобы управлял настройками Windows, сетевыми подключениями и DNS - такого в жизни не встречал.
 

neobi1

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

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

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

neobi1

Member
Регистрация
06.07.2014
Сообщения
49
Реакции
3
Баллы
8
А ктонибуть сталкивался с таким: Получить резульятат выполнения команды из cmd окна допустим от команды ipconfig /all кучу примеров пересмотрел неодин неработатет на delphi XE7 постоянно вываливаются ошибки.
 

ziv_2010

New member
Регистрация
19.05.2010
Сообщения
11
Реакции
4
Баллы
3
Native language | Родной язык
Русский
Я пользовался Indy и ICS. Программа на ICS жрет меньше процессорного времени в 2-3 раза. Кроме того в ICS есть ассинхронное исполнение. А в Indy синхронное.
 

ASDOH

New member
Регистрация
01.07.2010
Сообщения
12
Реакции
2
Баллы
3
А ктонибуть сталкивался с таким: Получить резульятат выполнения команды из 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

Member
Регистрация
06.07.2014
Сообщения
49
Реакции
3
Баллы
8
Код:
  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

New member
Регистрация
24.05.2009
Сообщения
24
Реакции
1
Баллы
3
Возраст
38
Код:
  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

New member
Регистрация
25.07.2011
Сообщения
21
Реакции
3
Баллы
3
Кто что использует, существует ли готовый компонент для работы с сетевыми подключениями (получение информации о состоянии, количество принятой информации количество переданной информации, изминение настроек (IP, DNS, MASK), создание удаление подключения)

 
198 220Темы
635 192Сообщения
3 618 420Пользователи
Bl1ndaGeНовый пользователь
Верх