| 

.NET C# Java Javascript Exception

4
Lässt sich das mit Windows 8 eingeführte Mounten von Laufwerken durch Laden von ISO- und VHD–Dateien unter .NET auch in eigenen Anwendungen integrieren und wenn ja, wie? Gemeint ist hier die Win8-Variante und nicht alternative Lösungen für Windows 7, die man beispielsweise unter http://stackoverflow.com/questions/6602439/vb-net-mount-iso und http://www.dreamincode.net/forums/topic/261339-mount-isos-programmatically/ findet.
News:
25.01.2013
W.Meisner 158 5
Was ist mit "in eigenen Anwendungen integrieren" gemeint? Generell aber schon mal ein ja, denn dazu hab ich letztens etwas gebaut.
me 25.01.2013
Integrieren heisst: funktionale Anbindung in einem .NET-Programm, ohne auf Fremdanwendungen zuzugreifen (also über eine Systemschnittstelle).
W.Meisner 22.02.2013
2 Antworten
1
Auf der Powershell kann ich in Win8 mit

Mount-Diskimage "YourISOFileGoesHere"

ein ISO mounten. Welche API dahintersteckt, weiß ich leider nicht. Mann müsste ein solches PS Skript aber aus einer .NET Applikation aufrufen können (hab ich noch nie probiert, aber sehe auch spontan keinen Grund, warums nicht funktionieren sollte). Etwa so (untested):

System.Diagnostics.Process.Start("powershell Mount-DiskImage SomeImage.iso");
25.01.2013
ffordermaier 8,4k 3 9
bereits das Starten der Powershell ist sehr zeitaufwendig und öffnet - zumindest temporär - ein gesondertes Fenster... das möchte ich eigentlich umgehen
W.Meisner 22.02.2013
1
Bei "PowerShell" und "System" muss man meist WMI denken, und das ist auch, was das Cmdlet in Wirklichkeit macht: http://msdn.microsoft.com/en-us/library/windows/desktop/Hh830496%28v=vs.85%29.aspx. Die alte Welt ist eben noch nicht tot. Als .NET-Programmer wirst du wissen, wie du an COM-Objekte rankommst, ich weiß nur, dass es grundsätzlich geht.
mupan 22.02.2013
1
Das das Ganze ohne Fenster startet, wird man hinkriegen. Die Performance wird sich dadurch aber nicht verändern...Wenn Dich nur das Fenster stört, schau Dir mal ProcessStartInfo Klasse an. Da kann man das mit dem Fenster steuern.
ffordermaier 22.02.2013
Eine Lösung per WMI wäre ideal. Dazu habe ich aber kein Beispiel im Internet gefunden :-(.
W.Meisner 22.02.2013
1
Vielleicht solltest Du einen Blick auf die Windows-8-eigene COM-API werfen, die sich der virtuellen Laufwerksverwaltung widmet (siehe hier). Damit hast Du vollen Zugriff auf alle VHD- und/oder ISO-Abbilder. Die Funktion OpenVirtualDisk öffnet ein virtuelles Laufwerk (mounten). Die API-Funktionen sind Bestandteil der DLL mit dem Namen VirtDisk.dll. Einen Windows 7 Wrapper für C# gibt es bereits, der die generelle Umsetzung der Anbindung unter C# zeigt. Dabei ist allerdings zu beachten ist, das Windows 7 zwar VHD- aber erst Windows 8- auch ISO-Dateien unterstützt. Für die VHD-Anbindung werden Administratorrechte benötigt. ISO-Dateien sollen hingegen ohne Administratorrechte anzubinden sein.
22.02.2013
Claus M. 2,9k 9
Das klingt brauchbar, aber auch ein wenig kompliziert.
W.Meisner 22.02.2013

Stelle deine .net-Frage jetzt!