Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.107 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: versteckte freigaben finden

  Alt 6. Feb 2006, 22:04
Moin MacBones,

deklariere doch einmal die Variable Server als WideString und übergebe dass dann so @Server[1].
Das geht natürlich nur, wenn die Variable nicht leer ist. Den Sonderfall müsstest Du dann getrennt betrachten, oder mit PWideChar arbeiten.
Im letzteren Falle könntest Du das so machen:

Delphi-Quellcode:
var
  pwcServer : PWideChar;
  sServer : string; // Soll hier nur als Beispiel für einen "normalen" string stehen
  dwLen : DWORD;

begin
  sServer := 'MacBones';
  dwLen := (length(sServer)+1) shl 2; // +1 für das abschliessende #00#00, mal 2 für 2 Byte je Zeichen
  GetMem(pwcServer,dwLen); // Platz reservieren
  try
    StringToWideChar(sServer,pwcServer,dwLen);
    if NetShareEnum(pwcServer,.....) <> NERR_SUCCESS then exit;
    try
    finally
      NetApiBufferFree(....);
    end;
  finally
    FreeMem(pwcServer,dwLen); // Platz wieder freigeben
  end;
Das dürfte auch die flexiblere Variante sein, da Du auch einen Leerstring erfolgreich als eigenen Rechner einsetzen kannst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat