Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   ImageMaker (https://www.delphipraxis.net/87697-imagemaker.html)

FAlter 4. Mär 2007 20:38


ImageMaker
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,

Ich habe heute abend mal schnell was probiert und dann (noch schneller und total unsauber) ein richtiges Programm drausgemacht. Aus Spaß an der Freude hab ich einfach mal Lazarus genommen.

ImageMaker liest Disketten / CDs / DVDs ein und schreibt diese in Dateien.

Aktuelle Version: 0.0.1

Läuft nicht unter Windows 95, 98, ME

Auch, wenn's nirgends dabeisteht (weil ich jetzt keine Lust mehr dazu habe; mach ich vielleicht später), wenn ihr es weiternutzen wollt: Die Lizenz ist die GNU GENERAL PUPLIC LICENSE Version 2.

Fixes:
0.0.1 Versuch, die Schrift zu verbessern. Bitte testet und schreibt, ob gelungen (bei mir war's ja vorher schon OK).

Known Bugs:
- Bei manchen (alle außer die, mit der ich es zuerst getestet habe?) DVDs verweigert Windows den Zugriff auf \\.\Laufertk: ("Datei bereits verwendet"). Werde mich auf die Suche nach anderen Wegen des direkten Laufwerkszugriffs machen.
- Prognostizierte Größe des Datenträgers stimmt noch nicht. Lösung steht unten, ist jedoch noch nicht implementiert. Danach wären einfache Fehlerkorrekturen (z. B. Kratzer durch $00 ersetzen) denkbar und es könnte die verbleibende Zeit (!) prognostiziert werden.

Mfg & Gute Nacht
FAlter

Blackheart 4. Mär 2007 21:03

Re: ImageMaker
 
Mal kurz getestet.
- Wenn keine Datenträger eingelegt sind findet es kein Laufwerk.
- Sind DVD eingelegt funktioniert nichts.
- Von zwei Laufwerken mit eingelegter CD funktioniert es bloss bei Einem.
- Was im Memo angezeigt wird kann man wegen der zu kleinen und etwas komisch aussehenden Schrift nichts lesen.
Naja mehr kann Ich nicht dazu sagen.

FAlter 7. Mär 2007 14:20

Re: ImageMaker
 
Hi,

Zitat:

Zitat von Blackheart
Mal kurz getestet.
- Wenn keine Datenträger eingelegt sind findet es kein Laufwerk.

Das ist gewollt. Einfach einlegen und nochmal auf die ComboBox klicken, jedesmal erneut gesucht! Oder einfach die CheckBox daneben verwenden um alle (auch "nicht existierende" sowie Festplatten, welche nicht unterstützt sind) anzuzeigen. Normalerweise wi8rd nur angezeit, wovon auch ein Image gemacht werden kann.

Zitat:

- Sind DVD eingelegt funktioniert nichts.
Bei mir funktionierte es! Das hab ich selbst getestet. Eventuell beschreibst du das Problem mal näher - was funktioniert nicht / welche Meldungen?

Zitat:

- Von zwei Laufwerken mit eingelegter CD funktioniert es bloss bei Einem.
Selbiges wie bei DVD.

[quote]- Was im Memo angezeigt wird kann man wegen der zu kleinen und etwas komisch aussehenden Schrift nichts lesen.[quote]

Bei mir schon. Aber vergrößern ist kein Problem...

Zitat:

Naja mehr kann Ich nicht dazu sagen.
Wenigstens etwas. Danke.

Mfg
FAlter

himitsu 7. Mär 2007 14:52

Re: ImageMaker
 
Zitat:

Input Drive: F:
Image File: C:\Eigene Dateien\123.iso
Drive Size: 984,56 MB (2016384 recs)
Processed Size: 0,00 MB (0 recs)
Last Rec: 512 Bytes read, 512 Bytes written
Unable to create the image! Cannot read the drive directly!
Win 98 ... nichts geht


Ach ja, wie geht dein programm mit Fehler um (z.B. defekte CDs)?
abbrechen ... übergehn .....

FAlter 7. Mär 2007 15:07

Re: ImageMaker
 
Hi,

Zitat:

Zitat von himitsu
Win 98 ... nichts geht

Das schrieb ich bereits im 1. Beitrag. Unter Win89 hast du keine "Datei" \\.\<Laufwerk>:, welche ich hier einlese. Genau deshalb geht es nicht.

Zitat:

Ach ja, wie geht dein programm mit Fehler um (z.B. defekte CDs)?
abbrechen ... übergehn .....
An der Stelle des Fehlers wird momentan abgebrochen.

Um eine bessere Lösung zu finden müsste ich irgendwie die tatsächliche Größe des Laufwerks herausfinden (inklusive Bootsektor / Filesystem), um nicht auch beim "normalen" Ende 'ne Frage stellen zu müssen. Ignorieren (Auffüllen mit Füllzeichen) würde sonst nicht funktionieren. Derzeit erhalte ich (in MB umgerechnet) z. B. bei //edit: 1474560 Byte, um genau zu sein-Disketten (sog. 1,44 MB :shock: ) statt 1,41 nur die Angabe 1,39, also entgehen mir 0,02 MB, weshalb ich stattdessen so lange kopiere, bis ein Fehler kommt. FileStream.Size liefert mit immer 0.

Ich werde mich damit beschäftigen (Fehlerfall). Ich habe ja tatsächlich ein paar Disketten herumzuliegen mit defekten Sektoren sowie zerkratzte CDs.

Mfg
FAlter

PS: Danke für die Meldung! Da sieht man 'nen Bug. Wenn 0 verarbeitet wird, können nicht 512 Bytes gelesen / geschrieben werden... Ist zwar nur Kosmetik, muss aber sein!

//edit: Tatsächliche Diskettengröße korrigiert. Oder eben 2880 "recs" (siehe dd).

himitsu 7. Mär 2007 16:03

Re: ImageMaker
 
OK, das mit Win98 hab ich wohl übersehn ... tja, hier hab ich Linux und was soll ich sagen ... dein Programm startet überhauptnicht und davon steht nichts da oben :stupid:

eine Diskette hat 1440 KB ... nach Abzug des Bootsektors, Rootverzeichnises und anderer belegter Sektoren bleiben noch etwa 1,38 MB (bei 1024er-Rechnung)

die 1,44 ... k.A. wer das verbrockt hat, aber wie man sieht ist da mit 1000 gerechnet, was eigentlich schwachsinn ist, da die 1440 KB mit 1024 berechnet sind :wall:


FileStreem.Size und auch GetFileSize liefern natürlich 0, da sie für Dateien ausgelegt sind und du ein Volume geöffnet hast.
Du solltest also mal im MSDN/PSDK dir die Funktionen zur Volume-Verwaltung ansehn ;)


[add]
aber wie ich hier grad nachdenke, da fällt mir ein, daß ich zur vermutlich auch eine falsche Funktion für die Volumegröße verwendet hab :shock:

http://www.delphipraxis.net/internal...t.php?t=104265

na ja, vielleicht melde ich mich in den nächsten Tagen diesbezüglich nochmal (hier/heute kann ich da jetzt eh nichts machen)

himitsu 10. Mär 2007 18:55

Re: ImageMaker
 
Also, ich muß dir Danken, denn ich hab mich doch nicht getäucht und selber wirklich mit 'nem falschen (zu kleinem) Wert gerechnet. :wall:


Verwenden kannst du nun
MSDN-Library durchsuchenIOCTL_DISK_GET_PARTITION_INFO > PartitionLength

oder wenn dir WMI besser gefällt auch
MSDN-Library durchsuchenWin32_DiskDrive > Size


Wenn du einer von den ganz Harten bist, dann könntest du auch die Daten direkt von der Festplatte/CD lesen.
Bei 'ner Festplatte: angefangen vom MBR bis zur entsprechenden Partition durchhangeln...
Und auf einer CD fängst du halt mit'm TOC an...

halinchen 25. Mär 2007 13:06

Re: ImageMaker
 
Liste der Anhänge anzeigen (Anzahl: 1)
Im Anhang ist mal ein Bild von der Schrift.

Und: Bei mir ging es bei einer DVD nicht.
Selbe Meldung:
Zitat:

Input Drive: D:
Image File: I:\Image\Test.iso
Drive Size: 2522,33 MB (5165728 recs)
Processed Size: 0,00 MB (0 recs)
Last Rec: 512 Bytes read, 512 Bytes written
Unable to create the image! Cannot read the drive directly!
CD ging es ein Image anzulegen. (Hat für 24MB recht lange gedauert, bzw. dauert noch :wink: )


Ich finde die Programmidee prima!

Ich hab XP Pro SP2 und ein Samsung DVD-Laufwerk (SD-616F). (<-- Ich weiß jetzt nicht ob dir das was nützt.)

//Edit: Auslesen des Images ging auch.

FAlter 25. Mär 2007 13:51

Re: ImageMaker
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

bitte Schrift ansehen! Besser?

Habe eben festgestellt, dasss bei mir auch nicht alle DVDs gehen - anscheinend nur die eine, die ich letztens getestet habe.

Ersten Post leden!

Mfg
FAlter

//Edit: Habe mal 'nen Screenshot angehangen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz