![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как можно программно сменить текущий 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?