ich hab auch schnell mal nen Veranschauligungsbeispiel gebastelt:
Delphi-Quellcode:
var LDLLHandle: Cardinal;
NotifyAddrChange: function(AHandle: PCardinal; AOverlapped: POverlapped): DWORD; stdcall;
LRes: DWORD;
begin
LDLLHandle := LoadLibrary('iphlpapi.dll');
if (LDLLHandle > 0) then
begin
NotifyAddrChange := GetProcAddress(LDLLHandle, 'NotifyAddrChange');
if Assigned(NotifyAddrChange) then
begin
LRes := NotifyAddrChange(nil, nil);
if LRes = NOERROR then
showmessage('ipchanged')
else
ShowMessage('error');
end;
FreeLibrary(LDLLHandle);
end;
Das ganze müsste noch im Thread ausgeführt werden weil durch den Aufruf mit den "nil"-Parametern die Funktion erst zurück kehrt wenn es eine Änderung gibt.
Desweiteren hab ich die Funktion dynamich eingebunden da Sie wohl bei der XP-Home-Version nicht verfügbar ist.