Здравствуйте, iLLL, Вы писали:
LLL>А как проверить наличие сети и среагировать на её появление,
LLL>так чтобы у пользователя ни при каких настройках системы не появлялось
LLL>окно подключения, и вообще ничего не появлялось?
LLL>Ещё вопрос — как узнать Dial-Up или выделенка стоит?
Наличие именно инета можно проверить через InternetGetConnectedState. Там же вроде и хар-ки некоторые.
... << RSDN@Home 1.0 beta 6 >>
Здравствуйте, iLLL, Вы писали:
LLL>А как проверить наличие сети
bool IsConnected()
{
RASCONN RasCon;
RASCONNSTATUS status;
DWORD lg;
DWORD lpcon;
bool lReturn;
RasCon.dwSize = 412;
lg = 256 * RasCon.dwSize;
lReturn = false;
if (RasEnumConnections(&RasCon, &lg, &lpcon) == 0)
{
status.dwSize = 160;
RasGetConnectStatus(RasCon.hrasconn, &status);
lReturn = (status.rasconnstate == 0x2000);
}
return lReturn;
}
Здравствуйте, iLLL, Вы писали:
LLL>А как проверить наличие сети и среагировать на её появление,
LLL>Ещё вопрос — как узнать Dial-Up или выделенка стоит?
Трояна пишете, батенька ?
Я делаю чз InternetGetConnectedState(Ex). Только описание значений можно найти только в PSDK
#define INTERNET_CONNECTION_MODEM 0x01
#define INTERNET_CONNECTION_LAN 0x02
#define INTERNET_CONNECTION_PROXY 0x04
#define INTERNET_CONNECTION_MODEM_BUSY 0x08 /* no longer used */
#define INTERNET_RAS_INSTALLED 0x10 // вот это момед
#define INTERNET_CONNECTION_OFFLINE 0x20 // это оффлайн или искусственный оффлайн
#define INTERNET_CONNECTION_CONFIGURED 0x40 // это просто коннект
Флаги я получаю таким образом:
BOOL check_connect(DWORD* pdwStat)
{
BOOL bRet;
HMODULE hm = LoadLibrary("wininet.dll");
// фунцыи может и не быть, если эксплорер не тот, что надо
if(hm == NULL)
return FALSE;
pfnInternetGetConnectedState InternetGetConnectedState;
__try
{
InternetGetConnectedState = (pfnInternetGetConnectedState)GetProcAddress(hm,"InternetGetConnectedState");
if(InternetGetConnectedState == NULL)
__leave;
bRet = InternetGetConnectedState(pdwStat,0);
}
__finally
{
FreeLibrary(hm);
}
return bRet;
}