007
29.05.2004, 16:39 Uhr
Spacelord
Hoffnungsloser Fall
|
Schau dir mal dieses kleine WinApi Beispiel an:
C++: |
#include <iostream> #include <windows.h> #include <ras.h>
void WaitForCon(); bool getConStatus();
int main() { if(! getConStatus()) WaitForCon();
return 0; }
void WaitForCon() { HANDLE connection = CreateEvent(NULL,TRUE,FALSE,"CON"); std::cout<<"Warte auf Verbindung"<<std::endl; RasConnectionNotification(NULL,connection,RASCN_Connection); WaitForSingleObject(connection,INFINITE); std::cout<<"Verbindung hergestellt!!"<<std::endl; }
bool getConStatus() { RASCONN Buffer[10]; RASCONNSTATUS VerbindungsStatus; DWORD BufferSize = 10 * sizeof(RASCONN); DWORD VerbindungsAnzahl=0;
Buffer[0].dwSize = sizeof(RASCONN);
// Verbindungen enumerieren if (RasEnumConnections(Buffer,&BufferSize,&VerbindungsAnzahl)) { if(VerbindungsAnzahl==0) { std::cout<<GetLastError()<<std::endl; } } else { if (VerbindungsAnzahl !=0) { std::cout<<"Verbunden ueber: "<< Buffer[0].szEntryName<<std::endl; //Verbindungsstatus ermitteln VerbindungsStatus.dwSize = sizeof(RASCONNSTATUS); RasGetConnectStatus(Buffer[0].hrasconn,&VerbindungsStatus);
if(VerbindungsStatus.rasconnstate == RASCS_Connected) { //IP auslesen RASPPPIP rasIp; rasIp.dwSize = sizeof(RASPPPIP); DWORD size = sizeof(RASPPPIP);
RASPROJECTION Info = RASP_PppIp;
if (RasGetProjectionInfo(Buffer[0].hrasconn,Info, (void*)&rasIp,&size))
{ std::cout<<"IP konnte nicht ausgelesen werden!"<<std::endl; } else std::cout<<"Aktuelle IP:"<<rasIp.szIpAddress<<std::endl; } } else { //es besteht keine Verbindung std::cout<<"Nicht verbunden!"<<std::endl;
return false; } } return true; }
|
Nicht unbedingt MFC aber funktioniert! Interessant ist für dich natürlich die Funktion WaitForCon() und das bisschen kann man ja locker kapseln.getConStatus hat damit nichts zu tun und ist nur da damit das "Programm" halbwegs Sinn macht.
PS:Um die Funktionen aus ras.h nutzen zu können musst du die rasapi32.lib mitlinken und unter XP brauchst du den Header aus dem aktuellen Plattform SDK!!
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes. |