| |
|
|
maroro | j'ai un Programme geschieben cela cryptée Festplatten managt. qui Verschlüsselung selbst erledigt Truecrypt. chez verschlüsselten Festplatten braucht on den Volume nom z.B. \\?\Volume\{2eca078d-5cbc-43d3-aff8-7e8511f60d0e}\ den on avec dem Programme Mountvol [...] auslesen peux. Momentan nutze je cela aussi dans dem je Mountvol une Dossier erzeugen lasse qui je ensuite avec XProfan auslese. là cela chaque fois une Festplattenaktivität erzeugt habe je un niedriges Aktualisierungsinterval gewählt. je voudrais mais öfter aktualisieren weshalb je pour einer Possibilité cherche cet Volume nom avec Xprofan auszulesen. Alle Recherchen étions jusqu'alors mais erfolglos. Hat quelqu'un une concept comment on là ran venez? |
|
|
| |
|
|
|
H.Brill | Google ist dein ami Volume + GUID eingegeben et qui dritte Treffer était qui richtige. Microsofts MSDN :
quelque chose comme ? :
|
|
|
| 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 | oui presque et vielen Dank. Selbst si je qui page selbst trouvé hätte wäre je pas dans qui situation gewesen daraus quoi dans XProfan trop bricoler. j'arrive C++ pas ran. Zum anderen peux je mir avec dem Programme seulement qui bereits eingehangenen Volumename Montrer laisser. il me faut mais aussi qui wohin Mountvol "*** aucun Bereitstellungspunte ***" sagt. j'ai avec meinen bescheidenen Kenntnissen versucht den Voir le texte source weiterzuentwickeln hänge mais à einer Fehlermeldung (Lesefehler Kernel32)
faute selbst trouvé Findnextvolume veux toujours cela gleiche handle. trop tôt gefreut Windows7 funktioniert WinXP pas...
Déclarer Mem buffer
Déclarer String s
Déclarer vh&'handle
Faible buffer, 50
Def @GetVolumeNameForVolumeMountPoint(3) !"KERNEL32","GetVolumeNameForVolumeMountPointA"
Def @FindFirstVolume(2) !"KERNEL32","FindFirstVolumeA"
Def @FindNextVolume(3) !"KERNEL32","FindNextVolumeA"
whileloop 5
imprimer chr$(&loop+66)+":\"
s = chr$(&loop+66)+":\"'"C: \"
@GetVolumeNameForVolumeMountPoint(Addr(s), buffer, SizeOf(buffer))
Imprimer String$(buffer, 0)
clear buffer
endwhile
vh& = @FindFirstVolume( buffer, SizeOf(buffer))
Imprimer String$(buffer, 0)
clear buffer
whileloop 5
@FindNextVolume( vh&, buffer, SizeOf(buffer))
Imprimer String$(buffer, 0)
clear buffer
endwhile
Waitkey
Dispose buffer
Fin
|
|
|
| |
|
|
|
H.Brill | chez den C++ Deklarationen ist es oui entier léger.
Numerische paramètre aller alle. chez Cordes dois du arrêt per Def - Deklaration qui Adresse (Addr(s)) transfert ou bien tu prends plan aussi une Bereich ou bien Pointer. si du une paramètre übergebist, qui de qui API-Funktion beschrieben wird (_Out_), prends du am besten une Bereich.
c'est qui sicherste Weg. on pourrait zwar aussi une String prendre, qui avec Space(N) vorbelegt wird, c'est mais pas toujours so sûrement comment un Bereich, là qui String Nullterminiert ist et manche API-Funktionen cela pas lieben.
Ist ensuite aussi schwierig, qui Fehlerquelle ausfindig trop faire, wenns pas funktioniert.
alors merke : si un buffer et un plus paramètre avec dessen Longueur verlangt wird, am besten une Bereich prendre.
PS: si es chez versch. Windows Versionen pas funktioniert, peux es durchaus son, qui MS qui Funktion wegoptimiert hat ou bien qui paramètre geändert. cela steht mais meist dans qui Doku qui MSDN dabei. |
|
|
| 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 | alors qui faute chez XP entsteht dadurch cela FindFirstVolume -1 comme Handle zurückgibt womit FindNextVolume rien anfangen peux. Beide Funktionen sommes aussi pour XP angegeben. j'ai fois le FindFirstVolumeW (Unicode) anstatt FindFirstVolumeA (ANSI) verwendet aussi pour Findnext. maintenant fonctionne es aussi sous XP par seulement contient qui Buffer seulement un "\" gibt's ne Solution cela qui "W" cela ausspuckt ou bien mais est by by XP annoncé. |
|
|
| |
|
|
|
H.Brill | prends la fois beim Lecture des Buffers StringW$(). c'est normalement pour Unicode (UTF-8) bestimmt.
alors
là könntest du sogar avec $WinVer vérifier, si es XP ist et ensuite entsprechend qui A ou bien W - Version appel.
Vorausgesetzt, qui Unicode - variante serait pas avec WIN7 marcher. |
|
|
| 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 so sous Win7 et XP. Vielen Dank à H.Brill.
'getestet sous Fenêtre7 32Bit et XP 32bit
Déclarer Mem buffer
Déclarer String s
Déclarer vh& ,er&'handle ,Rückgabewert
Faible buffer, 60
Def @GetVolumeNameForVolumeMountPoint(3) !"KERNEL32","GetVolumeNameForVolumeMountPointA"
Def @FindFirstVolume(2) !"KERNEL32","FindFirstVolumeW"
Def @FindNextVolume(3) !"KERNEL32","FindNextVolumeA"
Def @FindVolumeClose(1) !"KERNEL32","FindVolumeClose"
'Volume GUID qui dans einem Mountpoint eingehangen sommes
whileloop 8
imprimer chr$(&loop+66)+":\"
s = chr$(&loop+66)+":\"'"C: \"
@GetVolumeNameForVolumeMountPoint(Addr(s), buffer, SizeOf(buffer))
Imprimer String$(buffer, 0)
clear buffer
endwhile
Imprimer "-----------------------------------------------------------"
'Alle Volume GUID
vh& = @FindFirstVolume( buffer, SizeOf(buffer))
Imprimer "V: "+str$(vh&)'Volumehandle
Si vh& > 0
'Imprimer String$(buffer, 0)
Imprimer StringW$(buffer, 0)
clear buffer
er& = 1
tandis que er& = 1
er& = @FindNextVolume( vh&, buffer, SizeOf(buffer))
Imprimer "E: "+str$(er&)'Volume trouvé
Imprimer String$(buffer, 0)
'Imprimer StringW$(buffer, 0)
clear buffer
endwhile
er& = @FindVolumeClose(vh&)
Imprimer "C: "+str$(er&)'geschlossen
endif
Waitkey
Dispose buffer
Fin
|
|
|
| |
|
|
|
H.Brill | Freut mich, qui je là richtig vermutete et es fonctionne. |
|
|
| 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 ▲ |
|
|
|