Thema: Delphi VolumeMountPoints

Einzelnen Beitrag anzeigen

davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#15

AW: VolumeMountPoints

  Alt 28. Apr 2014, 16:15
Hi,

Ich verzweifel noch. Kann mir jemand eindeutig erklären wie ich MSDN-Library durchsuchenSetVolumeMountPoint aufrufe?
Bei MSDN steht zwar ein Beispiel aber sonst stehts im Internet immer anders. Klappen tut beides nicht.

Delphi-Quellcode:
SetVolumeMountPoint('W:\','\C:\Test\') // oder
SetVolumeMountPoint('\C:\Test\','W:\')
GetLastError:

Zitat:
Falscher Parameter.
Delphi-Quellcode:
SetVolumeMountPoint('W:\','\C:\Test') // oder
SetVolumeMountPoint('\C:\Test','W:\')
GetLastError:

Zitat:
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch

Delphi-Quellcode:
GetVolumeNameForVolumeMountPoint(PChar('C:\\'),@Buffer[0],SizeOf(Buffer));
SetVolumeMountPoint('\C:\Test\',Buffer)
Delphi-Quellcode:
GetVolumeNameForVolumeMountPoint(PChar('C:\\'),@Buffer[0],SizeOf(Buffer));
SetVolumeMountPoint(Buffer,'\C:\Test\')
GetLastError:

Zitat:
Das Verzeichnis ist nicht leer.
Und wie das leer ist! -.-

In Buffer steht immer sowas (oder so ähnlich halt):

\\?\Volume{dafc6733-ff88-11d9-b411-806d6172696f}\ Was is da jetzt noch falsch dran ?-.-

Gruß
Neutral General

hi Neutral General ,
hast du nu rausgefunden wie du die GUID herrausbekommst???

bei mir kommt immer ne fehlermeldung der ntdll.dll.

Delphi-Quellcode:
  Function GetVolumeNameForVolumeMountPoint(
             lpszVolumeMountPoint: PAnsiChar;
             lpszVolumeName: PAnsiChar;
             cchBufferLength: DWORD): Boolean;
             stdcall;
             external 'C:\Windows\SysWOW64\kernel32.dllname 'GetVolumeNameForVolumeMountPointA';
Delphi-Quellcode:
procedure TForm1.Button21Click(Sender: TObject);
var
  vmp : PAnsiChar;
  vn : PAnsiChar;
  i : cardinal;

begin
  vmp := ('D:\\');
  //GetVolumeNameForVolumeMountPoint(vmp, vn, i);

  GetVolumeNameForVolumeMountPoint(vmp,vn, i);

// GetVolumeNameForVolumeMountPoint(PChar('C:\\'),@Buffer[0],SizeOf(Buffer));

 ListBox2.Items.Add( string( vn));
end;
  Mit Zitat antworten Zitat