hallo @ all
bin gerade dabei mir ein zusatztool für "TrueCrypt" zu basteln, zum mounten der komplett verschlüßelten Festplatten
wenn mann mehrere Festplatten mit der selben größe ist es schwer heraus zu finden welche platte welche ist und wo sie eingebunden werden soll.
ich hab mir eine funtion geschrieben die schon mal herusfindet mit welcher Festplatte ich überhaupt rede
das beispiel:
private void Form1_Load(object sender, EventArgs e)
{
ManagementObjectSearcher mang = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity");
foreach (ManagementObject obj in mang.Get())
{
if (Convert.ToString(obj["Name"]) == "SAMSUNG HD300LJ ATA Device")
{
MessageBox.Show("Samsung 300GB Platte gefunden");
}
}
}
soweit ist erst mal alles gut !
jetzt muß ich aber herausfinden wo genau die platte im system eingebunden ist ! aber nach folgendem muster: \Device\Harddisk0\Partition1 !!! Die ein und die selbe platte wird mal als Harddisk0 und nach eine neustart des rechnes als Harddisk1 oder Harddisk5 eingebunden oder wie auch immer ( fast jedes mal wo anders )
was gibt es für möglichkeiten heraszufinden wo die platten im system eingebunden werden ?
dies brauch ich für die funktion zum schnellen mounten der Festplatten mit dem richtigen laufwerksbuchstaben
das Beispiel
string platte_01 = "";
string truecrypt_pfad = @"C:\TrueCrypt\TrueCrypt.exe";
private void Contex_menu_01_Click(object sender, EventArgs e)
{
Process.Start(truecrypt_pfad, @"/v " + platte_01 + @" /ld /q");
}
ich hoffe ihr könnt mir in iregendeiner weise helfen
mfg yooti
Hallo yooti,
Ich selber benutze TrueCrypt mit der eingebauten Funktion "Mount Favorite Volumes". Vielleicht ist diese Funktion genau das was du suchst.
nicht ganz das richtige was ich suche !
ich hab eine Form die nur 2x2 pixel groß ist (incl.Button) und die liegt ganz oben links mit topmost=true als panikbutton für dismount
desweiternen bietet mir der buttom ein contexmenu um nur die platte einzubinden die ich wirklich brauche und nicht alle die ich habe.
ich hab mal mein projekt gezipt !
der quellcode von truecrypt ist ja offen da sollte es doch eine möglichkeit geben herauszufinden welche platte unter \Device\Harddisk0\Partition1 eingebunden ist
hier der link zum quellcode: http://www.truecrypt.org/downloads2
ich hab da schon mal reingeschaut ! aber nur gucke ich da wie ein schwein ins uhrwerk und hab kein plan
ps. ich hab letztes jahr erst angefangen zu proggen und bis jetzt habe ich mir alles allein beigebracht
mfg yooti
kann das sein das mir hier diese seite weiterhilft ?
An in-depth look at WMI and Instrumentation: Part II
mfg yooti
nach 3 wochen suchen und testen googeln und verzweifeln hab ich fast das gefunden was ich suche
hier ist ein auszug meiner recherche
ManagementObjectSearcher hdd = new ManagementObjectSearcher("root\\CIMv2", "SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject disk in hdd.Get())
{
try
{
Console.WriteLine("Caption HDD: " + disk.GetPropertyValue("Caption").ToString());
Console.WriteLine("Model: " + disk.GetPropertyValue("Model").ToString());
Console.WriteLine("Name: " + disk.GetPropertyValue("Name").ToString());
Console.WriteLine("Partitions: " + disk.GetPropertyValue("Partitions").ToString());
Console.WriteLine("Größe: " + disk.GetPropertyValue("Size").ToString());
Console.WriteLine("SerialNumber: " + disk.GetPropertyValue("SerialNumber").ToString());
Console.WriteLine("PNPDeviceID: " + disk.GetPropertyValue("PNPDeviceID").ToString());
Console.WriteLine("-----------------------------------------------------");
}
catch
{
}
}
Console.WriteLine("//ende hdd---------------------------------------------------------------//");
ManagementObjectSearcher hdd2 = new ManagementObjectSearcher("root\\CIMv2", "SELECT * FROM Win32_DiskPartition");
foreach (ManagementObject disk in hdd2.Get())
{
try
{
Console.WriteLine("Caption HDD: " + disk.GetPropertyValue("Caption").ToString());
Console.WriteLine("Größe: " + disk.GetPropertyValue("Size").ToString());
Console.WriteLine("DeviceID: " + disk.GetPropertyValue("DeviceID").ToString());
Console.WriteLine("-----------------------------------------------------");
}
catch
{
}
}
Console.WriteLine("//ende hdd2---------------------------------------------------------------//");
ich wollte zwar das ergebnis "\Device\Harddisk3\Partition1" aber damit kann ich auch was anfangen "Disk #3, Partition #0"
hilfreich war auch was bei codeprojekt
http://www.codeproject.com
das Thema kann tehoretisch geschlossen werden außer es doch noch jemand eine idee wie ich direkt an "\Device\Harddisk3\Partition1" ran komme !
mfg yooti