AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte ImageMaker
Thema durchsuchen
Ansicht
Themen-Optionen

ImageMaker

Ein Thema von FAlter · begonnen am 4. Mär 2007 · letzter Beitrag vom 25. Mär 2007
Antwort Antwort
Benutzerbild von FAlter
FAlter
Registriert seit: 21. Jul 2004
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
Angehängte Dateien
Dateityp: zip winimagemaker_source_165.zip (900,3 KB, 45x aufgerufen)
Dateityp: zip winimagemaker_113.zip (561,6 KB, 44x aufgerufen)
 
Blackheart

 
Delphi 7 Enterprise
 
#2
  Alt 4. Mär 2007, 21:03
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.
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

 
Delphi 10.2 Tokyo Starter
 
#3
  Alt 7. Mär 2007, 14:20
Hi,

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
Felix Alter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#4
  Alt 7. Mär 2007, 14:52
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 .....
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

 
Delphi 10.2 Tokyo Starter
 
#5
  Alt 7. Mär 2007, 15:07
Hi,

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 ) 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).
Felix Alter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#6
  Alt 7. Mär 2007, 16:03
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

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


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

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)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#7
  Alt 10. Mär 2007, 18:55
Also, ich muß dir Danken, denn ich hab mich doch nicht getäucht und selber wirklich mit 'nem falschen (zu kleinem) Wert gerechnet.


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...
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

 
Delphi 2007 Professional
 
#8
  Alt 25. Mär 2007, 13:06
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 )


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.
Miniaturansicht angehängter Grafiken
schrift_664.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

 
Delphi 10.2 Tokyo Starter
 
#9
  Alt 25. Mär 2007, 13:51
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.
Miniaturansicht angehängter Grafiken
dvd_in_progress_159.jpg  
Felix Alter
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz