Es befindet sich kein Datenträger in Laufwerk ...

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Es befindet sich kein Datenträger in Laufwerk ...

Beitrag von _JON_ »

Hallo Leute,

ich muss mehrere Laufwerk nach einer Datei abfragen.
Bei lehren DVD und Kartenlesern meckert Windows aber:

"Es befindet sich kein Datenträger in Laufwerk ..."

Kann ich diese Meldung irgendwie verhindern?
Benutze übrigens Filesize() zu ermitteln ob die Datei existiert.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Es befindet sich kein Datenträger in Laufwerk ...

Beitrag von ts-soft »

Code: Alles auswählen

InitAudioCD()
UseAudioCD(0)
Debug AudioCDStatus()
-1 = Kein Datenträger!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: Es befindet sich kein Datenträger in Laufwerk ...

Beitrag von _JON_ »

Hmm, das wäre wohl für Audio CD's gut, aber für Kartenleser und co. ?

Habe schon etwas gefunden, das sehr gut funktionert:

Code: Alles auswählen

Import "kernel32.lib"
  GetErrorMode_() As "GetErrorMode"
EndImport

lasterrormode.l = GetErrorMode_()
SetErrorMode_(#SEM_FAILCRITICALERRORS)

Debug FileSize("K:\myfile.txt")

SetErrorMode_(lasterrormode)
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Es befindet sich kein Datenträger in Laufwerk ...

Beitrag von bobobo »

f: ist der Laufwerksbuchstabe eines meiner 24 CD-Laufwerke

Code: Alles auswählen

If ExamineDirectory(0,"f:\","*.*")
  Debug "ahaaa f: ist da, bzw. f: enthält mindest eine Datei"  
Else
  Debug "hmm f: mag mich nicht"
EndIf
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: Es befindet sich kein Datenträger in Laufwerk ...

Beitrag von _JON_ »

Hi bobobo,

bei deinen Code meckert Windows trotzdem aber mit SetErrorMode läuft alles sauber ohne Unterbrechung :D
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Es befindet sich kein Datenträger in Laufwerk ...

Beitrag von bobobo »

Dein Windows vielleicht, meins meckert nicht (XP 32bütt)
Ist eventuell ne WindowsEinstellung oder Versionsabhängig
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
dige
Beiträge: 1239
Registriert: 08.09.2004 08:53

Re: Es befindet sich kein Datenträger in Laufwerk ...

Beitrag von dige »

So gehts auch:

Code: Alles auswählen

  lasterrormode.l = SetErrorMode_(#SEM_FAILCRITICALERRORS)
  Debug FileSize("K:\myfile.txt")
  SetErrorMode_(lasterrormode)
Allerdings bekomme ich bei Verzeichnissen, die zu einem Kartenleser gelinkt sind trotzdem Fehlermeldungen... (Win7 x86/x64)

_JON_ hat geschrieben:Hmm, das wäre wohl für Audio CD's gut, aber für Kartenleser und co. ?

Habe schon etwas gefunden, das sehr gut funktionert:

Code: Alles auswählen

Import "kernel32.lib"
  GetErrorMode_() As "GetErrorMode"
EndImport

lasterrormode.l = GetErrorMode_()
SetErrorMode_(#SEM_FAILCRITICALERRORS)

Debug FileSize("K:\myfile.txt")

SetErrorMode_(lasterrormode)
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: Es befindet sich kein Datenträger in Laufwerk ...

Beitrag von _JON_ »

Danke dige.

Habe ich doch übersehen das SetErrorMode den alten Wert zurück gibt.

Allerdings doch recht interessant wie unterschiedlich Windows reagiert.
Werde es mal mit anderen Rechnern probieren.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Antworten