Muy buenas, tengo una funcion que funciona perfectamente en windows XP, pero da la casualidad que en Windws 7 se queda pillado en la linea:
Replicas:=IcmpSendEcho(IcmpHandle, inet_addr(DestinationAddress), RequestData, RequestSize,0, ReplyBuffer, ReplySize, Timeout)
y de ahí no pasa,
¿sabeis por que pasa esto?
Un Saludo. Mil Gracias.
Aqui está la función completa:
function Ping(DestinationAddress)
local IcmpHandle,Replicas,bPing:=.f.
local RequestData:="Testando ping",;
RequestSize:=15,;
RequestOptions:="",;
ReplyBuffer:=space(278),;
ReplySize:=278,;
Timeout:=2000 && Milisegundos de espera,bPing:=.f.
default DestinationAddress := "www.google.com"
if WSAStartup() != 0
return bPing
endif
DestinationAddress:=GetHostByName(DestinationAddress)
IcmpHandle:=IcmpCreateFile()
Replicas:=IcmpSendEcho(IcmpHandle, inet_addr(DestinationAddress), RequestData, RequestSize,0, ReplyBuffer, ReplySize, Timeout)
IcmpCloseHandle(IcmpHandle)
WsaCleanUp() // Very Important
if Replicas > 0
bPing:=.t.
else
bPing:=.f.
end if
return bPing