title image


Smiley RAS-Verbindungen trennen...
Hier mal schnell alles was man braucht, um alles DFÜ-Verbindungen im System zu trennen...(Die Funktionen sollten dynamisch geladen werden, esgibt Rechner auf denen kein DFÜ installiert ist ;)const MAX_CONNECTIONS = 128; RAS_MaxDeviceType = 16; RAS_MaxPhoneNumber = 128;// WINVER >= 0x400 RAS_MaxEntryName = 256; // WINVER RAS_MaxEntryName = 20; RAS_MaxDeviceName = 128; // WINVER RAS_MaxDeviceName = 32; RASCS_DONE = $2000;type HRASCONN = THandle; LPRASCONN = ^RASCONN; RASCONN = record dwSize : DWord; hrasconn : HRASCONN; szEntryName : array[0..RAS_MaxEntryName]of Char;// WINVER >= 0x400 szDeviceType: array[0..RAS_MaxDeviceType]of Char; szDeviceName: array[0..RAS_MaxDeviceName]of Char;// WINVER >= 0x401 szPhonebook : array[0..MAX_PATH-1]of Char; dwSubEntry : DWord;// WINVER >= 0x500// guidEntry : GUID; end; RASCONNSTATE = DWord; // Dummy - das ist normalerweise eine Aufzählung ! RASCONNSTATUS = record dwSize : DWord; rasconnstate : RASCONNSTATE; dwError : DWord; szDeviceType : array[0..RAS_MaxDeviceType]of Char; szDeviceName : array[0..RAS_MaxDeviceName]of Char;// WINVER >= 0x401 szPhoneNumber: array[0..RAS_MaxPhoneNumber]of Char; end;function RasEnumConnections(var lprasconn : RASCONN; var lpcb : DWord; var lpcConnections: DWord): DWord; stdcall; external 'rasapi32.dll' name 'RasEnumConnectionsA';function RasGetConnectStatus(hrasconn : HRASCONN; var lprasconnstatus: RASCONNSTATUS): DWord; stdcall; external 'rasapi32.dll' name 'RasGetConnectStatusA';function RasHangUp(hrasconn: HRASCONN): DWord; stdcall; external 'rasapi32.dll' name 'RasHangUpA';procedure HangUpConnections;var rcConnection : array[0..MAX_CONNECTIONS]of RASCONN; dwBufferSize : DWord; dwTotalConnections: DWord; nLoop : Integer; rcsStatus : RASCONNSTATUS;begin ZeroMemory(@rcConnection, SizeOf(rcConnection)); rcConnection[0].dwSize := SizeOf(RASCONN); dwBufferSize := SizeOf(rcConnection); dwTotalConnections := 0; if (RasEnumConnections(rcConnection[0], dwBufferSize, dwTotalConnections) = 0) then begin if (dwTotalConnections 0) then begin for nLoop := 0 to (dwTotalConnections - 1) do begin rcsStatus.dwSize := SizeOf(rcsStatus); if (RasGetConnectStatus(rcConnection[nLoop].hrasconn, rcsStatus) = 0) then begin if (rcsStatus.rasconnstate = RASCS_DONE) then begin if (RasHangUp(rcConnection[nLoop].hrasconn) 0) then begin Break; end; end; end; end; end; end;end;Gruß NicoschPS: Wer nicht weiß, er die Funktionen dynamisch bindet,der sollte so-oder-so die Finger davon lassen ;)

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: