Avatar billede nubi19 Nybegynder
08. december 2003 - 18:29 Der er 5 kommentarer og
1 løsning

Hvordan: se om modem forb. oprettet ?

Jeg bruger BCB 4.0 og programmerer under Windows NT. Mit problem er at jeg gerne vil have en nem måde at holde øje med om min opkaldsforbindelse er åben eller ej (så jeg kan måle hvor længe), er der nogle fine API kald der kan hjælpe mig ?
Avatar billede jpk Nybegynder
11. december 2003 - 08:20 #1
Det ser ud til du skal bruge funktionen RasEnumConnections til at finde ud af hvilke connections der er og så RasGetConnectStatus med et handle fra foregående kald, for at se om der er oprettet en connection.
Med RasConnectionNotification kan du modtage et event hvis der oprettes eller nedlægges en connection...
Avatar billede jpk Nybegynder
11. december 2003 - 08:30 #2
Her er et eksempel der ganske vist anvender en lille smule MFC, men det er nok til at abstrahere fra...

void CConnTestDlg::OnButton1()
{
    if(bThreadRunning == FALSE)
    {
        AfxBeginThread(ConnNotification, 0, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
        bThreadRunning = TRUE;
    }
}


UINT ConnNotification(LPVOID pParam)
{
    SECURITY_ATTRIBUTES SecAtt;
    SecAtt.nLength = sizeof(SECURITY_ATTRIBUTES);
    SecAtt.lpSecurityDescriptor = NULL;
    SecAtt.bInheritHandle = FALSE;
    HANDLE hActive = CreateEvent(&SecAtt, TRUE, FALSE, "Connect");
    HANDLE hInst = LoadLibrary("rasapi32.dll");

    RasNotify = (DWORD (WINAPI *)(HRASCONN, HANDLE, DWORD)) GetProcAddress ((HMODULE) hInst, "RasConnectionNotificationA");
    DWORD ret = ::RasNotify((HRASCONN)INVALID_HANDLE_VALUE, hActive, RASCN_Connection);
    if(ret == 0)
    {
        WaitForSingleObject(hActive, INFINITE);
        AfxMessageBox("We are CONNECTED!!!!!!!!!");
    }
    else
        AfxMessageBox("PROBLEM SETTING OBJECT SIGNALED");

    return 0;
}
Avatar billede nubi19 Nybegynder
11. december 2003 - 08:32 #3
Kanon, så har jeg kun et spørgsmål:
Hvordan finder jeg den rette connection ? (Der er måske kun en ?)
Avatar billede jpk Nybegynder
11. december 2003 - 08:36 #4
Du kan evt. bruge InternetGetConnectedState til at se hvilken type connection det er lan/modem...
Avatar billede jpk Nybegynder
11. december 2003 - 08:40 #5
Den RASCONNSTATUS struktur du får fra RasGetConnectStatus har en member ved navn szDeviceType. den indeholder typen på det device der er brugt til den connection, fx "modem".

Det kan du anvende hvis du ikke ved hvad opkaldsforbindelsen hedder, eller du bare vil monitorere alle modem (eller anden type) connections.
Avatar billede nubi19 Nybegynder
11. december 2003 - 09:27 #6
Kanon, og mange tak =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester