C++ Builder Snippets  

Netzwerklaufwerke verbinden und trennen:
 
//---------------------------------------------------------------------------
// ConnectNetworkDrive() verbindet ein lokales Laufwerk mit dem Netzwerkpfad.
// Übergabeparameter:
// 1. AnsiString slNetPath -> Netzwerk-Pfad (z.B.: \\rechner_1\daten)
// 2. char clDrive         -> Netzwerk-Pfad (z.B.: 'F')
// 3. bool blPermanent     -> Flag "Verbindung bei der Anmeldung
//                            automatisch wiederherstellen"
//---------------------------------------------------------------------------
DWORD ConnectNetworkDrive(AnsiString slNetPath, char clDrive,
  bool blPermanent)
{
  char cPath[3] = { char(0), ':', char(0) };
  cPath[0] = toupper(clDrive);
  AnsiString slRemotePath = slNetPath;

  NETRESOURCE nr;
  ZeroMemory(&nr, sizeof(nr));

  nr.dwScope= RESOURCE_GLOBALNET;
  nr.dwType = RESOURCETYPE_DISK;
  nr.dwDisplayType=RESOURCEDISPLAYTYPE_GENERIC;
  nr.dwUsage=RESOURCEUSAGE_CONNECTABLE;
  nr.lpLocalName=cPath;
  nr.lpRemoteName=slRemotePath.c_str();
  nr.lpComment=NULL;
  nr.lpProvider=NULL;
  int ilResult = WNetAddConnection2(&nr, (LPSTR) NULL, (LPSTR) NULL,
                          blPermanent ? CONNECT_UPDATE_PROFILE : 0);
  return ilResult;
}

//---------------------------------------------------------------------------
// DisconnectNetworkDrive() trennt die Verbindung des Laufwerks mit
// dem Netzwerkpfad. Übergabeparameter:
// 1. char clDrive         -> Netzwerk-Pfad (z.B.: 'F')
// 2. bool blPermanent     -> Flag "Verbindung dauerhaft trennen"
//---------------------------------------------------------------------------
DWORD DisconnectNetworkDrive(char clDrive, bool blPermanent)
{
  char cPath[3] = { char(0), ':', char(0) };
  cPath[0] = toupper(clDrive);
  return WNetCancelConnection2(cPath, blPermanent ?
    CONNECT_UPDATE_PROFILE : 0,TRUE);
}

Screenshot des Beispielprogramms



  Download BCB5
Projekt-Quellcode
Download
Demo-Exe

© '99-2001 by S. Kreutzmann