Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как можно программно сменить текущий IP-адрес в локалке? [D7, WinXP]


Rentgen ©   (2005-10-25 12:44:00) 

Всем привет!
Как можно программно сменить текущий IP-адрес в локалке?


Arazel   (2005-10-29 15:58:00) [1]

В натуре как  изменить?


Помогите пожалуйста?   (2005-10-25 18:33:00) [2]

а  как рабочию группу и описание?


Rentgen   (2005-10-25 15:41:00) [3]

вызывать так:

if NOT ChangeIp( 'Подключение по локальной сети',
                  '192.168.0.188',
                  '255.255.255.0',
                  '192.168.10.90') then showmessage(Невозможно сменить IP')
                                   else showmessage('IP изменен успешно!');


Rentgen   (2005-10-25 15:40:00) [4]

Спасибо мастерам за (НЕ)помощь.
Держите функцию собратья по несчастью :)   :

function ChangeIp(ConnectionName,Ip,Netmask,Gateway:string):boolean;

   function ExecAndWait(FileName:String; Visibility:integer):integer;
   var
     zAppName:array[0..512] of char;
     zCurDir:array[0..255] of char;
     WorkDir:String;
     StartupInfo:TStartupInfo;
     ProcessInfo:TProcessInformation;
     Resultado: DWord;
   begin
     StrPCopy(zAppName,FileName);
     GetDir(0,WorkDir);
     StrPCopy(zCurDir,WorkDir);
     FillChar(StartupInfo,Sizeof(StartupInfo),#0);
     StartupInfo.cb := Sizeof(StartupInfo);

     StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
     StartupInfo.wShowWindow := Visibility;
     if not CreateProcess(nil,
       zAppName,                      { pointer to command line string }
       nil,                           { pointer to process security attributes}
       nil,                           { pointer to thread security attributes}
       false,                         { handle inheritance flag }
       CREATE_NEW_CONSOLE or          { creation flags }
       NORMAL_PRIORITY_CLASS,
       nil,                           { pointer to new environment block }
       nil,                           { pointer to current directory name }
       StartupInfo,                   { pointer to STARTUPINFO }
       ProcessInfo) then Result := -1 { pointer to PROCESS_INF }

     else begin
       WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
       GetExitCodeProcess(ProcessInfo.hProcess,Resultado);
       Result := Resultado;
     end;
   end;

 begin
   Result:=( ExecAndWait( 'netsh interface ip set address "'+
                          ConnectionName+'" '+
                         ' static '+Ip+ ' '+NetMask +' '+GateWay+' 1',sw_hide)=0 );
 end;


Rentgen   (2005-10-25 14:57:00) [5]

Вообщем нашел 100% ответ:
iphlpapi.dll

НО(!)
Кто нить скажет как работать с этими функциями?
Может юнит есть?


Rentgen   (2005-10-25 13:41:00) [6]

Нашел
IP Helper.
Но в MSDN сказанно, что он для C++
А неподскажите аналоги для Delphi?


Наверх

Титульная страница Поиск, карта сайта Написать письмо