CD eingelegt ?
Was ist mit Leer-CD gemeint? Ein unbeschriebener CD-Rohling jedenfalls wird bei mir unter WinNT 4 SP6 und unter WinXP SP2 nicht als "LEER-CD-ROM eingelegt" angezeigt, sondern als "Keine CD-ROM eingelegt".
GetVolumeInformation_() gibt sowohl bei eingelegtem Rohling als auch bei leerem CD-Laufwerk den Wert 0 zurück, GetLastError_() liefert als Erklärung den Fehlercode 21, was mit FormatMessage_() aufbereitet die Fehlermeldung "Das Gerät ist nicht bereit" ergibt.
GetVolumeInformation_() gibt sowohl bei eingelegtem Rohling als auch bei leerem CD-Laufwerk den Wert 0 zurück, GetLastError_() liefert als Erklärung den Fehlercode 21, was mit FormatMessage_() aufbereitet die Fehlermeldung "Das Gerät ist nicht bereit" ergibt.
Zuletzt geändert von Shardik am 12.09.2006 14:37, insgesamt 1-mal geändert.
>>>DarkDragon: Hab mir mal erlaubt den Code etwas zu verschönern
>>>und erweitern:
Warum erlaubst du dir das? Ist Andreas unfähig schönen Code zu schreiben?
Schönheit ist subjektiv. Vielleicht gefällt es Andreas gar nicht, wie du seinen
Code "versaust" ?
Und wieso erweitern ? Eine Procedure Namens "CheckCDIn" wird wohl kaum
dazu benutzt werden, eine Festplatte auf ein CD-ROM Laufwerk zu überprüfen.
Ist nicht böse gemeint. Wollte es nur gesagt haben.
>>>und erweitern:
Warum erlaubst du dir das? Ist Andreas unfähig schönen Code zu schreiben?
Schönheit ist subjektiv. Vielleicht gefällt es Andreas gar nicht, wie du seinen
Code "versaust" ?
Und wieso erweitern ? Eine Procedure Namens "CheckCDIn" wird wohl kaum
dazu benutzt werden, eine Festplatte auf ein CD-ROM Laufwerk zu überprüfen.
Ist nicht böse gemeint. Wollte es nur gesagt haben.
Zitat:
"Ich kann mich vor die Meute stellen und für Nichts kämpfen. Ich kann aber auch einen Schritt zur Seite gehen, die Meute vorbeiziehen lassen und dabei meine Zeit angenehm bei Freunden verbringen.". Da hat er Recht, mein Pap's.
"Ich kann mich vor die Meute stellen und für Nichts kämpfen. Ich kann aber auch einen Schritt zur Seite gehen, die Meute vorbeiziehen lassen und dabei meine Zeit angenehm bei Freunden verbringen.". Da hat er Recht, mein Pap's.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@Proton
Contra.
natürlich gebührt Andreas Ehre dafür, die API-Funktion GetVolumeInformation_(
in dieser Form zu benutzen, und die erste wirklich brauchbare Lösung in diesem thread zu präsentieren.
allerdings ist der mehrfache aufruf von Trim(), der doppelte check von "CDBLANK",
das auslassen des Rückgabewertes "-1" für die auch bei Andreas vorhandene If-Sicherung,
und das unvollständige Einrücken etwas, was man verbessern kann.
und DD hat keine sprüche gemacht und hat sogar die Rem "; Autor: Andreas " ergänzt,
also wo ist das problem?
Contra.
natürlich gebührt Andreas Ehre dafür, die API-Funktion GetVolumeInformation_(
in dieser Form zu benutzen, und die erste wirklich brauchbare Lösung in diesem thread zu präsentieren.
allerdings ist der mehrfache aufruf von Trim(), der doppelte check von "CDBLANK",
das auslassen des Rückgabewertes "-1" für die auch bei Andreas vorhandene If-Sicherung,
und das unvollständige Einrücken etwas, was man verbessern kann.
und DD hat keine sprüche gemacht und hat sogar die Rem "; Autor: Andreas " ergänzt,
also wo ist das problem?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
@Falko: (@all)
Was ist das für ein Wert den FILESIZE("*.*") bei eingelegter CD zurückgibt ?
@Karoe Gaman:
Re
Was ist das für ein Wert den FILESIZE("*.*") bei eingelegter CD zurückgibt ?
@Karoe Gaman:
Re
Zitat:
"Ich kann mich vor die Meute stellen und für Nichts kämpfen. Ich kann aber auch einen Schritt zur Seite gehen, die Meute vorbeiziehen lassen und dabei meine Zeit angenehm bei Freunden verbringen.". Da hat er Recht, mein Pap's.
"Ich kann mich vor die Meute stellen und für Nichts kämpfen. Ich kann aber auch einen Schritt zur Seite gehen, die Meute vorbeiziehen lassen und dabei meine Zeit angenehm bei Freunden verbringen.". Da hat er Recht, mein Pap's.
War ja zu erwarten, dass es auf NT-Systemen anders läuft.Shardik hat geschrieben:Was ist mit Leer-CD gemeint? Ein unbeschriebener CD-Rohling jedenfalls wird bei mir unter WinNT 4 SP6 und unter WinXP SP2 nicht als "LEER-CD-ROM eingelegt" angezeigt, sondern als "Keine CD-ROM eingelegt".
Hier noch ein Code ( für NT-Systeme ) der testet ob eine CD in Laufwerk liegt, egal ob beschrieben oder nicht.
Code: Alles auswählen
#IOCTL_STORAGE_CHECK_VERIFY = $2D4800
Procedure VerifyMedia(LW.s)
;Check for Media
Protected hLwStatus.l
hLwStatus = CreateFile_("\\."+LW,#GENERIC_READ|#GENERIC_WRITE, 0, 0, #OPEN_EXISTING, 0, 0)
If hLwStatus
Retval.l = DeviceIoControl_(hLwStatus, #IOCTL_STORAGE_CHECK_VERIFY,0,0,0,0,@RetBuffer,0)
CloseHandle_(hLwStatus)
EndIf
ProcedureReturn Retval
EndProcedure
Select = VerifyMedia("P:");Pfad anpassen
Case 1
Debug "CD im Laufwerk"
Case 0
Debug "Keine CD im Laufwerk"
EndSelect
Gruss Andreas
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
ein Auszug aus der PB-Hilfe zeigt hier den Rückgabewert:Proton hat geschrieben:@Falko: (@all)
Was ist das für ein Wert den FILESIZE("*.*") bei eingelegter CD zurückgibt ?
@Karoe Gaman:
Re
Funktioniert ähnlich wie bei AndreasPB-Hilfe hat geschrieben:FileSize()
Syntax
Ergebnis = FileSize(DateiName$)
Beschreibung
Gibt die Größe der angegebenen Datei zurück.
Besondere 'Ergebnis' Werte:
-1: Datei wurde nicht gefunden.
-2: Datei ist ein Verzeichnis.
Unterstützte OS
Alle

Grüße ...Falko

Da wäre ich jetzt im Leben nie drauf gekommen, dass mir FILESIZE() die
Grösse einer Datei zurückgibt. Danke !
Die Betonung meiner Frage lag aber weniger auf FILESIZE(), sondern auf "*.*"
Bei unterschiedlichen CD/DVD's bekomme ich unterschiedliche Werte.
Gleiche Datenträger haben gleiche Werte. Kann aber auf die schnelle keine
Ableitung zu diesen Werten herstellen.
Also: Was bedeutet dieser Wert? Weiss das jemand ?
Zitat:
"Ich kann mich vor die Meute stellen und für Nichts kämpfen. Ich kann aber auch einen Schritt zur Seite gehen, die Meute vorbeiziehen lassen und dabei meine Zeit angenehm bei Freunden verbringen.". Da hat er Recht, mein Pap's.
"Ich kann mich vor die Meute stellen und für Nichts kämpfen. Ich kann aber auch einen Schritt zur Seite gehen, die Meute vorbeiziehen lassen und dabei meine Zeit angenehm bei Freunden verbringen.". Da hat er Recht, mein Pap's.
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Achso, das meintest du. Kommt schon von DOS-Zeiten, wobei das "*.*"
einfach als Platzhalter für den unbekannten Dateinamen.Extender ist,
wie zum Beispiel Command.com oder andere Dateien. Wird nur bei der Suche von Dateien benötigt.
Gibst du einen Dateinamen anstelle *.* an, wird natürlich direkt nach dieser Datei gesucht.
Ich hoffe es ist so ausreichend erklärt.
Grüße ...Falko
einfach als Platzhalter für den unbekannten Dateinamen.Extender ist,
wie zum Beispiel Command.com oder andere Dateien. Wird nur bei der Suche von Dateien benötigt.
Gibst du einen Dateinamen anstelle *.* an, wird natürlich direkt nach dieser Datei gesucht.
Ich hoffe es ist so ausreichend erklärt.
Grüße ...Falko
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Das war die Frage und die Antwort ist nicht auf FileSize() bezogen, sondern auf den Rückgabewert "-1" und "-2" und dieses wurde ebenfalls beantwortet.Proton hat geschrieben:@Falko: (@all)
Was ist das für ein Wert den FILESIZE("*.*") bei eingelegter CD zurückgibt ?
@Karoe Gaman:
Re
Die Frage ist wohl wirklich nicht zu verstehen, bzw. Gedanken kann ich nicht
lesen.

[Edit] Das einzigste ist, wenn man eine unbeschriebene CD ins Leselaufwerk einlegt, kommt nichts zurück, da das Laufwerk einen
Fehler mit Blinken sichtbar macht.
Dafür kommt aber bei einem CD-Brenner als auch DVD-Brenner korrekt
der Wert -1 zurück.
Kannst ja testen "Debug FileSize("y:\*.*")" ; y für CD-ROM bzw. Brenner