Laufwerke Problem gelöst :)



  • könnt mir mal wer nen beispielcode posten da mir GetVolumeInformation immer nenfehler zurck wirft :doesn`t take 6 parameters





  • funz trotzdem noch nich 😞
    jetzt schreibts mir nen speicheradressen fehler PLZ schreib ma wie das funz würde



  • 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 Wert

    Das ganze mach ich in Konsolenanwendung! (Borland CBUilder)



  • Danke


Anmelden zum Antworten