Batch Laufwerk abfragen
Hallo, ich würde gerne wissen, ob es eine Möglichkeit gibt den Status eines CD/DVD Lauwerkes mit einer Batch abzufragen! Also ich möchte mit einer Batch ein bestimmtes Programm starten sobald eine CD/DVD eingelegt wird!Es geht mir nur darum mit der Batch das Ereignis (CD wird eingelegt) abzufragen und je nach ausgabe zu handeln. ist sowas möglich???Wenn nicht, kann ich das mit AutoIt oder Delphi realisieren?Hab da auch schon ein paar erfahrungen, alledings brauch ich auch da hilfe...
Vielen dank schonmal für euro Antworten
MFG
Rasti
Vielen dank schonmal für euro Antworten
MFG
Rasti
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 119260
Url: https://administrator.de/forum/batch-laufwerk-abfragen-119260.html
Ausgedruckt am: 23.12.2024 um 04:12 Uhr
12 Kommentare
Neuester Kommentar
Hallo Rasti,
hier ein einfacher Code in VBS:
Damit kannst du abfragen,ob das CD-Laufwerk
1) vorhanden ist und
2) ob ein Datenträger eingelegt ist
Für "H" gibst du bitte deinen aktuellen Laufwerksbuchstaben für dein CD-Laufwerkerk ein und im Anschluß noch in der "If"-Bedingung an, was geschehen soll.
Hoffe, ich konnte helfen
Gruß
Tsuki
hier ein einfacher Code in VBS:
Damit kannst du abfragen,ob das CD-Laufwerk
1) vorhanden ist und
2) ob ein Datenträger eingelegt ist
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive in colDrives
If objDrive.IsReady = True and objDrive.DriveLetter = "H" Then
Wscript.Echo "Drive letter: " & objDrive.DriveLetter
Wscript.Echo "Free space: " & objDrive.FreeSpace
End If
Next
Für "H" gibst du bitte deinen aktuellen Laufwerksbuchstaben für dein CD-Laufwerkerk ein und im Anschluß noch in der "If"-Bedingung an, was geschehen soll.
Hoffe, ich konnte helfen
Gruß
Tsuki
Hallo Rasti,
wer lesen kann ist klar im Vorteil
Ich hatte nicht genau deine Frage gelesen, sondern mich nur darauf konzentriert, ob es möglich ist, den Status des CD-Laufwerks zum aktuellen Zeitpunkt des Startens von meinem Script zu erfassen.
"Asche über mein Haupt"! Sorry!
Mit meinem Script ist es nicht möglich, den permanenten Status abzufragen und ggf. Reaktionen auszuführen.
Dann müßte man das ganze in einer "For Next"-Schleife laufen lassen und die aktuellen Daten zwischenspeichern.
Das werden dann ein paar Zeilen mehr.
Ich persönlich würde mir sowas dann in VB6 schreiben.
Aber dann braucht man wieder den Developer dafür und der ist auch nicht frei verfügbar.
Mal schauen, ob unsere anderen Kollegen nicht einen Batch oder Script-Tipp haben.
Gruß
Tsuki
wer lesen kann ist klar im Vorteil
Ich hatte nicht genau deine Frage gelesen, sondern mich nur darauf konzentriert, ob es möglich ist, den Status des CD-Laufwerks zum aktuellen Zeitpunkt des Startens von meinem Script zu erfassen.
"Asche über mein Haupt"! Sorry!
Mit meinem Script ist es nicht möglich, den permanenten Status abzufragen und ggf. Reaktionen auszuführen.
Dann müßte man das ganze in einer "For Next"-Schleife laufen lassen und die aktuellen Daten zwischenspeichern.
Das werden dann ein paar Zeilen mehr.
Ich persönlich würde mir sowas dann in VB6 schreiben.
Aber dann braucht man wieder den Developer dafür und der ist auch nicht frei verfügbar.
Mal schauen, ob unsere anderen Kollegen nicht einen Batch oder Script-Tipp haben.
Gruß
Tsuki
Naja,
im groben sieht es so aus, daß man ein Programm startet,
es beim Start den aktuellen Status "merken" läßt und dann läuft es die ganze Zeit im Hintergrund. Je nach "Abfrage des Status"-Intervalls benötigt es Resourcen, welche dann auf die Rechenleistung des jeweiligen Rechners Auswirkungen hat.
OK!, Windows bekommt auch mit, ob sich Hardware o.ä. andert, ohne den Prozessor total auszulasten, aber das ist Frage wie man sein Progi gestaltet.
Also mal sehen, wie sowas als Batch oder Script "passieren" kann. Aber wie gesagt, ich bin kein Freund von diesen "endlos-Dingern"
Tsuki
im groben sieht es so aus, daß man ein Programm startet,
es beim Start den aktuellen Status "merken" läßt und dann läuft es die ganze Zeit im Hintergrund. Je nach "Abfrage des Status"-Intervalls benötigt es Resourcen, welche dann auf die Rechenleistung des jeweiligen Rechners Auswirkungen hat.
OK!, Windows bekommt auch mit, ob sich Hardware o.ä. andert, ohne den Prozessor total auszulasten, aber das ist Frage wie man sein Progi gestaltet.
Also mal sehen, wie sowas als Batch oder Script "passieren" kann. Aber wie gesagt, ich bin kein Freund von diesen "endlos-Dingern"
Tsuki
Prinzipiell würde ich das nicht mit einem Programm/Batch oder sonst sowas machen was die ganze Zeit im Hintergrund läuft.
Nutze doch die autoplay Funktion von Windows.
In den Einstellungen des Laufwerks kansnt du dort einstellen welches Programm automatisch beim einlegen eines bestimmten CD Typs gestartet werden soll. Ist dein Programm da ncith dabei kannst du es mit z.B. tweakUI hinzufügen.
Nutze doch die autoplay Funktion von Windows.
In den Einstellungen des Laufwerks kansnt du dort einstellen welches Programm automatisch beim einlegen eines bestimmten CD Typs gestartet werden soll. Ist dein Programm da ncith dabei kannst du es mit z.B. tweakUI hinzufügen.
Naja Wenns Batch sein soll könnte es so funktioniere (ungetestet):
@echo off
set LW=H:
rem Initialstate hermitteln
dir %LW% >NUL 2>NUL
set LWState=%errorlevel%
rem prüfung in Schleife (im 5s Intervall)
:loop
ping -n 5 localhost >NUL
dir %LW% >NUL 2>NUL
if %errorlevel% neq %LWState% (
set LWState=%errorlevel%
call:StCh%errorlevel%%LWState%
)
goto:loop
:StCh01 & rem CD eingelegt
echo CD wurde eingelegt
goto:loop
:StCh10 & rem CD ausgeworfen
echo CD wurde ausgeworfen
goto:loop
Hallo,
wie könnte die Hardware-ID bzw. VID/PID aller Laufwerke abgefragt werden, um sicherzustellen, dass es sich exakt um denjenigen Datenträger handelt, der individuell abgearbeitet werden soll? Der nächste Schritt wäre zu erfahren, welche Laufwerksbuchstaben denen momentan vergeben wurden, um die eine absolute Zuordnung des Laufwerksbuchstabens zu dem tatsächlichen physikalischen Datenträger (Hardware-IDs bzw. VID/PID) zu erreichen.
Die Laufwerksbuchstaben können sich wechseln, wenn Konflikte entstehen, auch selbst dann, wenn diese unter Datenträgerverwaltung bewusst festgelegt wurden. Z. B. dem externen Datenträger Nr. 4 wurde der Laufwerksbuchstaben H:\ zugewiesen. Diese wurde entnommen. Nach kurzer Zeit wurde einem neuen Datenträger Nr. 5 absichtlich derselbe Laufwerksbuchstaben H:\ zugewiesen (aus Backup- und Synchronisierungsgründen) usw. für die restlichen. Es kommt oft vor, dass sogar mehrere gleichzeitig angeschlossen werden, um diese zu bearbeiten. Die Laufwerksbuchstaben sind flüchtig und dementsprechend keine richtige Lösung zur einer sicheren Zuordnung.
Per Batch soll nun erst abgefragt werden, um welchen Datenträger es sich genau handelt, um mit der "if"- Bedingung die entsprechende Aufgabe für den jeweiligen Datenträger zu starten. Es ist dabei nicht erlaubt (es wäre reine Katastrophe), wenn aus irgendwelchem Grund der falsche Datenträger behandelt werden würde. Daher ist eine Abfrage nach Hardware-IDs bzw. anderen Geräte-Merkmale für eine sichere Zuordnung unabdingbar. Einige Datenträger besitzen leider keine Seriennummer. Wobei eine Abfrage nach nur Hardware-ID wäre in meinem Fall ausreichend, da alle Datenträger von unterschiedlichen Herstellern mit unterschiedlichen Modellen sind und somit unterschiedliche VID und PID aufweisen (Vendor- und Product-IDs).
Hier benötige ich wieder von euch eine Hilfe, wo ich nach etlichen Recherchen alleine leider nicht weiter kommen konnte.
Gruß
wie könnte die Hardware-ID bzw. VID/PID aller Laufwerke abgefragt werden, um sicherzustellen, dass es sich exakt um denjenigen Datenträger handelt, der individuell abgearbeitet werden soll? Der nächste Schritt wäre zu erfahren, welche Laufwerksbuchstaben denen momentan vergeben wurden, um die eine absolute Zuordnung des Laufwerksbuchstabens zu dem tatsächlichen physikalischen Datenträger (Hardware-IDs bzw. VID/PID) zu erreichen.
Die Laufwerksbuchstaben können sich wechseln, wenn Konflikte entstehen, auch selbst dann, wenn diese unter Datenträgerverwaltung bewusst festgelegt wurden. Z. B. dem externen Datenträger Nr. 4 wurde der Laufwerksbuchstaben H:\ zugewiesen. Diese wurde entnommen. Nach kurzer Zeit wurde einem neuen Datenträger Nr. 5 absichtlich derselbe Laufwerksbuchstaben H:\ zugewiesen (aus Backup- und Synchronisierungsgründen) usw. für die restlichen. Es kommt oft vor, dass sogar mehrere gleichzeitig angeschlossen werden, um diese zu bearbeiten. Die Laufwerksbuchstaben sind flüchtig und dementsprechend keine richtige Lösung zur einer sicheren Zuordnung.
Per Batch soll nun erst abgefragt werden, um welchen Datenträger es sich genau handelt, um mit der "if"- Bedingung die entsprechende Aufgabe für den jeweiligen Datenträger zu starten. Es ist dabei nicht erlaubt (es wäre reine Katastrophe), wenn aus irgendwelchem Grund der falsche Datenträger behandelt werden würde. Daher ist eine Abfrage nach Hardware-IDs bzw. anderen Geräte-Merkmale für eine sichere Zuordnung unabdingbar. Einige Datenträger besitzen leider keine Seriennummer. Wobei eine Abfrage nach nur Hardware-ID wäre in meinem Fall ausreichend, da alle Datenträger von unterschiedlichen Herstellern mit unterschiedlichen Modellen sind und somit unterschiedliche VID und PID aufweisen (Vendor- und Product-IDs).
Hier benötige ich wieder von euch eine Hilfe, wo ich nach etlichen Recherchen alleine leider nicht weiter kommen konnte.
Gruß