- 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.
Geschrieben mit der aktuellen Beta.
Spoiler anzeigen
C
#include <String.au3>
#include <GuiConstants.au3>
$cd1 = ""
$cd1_name = ""
$cd2 = ""
$cd2_name = ""
$p2 = 0
For $a = 68 to 90
$lw = Chr($a)
$reg = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices","\DosDevices\" & $lw & ":")
$wert = ""
$name = ""
For $i = 1 To StringLen($reg)-2 Step 2
$tmp = _HexToString(StringMid($reg,$i,2))
If $tmp <> "" Then
$wert = $wert & $tmp
EndIf
Next
$p1 = StringInStr($wert, "#")+1
$type = StringMid($wert, $p1, 5)
If $type = "CdRom" Then
$p2 = StringInStr($wert, "__")
If $p2 > 6 Then
$name = StringMid($wert, $p1+5, $p2-($p1+5))
$name = StringReplace($name,"_"," ")
If $cd1 = "" Then
$cd1 = $lw & ":"
$cd1_name = $name
Else
$cd2 = $lw & ":"
$cd2_name = $name
EndIf
EndIf
EndIf
$p2 = 0
Next
GuiCreate("CD/DVD - Laufwerke", 540, 139,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
$Group_1 = GuiCtrlCreateGroup("Laufwerk", 20, 20, 270, 100)
$Radio_2 = GuiCtrlCreateRadio($cd1 & " " & $cd1_name, 40, 50, 200, 20)
GUICtrlSetState($Radio_2,$gui_checked)
$Radio_3 = GuiCtrlCreateRadio($cd2 & " " & $cd2_name, 40, 80, 200, 20)
$Group_4 = GuiCtrlCreateGroup("Schublade", 310, 20, 120, 100)
$Button_5 = GuiCtrlCreateButton("Öffnen", 330, 50, 80, 20)
GUICtrlSetState(-1,$GUI_FOCUS)
$Button_6 = GuiCtrlCreateButton("Schließen", 330, 80, 80, 20)
$Button_7 = GuiCtrlCreateButton("Ende", 450, 100, 70, 20)
$Pic_8 = GuiCtrlCreatePic(@ScriptDir & "\DVD_Lw_68x60.jpg", 450, 27, 68, 60)
GuiSetState()
While 1
$reader = GUICtrlRead($Radio_2)
$writer = GUICtrlRead($Radio_3)
$msg = GuiGetMsg()
If $reader = 1 Then
$lw = $cd1
EndIf
If $writer = 1 Then
$lw = $cd2
EndIf
Select
Case $msg = $Button_5
CDTray($lw, "open")
Case $msg = $Button_6
CDTray($lw, "closed")
Case $msg = $GUI_EVENT_CLOSE Or $msg = $Button_7
ExitLoop
EndSelect
WEnd
Exit
Alles anzeigen