Forum: PC-Programmierung SD-Karte auslesen


von Richi (Gast)


Lesenswert?

Hallo

ich möchte gerne eine SD-Karte über VisualBasic.net auslesen, aber nicht 
die Files sondern die einzelnen Bytes von der Karte direkt.

Giebt es eine einfache Lösung?

Gruß
Richi

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ja; unter Windows kann die Karte auch als sogenanntes "Raw Device" 
angesteuert werden. Das verhält sich dann wie eine Datei, die genau so 
groß ist wie die SD-Karte; bei einer 512MB-Karte also 512MB.

Wie man Raw-Devices anspricht, ist in der MSDN-Dokumentation zur 
Win32-API-Funktion CreateFile beschrieben:
http://msdn.microsoft.com/en-us/library/aa363858%28VS.85%29.aspx
... genauers im Abschnitt Physical Disks and Volumes

von Richi (Gast)


Lesenswert?

Danke für deinen Tipp,

werde aber aus der Website nicht schlau. Wie realisiert man so etwas in 
VB?

Könntest du mir einen verständlichen Code posten?

Gruß
Richi

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wie man aus VB heraus Win32-API-Funktionen nutzt, ist auf zig Webseiten 
beschrieben. Darüber etwas zu finden, sollte nicht schwierig sein.

Mit der Internetsuchmaschine der Wahl dauert es nur ein paar Sekunden, 
um nach "VB CreateFile" zu suchen und das hier zu finden:

http://www.vbarchiv.net/api/details.php?id=createfile

Ab jetzt solltest Du selber laufen lernen.

von Richi (Gast)


Lesenswert?

Mitlerweile habe ich herausgefunden, dass es unter VB.net mit
System.IO.File.Create
geht.

Doch wenn ich als Pfad mein Laufwerk ("..\.\E:") angebe, kommt eine 
Fehlermeldung(Unbekanntes Format).

Wie muss ich das eingeben?

von Di P. (drpepper) Benutzerseite


Lesenswert?

Hast das Klopapier doch schon bekommen... Wischen musst du allein ;)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Richi schrieb:
> Doch wenn ich als Pfad mein Laufwerk ("..\.\E:") angebe, kommt eine
> Fehlermeldung(Unbekanntes Format).

Wo im von mir verlinkten MSDN-Text steht diese Schreibweise?

Da steht "\\.\E:" bzw. "\\.\PhysicalDrive1"

von Richi (Gast)


Lesenswert?

OK tschuldigung dass ich mich verlesen habe, aber jetzt kommt ne meldung 
dass Win32 Geräte nicht geöffnet werden können.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tatsächlich?

von Richi (Gast)


Lesenswert?

Ja

ich benutze unter VB.net

System.IO.File.Create("\\.\E")

und dann kommt folgende Meldung:

FileStream öffnet keine Win32-Geräte, z.B. Datenträgerpartitionen oder 
Bandlaufwerke. "\\.\" darf im Pfad nicht verwendet werden.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tja, dann wirst Du herausfinden müssen, wie man die Win32-API-Funktion 
CreateFile aufruft, statt des Dir von Deiner Programmiersprache zur 
Verfügung gestellten Quarks.

von Richi (Gast)


Lesenswert?

das heisst..

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das scheint zu bedeuten, daß Dich das Problem oder die Lösung nicht 
interessiert.

Wenn es Dich interessieren würde, hättest Du schon längst die Dir zur 
Verfügung stehenden Hilfsmittel bemüht, um herauszufinden, wie man die 
von mir angesprochenen Dinge macht.

Ich habe Dir ausreichend Hinweise gegeben, nun krieg den Hintern hoch 
und hilf Dir selbst.

von Oliver R. (superberti)


Lesenswert?

Hi!

Alternativ kannst Du aber auch "dd" für Windows benutzen. Das dürfte Dir 
viel Arbeit abnehmen, da Du damit sektorweise raw-devices auslesen 
kannst und Dir die Daten in eine Datei schreiben lassen kannst (und 
umgekehrt). Dankenswerterweise lässt sich das Programm auf "removeable 
devices" beschränken, da man sich sonst auch ruck-zuck die Festplatte 
mal zerlegt hat. Achja, Vista und W7 möchten dafür Admin-Rechte!
Wie man Komandozeilenprogramme aus VB.NET startet und deren Output 
bekommt, verrät Dir sicherlich das MSDN.

Gruß,

von Richi (Gast)


Lesenswert?

Danke Oliver

werde mir morgen mal deine Lösung anschauen.
Hoffe dass es entlich mal geht.

Gruß
Richi

von Richi (Gast)


Lesenswert?

Funktioniert super.

Danke

Gruß
Richi

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.