CD/DVD-Laufwerke erkennen (open-close)

    • Offizieller Beitrag

    Eigentlich wollte ich nur 'CDTray' testen.
    Daraus geworden ist jetzt ein kleines Programm, dass automatisch die physikalischen CD/DVD-Laufwerke sucht mit Laufwerksbuchstaben und korrekter Bezeichnung.
    Vielleicht hab ich auch das Fahrrad mal wieder neu erfunden - aber Spaß gemacht hats trotzdem. :D
    Geschrieben mit der aktuellen Beta.

    Spoiler anzeigen
    • Offizieller Beitrag

    So, da man die Info über das(die) CD/DVD-Laufwerk(e) sicher auch anderweitig verwerten kann, hab ich das ganze jetzt in eine Funktion gepackt.
    Ergänzend zu Lw-Buchstaben und Gerätebezeichnung kann jetzt auch die Firmwareversion ausgelesen werden.

    Im Download hab ich gleich eine GUI zum Ausprobieren vorangestellt.
    Geschrieben mit der aktuellen Beta.

    Spoiler anzeigen
    • Offizieller Beitrag

    Hallo!

    Sehr schön! Hab vor ca nem jahr auch so ein Tool geschrieben aber nicht ganz so weit wie deines..

    Spoiler anzeigen

    Die Hilfe datei(da hab ich mein (damals noch) English for Wrongonways bennutzt *g*) :

  • Ich habe das Ganze mal über Scriptomatic probiert(es gibt eine Funktion zum Erkennen der Laufwerke, hätte mich auch gewundert, wenn nicht..)
    Ich erhalte alle benötigten Information, auch ob ein Silberling eingelegt ist..
    ..und mit 'weniger' Aufwand(nur das Skript zusammenkürzen)
    ..und schnell..
    ..solange keine Scheiben eingelegt sind ;(
    Sobald Medien eingelegt sind, wird das Ganze so langsam(durch die durchgeführten Tests), daß es unerträglich ist..
    Gruß
    ytwinky
    Zum Spielen:

    Spoiler anzeigen

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

  • Hi,
    Hab ich schon gekuckt, mit scriptomatic nicht(jedenfalls habe ich nix gefunden)
    Und die ganz normalen AutoIt-Funktionen erkennen, daß eine CD/DVD im Laufwerk ist => Lw zu
    Aber Lade offen ist genauso, wie keine CD im Lw
    [Edit]
    ich habe mir(zu Übungszwecken) mal das Skript von Bugfix vorgenommen.
    Habe ein paar unnötige Schleifen und Includes entfernt, nicht weil
    ich es besser weiß, sondern um zu sehen, ob das dann auch noch geht :D
    Es ist, imho, ein wenig übersichtlicher geworden, sodaß ein leichter
    Vergleich mit dem Original-Skript möglich ist..
    Tipp: Wenn ich in einer Gruppe zwei RadioButtons habe, brauche ich nur
    einen abzufragen, denn der Wert vom anderen ergibt sich autimatisch ;)
    [Edit]
    Allmählich sind u und i gleichermaßen abgenutzt, da hau ich schon mal daneben ;)
    Gruß
    ytwinky

    Spoiler anzeigen


    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    2 Mal editiert, zuletzt von ytwinky (5. Juni 2006 um 12:15)

    • Offizieller Beitrag

    Hi ytwinky (u. alle anderen auch :D ),

    hast natürlich recht - "chr(dec(i))" bringt das gleiche wie "_HexToString(i)" und man spart sich den include.
    Aber du hast das Script zu weit gekürzt. Falls ein Virtuelles CD-Laufwerk vorhanden ist erhält dies in der Registry ebenfalls die Kennung "CdRom". Liegt es in der Lw-Buchstabenfolge vor den physikalischen CD-Lw wird das Virtuelle Lw als 1. Lw und das erste physikalischen CD-Lw als 2. Lw erkannt. Die Bezeichnung des Virtuellen Lw wird aber nicht ausgelesen, da dieses keine Firmwarebezeichnung hat (Folgestring mit "_______" beginnend).
    Hab auf meinem PC zufällig diese Konstellation - sonst wär mir das sicher auch nicht aufgefallen.

  • Hi Bugfix,
    ich bin nicht fehlerfrei, wie viele andere auch..
    (lediglich Snoopy hat mal gesagt:Nobody's perfect, except me..)
    Wie erwähnt, bin ich ein alter Mann und verstehe nicht alle technischen Entwicklungen..
    Wie bitteschön wird bei einem virtuellen CD-Laufwerk die Lade ausgefahren?
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    • Offizieller Beitrag

    Die wird nicht ausgefahren, sonder wie auch jeder Zugriff wird Windows nur vorgegaukelt, dass es gelesen/ausgeafhren wird.
    Die (ISO-)Datei, mit der das Laufwerk verknüpft war, wird jedoch davon entkoppelt, sodass keine Lesezugriffe mehr über den Laufwerkbuchstaben möglich sind.

    peethebee

  • hi peethebee,
    danke für die Erklärung..
    btw:
    Ich glaube, ich habe in meinem vorigen Posting ein paar smilies vergessen :rofl:
    Im Ernst:
    Funktioniert CDTray() mit einem virtuellen Laufwerk?
    Wenn das virtuelle Laufwerk von DriveGetDrive() als CD-Laufwerk erkannt wird,
    dann ist das Ganze kein Problem mehr(und schon fast fertig..)
    Ich habe das Skript noch weiterentwickelt, damit auch User, die einen SCSI-Tower mit mehr als zwei optischen Laufwerken besitzen, dies Skript auch benutzen können, aber ich war gestern Abend zu müde, um es fertigzustellen.
    M.a.W.: Kommt demnächst..
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    Einmal editiert, zuletzt von ytwinky (1. Juni 2006 um 17:51)

    • Offizieller Beitrag
    Zitat

    Wie erwähnt, bin ich ein alter Mann

    ytwinky:
    Mit 50 ist das Glas halbvoll und nicht halbleer! :ROFL:
    Ich bin auch nur noch 5 Jahr vom halben JH entfernt - grausiger Gedanke irgendwie. Braucht man dann eigentlich 'nen Therapeuten um das Trauma zu bewältigen? ?( :lol:

    Zitat

    Funktioniert CDTray() mit einem virtuellen Laufwerk?

    Ja, klappt - jedenfalls das Auswerfen (Entkoppeln).
    Ist vielleicht noch eine Idee, in der Kombination Virtuelles Lw und "Schublade schliessen", den Dialog zum Einbinden der ISO-Datei mit einzubauen. Allerdings weiß ich ad hoc nicht, ob sich das verallgemeinern läßt für CloneCD, Nero und und und... .


    Frage am Rande:
    Wie baut ihr den Spoiler im Thread ein. Macht die Sache wirklich übersichtlicher.


    Edit:
    Hab grad bemerkt - wir brauchen noch ein Smilie für :rofl:
    Wenn mich meine Familie läßt, werd ich zu Pfingsten mal versuchen einen zu kreieren. Kann aber auch sein, dass mich die Trackmania-sucht überkommt. Naja, mal abwarten.

  • Zitat

    Original von BugFix
    Braucht man dann eigentlich 'nen Therapeuten um das Trauma zu bewältigen? ?

    Nicht unbedingt, aber es erleichtert die Sache ein wenig :rofl:
    (Mein Therapeut ist lediglich 2 Jahre älter als ich und hat das auch bewältigt..)
    In der Karriereleiter Teen, Twen, Bivi, Uhu ändert sich am Status nix,
    aber das Bewußtsein leidet..
    Erst jetzt stelle ich fest, daß es nicht unbedingt Liebe auf den Ersten Blick ist,
    wenn die Mädels in der Straßenbahn mir den Vortitt lassen oder mir ihren Platz
    anbieten :D
    [Edit]
    Hier nun die angedrohte/geänderte Version:

    Spoiler anzeigen


    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    Einmal editiert, zuletzt von ytwinky (4. Juni 2006 um 07:04)

    • Offizieller Beitrag

    Hi ytwinky,

    Laufwerzuordnung stimmt, nur der Name eines Virtuellen Lw wird wg. fehlender Abfrageposition ("__") nicht ausgelesen. Ich hatte jetzt überlegt, den Namen aus: "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi" auszulesen. Aber dann fehlt wieder die Lw-Zuordnung. :(
    Ich werd mal noch suchen ob verschiedene Virtuelle Lw eine gemeinsame Komponente beim DosDevice-Eintrag haben. Falls ja, werde ich die Abfrage entsprechend erweitern. ERgebnisse gibts hier.
    Bis dann.


    Edit:

    So, habs gefunden. Virtuelle Lw werden nach der "CdRom"-Kennung mit "&Ven" (Virtual Environment) versehen.
    Habe deine Funktion "GetNameFromRegistry" angepaßt. Nun klappts auch mit den VirtualCD.

    Spoiler anzeigen
  • Au fein, das muß ich gleich mal einbasteln..
    Wie sieht denn das mit dem GUI aus, schafft das deine 1000 virtuellen Laufwerke :rofl:
    Die Schleife ist ja nur eine Schätzung ;)
    Haut das noch hin mit der Darstellung?
    Gruß
    (ein sich zum Basteln verabschiedender)
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

  • Hi BugFix,
    hast du mal geschaut, wie es hiermit bei dir aussieht?
    Denn deine Version von GetNameFromRegistry($Lw) läßt sich dort nicht so ohne Weiteres einfügen..
    [Edit]
    Ich habe jetzt mal ein Programm zum Mounten virtueller Laufwerke installiert..
    Das Laufwerk wird erkannt, aber ich kann es nicht trennen..
    In der Registry finde ich auch keinen Hinweis auf ein virtuelles Lw.
    Hmmm. was ist das ?
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    Einmal editiert, zuletzt von ytwinky (4. Juni 2006 um 19:12)

    • Offizieller Beitrag

    Problem gelöst:

    Spoiler anzeigen

    Edit:

    Zitat

    In der Registry finde ich auch keinen Hinweis auf ein virtuelles Lw.


    Ich hab als virtuelle Lw sowohl CloneCD als auch NeroVirtualCD. Beide generieren unter "HKLM\SYSTEM\MountedDevices\DosDevices\" den Eintrag "\??\SCSI#CdRom&Ven_&NAME&Rev....#......"
    Was hast du für ein virtuelles Lw ?

    Edit2:

    Zitat

    Das Laufwerk wird erkannt, aber ich kann es nicht trennen..


    Komisch, meine virtuellen Lw werden anstandslos entkoppelt mit "CDTray($lw, "open")".

  • Naja, ich wollte natürlich nicht zugeben, daß ich keine virtuellen Laufwerke benutzen kann,
    also habe ich auf die Schnelle mal die DaemonTools 3.xyz installiert und ein Iso-File gemountet.
    (Das Erste, was ich gefunden habe, war vom VMServer das Windows.Iso)
    Ich muß mal schauen, was ich in meiner CDVD-Sammlung noch so finde..
    (Es sollte halt schnell gehen..)
    [Edit]
    Das funzt ja astrein, prima..
    ..manchmal kann ich auch schnell sein:

    ..und kucke an, sogar 'n 2. DVD-Laufwerk(L: ) habe ich..
    Dankeschön :D
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    3 Mal editiert, zuletzt von ytwinky (4. Juni 2006 um 20:53)