sleach
asked on
How do I detect whether of not an Internet connection exists?
My problem is that I need to test whether or not a connection to the internet exists in windows95. The obvious solution is to test your own IP address and compare it to 127.0.0.1 . If the comparison is true, your offline. Any other IP address means your online.
The problem is that with windows95, any call to winsock triggers the dialer. I DO NOT want to trigger the dialer if there is no connection to the internet.
So, I guess my question is:
How do I make a call to Winsock without triggering the dialer?
The problem is that with windows95, any call to winsock triggers the dialer. I DO NOT want to trigger the dialer if there is no connection to the internet.
So, I guess my question is:
How do I make a call to Winsock without triggering the dialer?
ASKER
Adjusted points to 204
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
sperling, I am unfamiliar with RAS. Can you point me to a code example?
Also, will RasEnumConnections show only dial up networking connections, or will it also show connections from other dialers(such as AOL's 32 bit dialer)?
I am currently using FindWindow to detect the Win95 Dialer, but this only works with the Win95 Dialer. I need a method thats Dialer independant.
Can RAS be used to disable the AutoDial feature?
Also, will RasEnumConnections show only dial up networking connections, or will it also show connections from other dialers(such as AOL's 32 bit dialer)?
I am currently using FindWindow to detect the Win95 Dialer, but this only works with the Win95 Dialer. I need a method thats Dialer independant.
Can RAS be used to disable the AutoDial feature?
>sperling, I am unfamiliar with RAS. Can you point me to a code
>example?
So am I ;)
I haven't got any modems installed, and I don't run 95... Therefore I can just suggest that you make a small test program displaying RasEnumConnections output in an ButtonClick event, and then tries to figure out how it works by noting what output you get while offline and online using different dialers.
Sorry I can't be of more help.
Regards,
Erik.
>example?
So am I ;)
I haven't got any modems installed, and I don't run 95... Therefore I can just suggest that you make a small test program displaying RasEnumConnections output in an ButtonClick event, and then tries to figure out how it works by noting what output you get while offline and online using different dialers.
Sorry I can't be of more help.
Regards,
Erik.
ASKER
It took me awhile, but I finally figured it out.
For the purpose of sharing the solution, Here is the function that works for me.
USES ras;
function RasConnected: boolean;
var
rasconnbuf: TRasConn;
cb, ret, numConn: integer;
connected: boolean;
begin
//Required to provide buffer size
rasconnbuf.dwSize := sizeof(rasconnbuf);
cb := sizeof(TRasConn);
//Retrieve info about first active connection (I only have one - change this if you have more)
ret := RasEnumConnections(@rascon nbuf, cb, numConn);
if ((numConn = 0) or (ret <> 0)) then connected := false
else Connected := true;
result := connected;
end;
For the purpose of sharing the solution, Here is the function that works for me.
USES ras;
function RasConnected: boolean;
var
rasconnbuf: TRasConn;
cb, ret, numConn: integer;
connected: boolean;
begin
//Required to provide buffer size
rasconnbuf.dwSize := sizeof(rasconnbuf);
cb := sizeof(TRasConn);
//Retrieve info about first active connection (I only have one - change this if you have more)
ret := RasEnumConnections(@rascon
if ((numConn = 0) or (ret <> 0)) then connected := false
else Connected := true;
result := connected;
end;
ASKER