| |
|
|
 maroro | Yo habe una Programa geschieben el verschlüsselte Festplatten managt. El Verschlüsselung incluso hecho Truecrypt. en verschlüsselten Festplatten braucht uno el Volume Name z.B. \\?\Volume\{2eca078d-5cbc-43d3-aff8-7e8511f60d0e}\ el uno con el Programa Mountvol [...] auslesen kann. Momentan nutze Yo el auch en el Yo Mountvol una Expediente erzeugen lasse el Yo entonces con XProfan auslese. como el jedesmal una Festplattenaktivität producido Yo una niedriges Aktualisierungsinterval gewählt. Yo möchte aber öfter aktualisieren por qué Yo después de uno Möglichkeit búsqueda esta Volume Name con Xprofan auszulesen. Alle Recherchen waren bislang aber erfolglos. Sombrero alguien una Concepto cómo como ran kommt? |
|
|
| |
|
|
|
 H.Brill | Google es dein Freund Volume + GUID eingegeben y dritte Treffer war el richtige. Microsofts MSDN :
algo como ? :
|
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 11.05.2014 ▲ |
|
|
|
|
 maroro | Sí Fast y vielen Dank. Selbst si yo la página incluso gefunden hätte wäre Yo no en el Lage gewesen lo qué en XProfan a remendar. Yo komme a C++ no ran. Zum otro kann Yo con el Programa sólo el ya eingehangenen Volumename Mostrar dejar. Yo brauche aber auch el wo Mountvol "*** no Bereitstellungspunte ***" sagt. Yo habe con media bescheidenen Kenntnissen intenta el Ver código fuente weiterzuentwickeln hänge aber a uno Fehlermeldung (Lesefehler Kernel32)
Fehler incluso gefunden Findnextvolume voluntad siempre el gleiche handle. Zu früh gefreut Windows7 funktioniert WinXP no...
Declarar Mem buffer
Declarar String s
Declarar vh&'handle
Dim buffer, 50
Def @GetVolumeNameForVolumeMountPoint(3) !"KERNEL32","GetVolumeNameForVolumeMountPointA"
Def @FindFirstVolume(2) !"KERNEL32","FindFirstVolumeA"
Def @FindNextVolume(3) !"KERNEL32","FindNextVolumeA"
whileloop 5
imprimir chr$(&bucle+66)+":\"
s = chr$(&bucle+66)+":\"'"C:\"
@GetVolumeNameForVolumeMountPoint(Addr(s), buffer, SizeOf(buffer))
Imprimir String$(buffer, 0)
clear buffer
endwhile
vh& = @FindFirstVolume( buffer, SizeOf(buffer))
Imprimir String$(buffer, 0)
clear buffer
whileloop 5
@FindNextVolume( vh&, buffer, SizeOf(buffer))
Imprimir String$(buffer, 0)
clear buffer
endwhile
Waitkey
Disponer buffer
End
|
|
|
| |
|
|
|
 H.Brill | En el C++ Deklarationen es sí bastante ligeramente.
Numerische Parámetro ir todos. En Cuerdas mußt du sólo por Def - Deklaration el Adresse (Addr(s)) transferencia oder du nimmst eben auch una Zona oder Pointer. Wenn du una Parámetro übergebist, el de el API-Función beschrieben se (_Out_), nimmst du al besten una Zona.
Es el sicherste Weg. Man podría zwar auch una String nehmen, el con Espacio(N) vorbelegt se, el es pero no siempre así sicher como una Zona, como el String Nullterminiert es y manche API-Características el no mögen.
Ist entonces auch schwierig, el Fehlerquelle ausfindig a hacer, wenns no funktioniert.
Also merke : si una buffer y una más Parámetro con dessen Longitud verlangt se, al besten una Zona nehmen.
PS: Wenn lo en versch. Windows Versionen no funktioniert, kann lo durchaus ser, daß MS el Función wegoptimiert ha o Parámetro geändert. Das es aber meist en el Doku el MSDN esta. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 11.05.2014 ▲ |
|
|
|
|
 maroro | also el Fehler en XP entsteht dadurch el FindFirstVolume -1 como Handle zurückgibt womit FindNextVolume nichts anfangen kann. Beide Características son auch para XP angegeben. Yo habe veces el FindFirstVolumeW (Unicode) anstatt FindFirstVolumeA (ANSI) verwendet auch para Findnext. Jetzt se ejecuta lo auch bajo XP por sólo enthält el Buffer sólo una "\" gibt's ne Solución el el "W" el ausspuckt oder es doch by by XP angesagt. |
|
|
| |
|
|
|
 H.Brill | Tomar veces beim Auslesen des Buffers StringW$(). Es normalerweise para Unicode (UTF-8) determinado.
Also
Como könntest du incluso con $WinVer prüfen, si XP es y luego entsprechend el A oder W - Versión aufrufen.
Vorausgesetzt, el Unicode - Variante sería no con WIN7 trabajo. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 11.05.2014 ▲ |
|
|
|
|
 maroro | Fertig. Funktioniert así bajo Win7 y XP. Vielen Dank a H.Brill.
'getestet bajo Ventana7 32Bit y XP 32bit
Declarar Mem buffer
Declarar String s
Declarar vh& ,er&'handle ,Rückgabewert
Dim buffer, 60
Def @GetVolumeNameForVolumeMountPoint(3) !"KERNEL32","GetVolumeNameForVolumeMountPointA"
Def @FindFirstVolume(2) !"KERNEL32","FindFirstVolumeW"
Def @FindNextVolume(3) !"KERNEL32","FindNextVolumeA"
Def @FindVolumeClose(1) !"KERNEL32","FindVolumeClose"
'Volume GUID el en un Mountpoint eingehangen son
whileloop 8
imprimir chr$(&bucle+66)+":\"
s = chr$(&bucle+66)+":\"'"C:\"
@GetVolumeNameForVolumeMountPoint(Addr(s), buffer, SizeOf(buffer))
Imprimir String$(buffer, 0)
clear buffer
endwhile
Imprimir "-----------------------------------------------------------"
'Alle Volume GUID
vh& = @FindFirstVolume( buffer, SizeOf(buffer))
Imprimir "V: "+str$(vh&)'Volumehandle
If vh& > 0
'Imprimir String$(buffer, 0)
Imprimir StringW$(buffer, 0)
clear buffer
er& = 1
mientras que er& = 1
er& = @FindNextVolume( vh&, buffer, SizeOf(buffer))
Imprimir "E: "+str$(er&)'Volume gefunden
Imprimir String$(buffer, 0)
'Imprimir StringW$(buffer, 0)
clear buffer
endwhile
er& = @FindVolumeClose(vh&)
Imprimir "C: "+str$(er&)'geschlossen
endif
Waitkey
Disponer buffer
End
|
|
|
| |
|
|
|
 H.Brill | Freut mich, Yo como correcto vermutete y lo se ejecuta. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 11.05.2014 ▲ |
|
|
|