Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Diskettenlaufwerk auf Diskette überprüfen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
goooofy



Anmeldungsdatum: 12.09.2005
Beiträge: 69

BeitragVerfasst am: 25.05.2006, 10:03    Titel: Diskettenlaufwerk auf Diskette überprüfen Antworten mit Zitat

Hallo,

kennt jemand eine Möglichkeit, wie ich überprüfen kann, ob eine Diskette eingelegt ist, OHNE dass das Fenster "Kein Datenträger" erscheint, bei dem ich dann erst auf 'Abbruch' klicken muss, damit mein Programm weiterläuft?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 25.05.2006, 10:29    Titel: Antworten mit Zitat

Hi goooofy,
Du brauchst nicht die Forensuche zu bemühen, ich kann mich noch gut an folgenden Beitrag erinnern:
http://forum.qbasic.at/viewtopic.php?t=2496
(Es hat länger gedauert goooofy zu schreiben, als den Beitrag zu finden..)
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
goooofy



Anmeldungsdatum: 12.09.2005
Beiträge: 69

BeitragVerfasst am: 25.05.2006, 16:04    Titel: Antworten mit Zitat

Schade is dat echt so schwer? Bei QB gings doch auch problemlos: Einfach Laufwerk ansprechen und Fehlercode auswerten...

Naja, wem noch was einfällt...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 25.05.2006, 19:08    Titel: Antworten mit Zitat

Wenn du VBSkript benutzen kannst, nimm dies:
Code:
Set Fso=WScript.CreateObject("Scripting.FileSystemObject")
s=" nicht"
For Each Dr In Fso.Drives
  If Dr.DriveLetter="A" And Dr.IsReady Then
    s=""
    Exit For
  End If
Next
s="Laufwerk A ist" &s &" bereit.."
MsgBox s, vbOKOnly, "Ein VBSkript von ytwinky, MD"

_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 25.05.2006, 19:19    Titel: Antworten mit Zitat

Ich kratz das nur mal so an: Du rufst mit
Code:
errorlevel=exec("PROGRAMM","PARAMETER")

Das QB-Programm auf, wertest die Rückgabe aus, und fertig. Einziges Problem: In QB kann man keine Errorlevel zurückgeben weinen ...
AUßER man verwendet den Interrupt 21h: Zuerst QuickBASIC mit der Option /l starten, und dann, am ende folgendes einfügen (muss noch getestet werden):
Code:

'ANFANG
'$include: 'qb.bi'
dim reg(2) as RegType
'ENDE
reg(1).ax=4C01
call interrupt(21,reg(1),reg(2)

Das gibt den Errorlevel 1 zurück. Anpassen kann man ihn so:
Code:

reg(1).ax=4CERR

ERR wird durch eine 2stellige HEX-Zahl ersetzt. I don't now. Fehler kann man gerne posten.[/code]
_________________
Zitat:
1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 25.05.2006, 19:24    Titel: Antworten mit Zitat

raph ael hat Folgendes geschrieben:
Einziges Problem: In QB kann man keine Errorlevel zurückgeben weinen ...
Es gibt aber noch eins:
Wie rufst du den Int 21h in FreeBASIC auf?
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 25.05.2006, 19:44    Titel: Antworten mit Zitat

Naja... Ich würde
Code:
asm int h21

schreiben... Aber in FB wird ja dieser lästige Dialog angezeigt...
Neue Möglichkeit:
Das QB-Programm (das, welches das Diskettenlaufwerk überprüft) schreibt je nach Zustand etwas in eine Datei. Das FB-Programm öffnet diese, und wertet den Inhalt aus...

Sehr nützliches EDIT:
Am Anfang des Programmes folgendes schreiben:
Code:
DECLARE SUB ExitWithErrorLevel ALIAS "_exit" (BYVAL errorlevel AS INTEGER)

SOLLTE klappen.
_________________
Zitat:
1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 25.05.2006, 20:57    Titel: Antworten mit Zitat

Zitat:
Das QB-Programm auf, wertest die Rückgabe aus, und fertig. Einziges Problem: In QB kann man keine Errorlevel zurückgeben weinen ...
AUßER man verwendet den Interrupt 21h: Zuerst QuickBASIC mit der Option /l starten, und dann, am ende folgendes einfügen (muss noch getestet werden):

Kann man das nicht auch über eine Batchdatei machen?
Wobei, dann wirt es zum Abenteuer:
Freebasic ruft QBasic Programm auf, welches Batchdatei aufruft durchgeknallt.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 25.05.2006, 21:55    Titel: Antworten mit Zitat

raph ael hat Folgendes geschrieben:
Einziges Problem: In QB kann man keine Errorlevel zurückgeben weinen ...


hab den thread nicht durchgelsen, weiß nicht obs schon ne lösung gibt....

man kann in qb ERRORLEVELS erzeugen! ich poste morgen mal den code, wenn ich ih ngefunden habe!

/edit: mist! das was raphael da gepostet hat sieht ganz nach dem code aus,den ich suchen wollt^^
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz