Laufwerke Problem gelöst :)
-
Wie wäre es, wenn du den ersten Schritt nachst und uns mal zeigst, was du bisher hast?
-
Da in dem quelltext sehr viele fehler drin sind is es echt peinlich den hier reinzustellen imgroßenund ganze liegen meine probleme bei den initialisierungen
bitte sagt mir was ich falsch mach:void main(void) { char NameBuffer[50]; char SystemNameBuffer[50]; unsigned long * serealnumber; LPCTSTR lpRootPathName = "C:"; LPTSTR lpVolumeNameBuffer = NameBuffer; DWORD nVolumeNameSize = (TCHAR)"50"; LPDWORD lpVolumeSerialNumber = serealnumber; LPDWORD lpMaximumComponentLength = (TCHAR)"50"; LPDWORD lpFileSystemFlags = FILE_SUPPORTS_OBJECT_IDS; LPTSTR lpFileSystemNameBuffer = SystemNameBuffer; DWORD nFileSystemNameSize = (TCHAR)"50" BOOL GetVolumeInformation(lpRootPathName,lpVolumeNameBuffer,nVolumeNameSize, lpVolumeSerialNumber,lpMaximumComponentLength, lpFileSystemFlags,lpFileSystemNameBuffer, nFileSystemNameSize); printf(serealnumber \n); printf(lpVolumeNameBuffer \n); printf(lpVolumeSerialNumber \n); }
-
Probier mal sowas:
char RootPathName[256]="f:\\"; // address of name of root directory char VolumeNameBuffer[256]; // address of name of the volume DWORD VolumeSerialNumber; // address of volume serial number DWORD MaximumComponentLength; // address of system's maximum filename length DWORD FileSystemFlags; // address of file system flags char FileSystemNameBuffer[256]; // address of name of file system Boolean Res; UINT OldErrMode; OldErrMode=SetErrorMode(SEM_FAILCRITICALERRORS); /* LPCTSTR lpRootPathName, // address of root directory of the file system LPTSTR lpVolumeNameBuffer, // address of name of the volume DWORD nVolumeNameSize, // length of lpVolumeNameBuffer LPDWORD lpVolumeSerialNumber, // address of volume serial number LPDWORD lpMaximumComponentLength, // address of system's maximum filename length LPDWORD lpFileSystemFlags, // address of file system flags LPTSTR lpFileSystemNameBuffer, // address of name of file system DWORD nFileSystemNameSize // length of lpFileSystemNameBuffer */ Res=GetVolumeInformation(RootPathName,VolumeNameBuffer,255, &VolumeSerialNumber,&MaximumComponentLength, &FileSystemFlags,FileSystemNameBuffer,255 ); printf("SN: %lu\n",VolumeSerialNumber); printf("VN: %s\n",VolumeNameBuffer); printf("SN: %lu\n",FileSystemFlags);
[ Dieser Beitrag wurde am 10.07.2003 um 20:36 Uhr von DerAltenburger editiert. ]
[ Dieser Beitrag wurde am 10.07.2003 um 20:37 Uhr von DerAltenburger editiert. ]
-
welches #include brauch ich für [ Boolean Res;]??????
-
Sorry, Boolean is vom BCB.
Lass das Res einfach raus!
Oder nimm BOOL, das kennt Windows.
-
es funz aber bei VN spuckt es mir nie was aus und bei SN immer das selbe egal welches laufwerk ich nehme
-
Blöde Frage, aber du nimmst nicht zufällig unterschiedliche Partitionen auf einer Platte? Das würde es erklären
-
Bei VN kommt nix, wenn Deine Laufwerke nicht benannt sind !!!
Welches SN meinst Du:
Das Erste muesste was verschiedenes bringen,
Das Zweite (sollte SF sein!) sind die Flags, die koennten gleich sein!Pruef mal den Formatstring ... %lu ..., ich kenn das nicht so genau, benutze kaum noch printf!
-
nimms du cout oder ein popup window??? zeig ma wie du das machen würdest
-
Fuer das Beispiel nehm ich printf !!!
So wie gepostet!
printf("VolumeSerialNumber: %lu\n",VolumeSerialNumber);//bei jedem LW anders!!!
printf("VolumName : %s\n",VolumeNameBuffer);//Name des LW (oder leer)
printf("FileSystem : %s\n",FileSystemNameBuffer);//FAT, NTFS ...
printf("SystemFlags : %lu\n",FileSystemFlags);//immer derselbe WertDas ganze mach ich in Konsolenanwendung! (Borland CBUilder)
-
Danke