Deaktivierung von CD/DVD Laufwerken (Windows XP deutsch)
Posted: 29. May 2008, 15:40
Die eigentliche Deaktivierung des CD/DVD-Laufwerks geschieht über folgende AutoIt-Routine, deren resultierende 'EXE' einfach in der Setup.inf aufgerufen wird.
;
; AutoIt Version: 3.0
; Language: English
; Platform: WinNT/XP
; Author: HaPe Jehle
;
; Script Function:
; Deaktivierung CD/DVD
;
BlockInput(1)
AutoItSetOption("MouseClickDelay", 10) ;10 milliseconds
AutoItSetOption("MouseClickDownDelay",10) ;10 milliseconds
AutoItSetOption("MouseClickDragDelay",250) ;250 milliseconds
AutoItSetOption("MouseCoordMode", 0) ;1=absolute, 0=relative
AutoItSetOption("PixelCoordMode", 0) ;1=absolute, 0=relative
AutoItSetOption("RunErrorsFatal", 1) ;1=fatal, 0=silent error
AutoItSetOption("SendCapslockMode", 1) ;1=store and restore, 0=don't
AutoItSetOption("SendKeyDelay", 10) ;10 milliseconds
AutoItSetOption("SendKeyDownDelay", 10) ;10 milliseconds
AutoItSetOption("TrayIconHide", 0) ;0=show, 1=hide
AutoItSetOption("TrayIconDebug", 0) ;0=no info, 1=debug line info
AutoItSetOption("WinWaitDelay", 250) ;250 milliseconds
AutoItSetOption("WinDetectHiddenText", 0) ;0=don't detect, 1=do detect
AutoItSetOption("WinTitleMatchMode", 1) ;1=start, 2=substr, 3=exact, 4=...
; SAFER VERSION of Double click at 0,500
Dim $primary
Dim $secondary
;Determine if user has swapped right and left mouse buttons
$k = RegRead("HKEY_CURRENT_USER\Control Panel\Mouse", "SwapMouseButtons")
; It's okay to NOT check the success of the RegRead operation
If $k = 1 Then
$primary = "right"
$secondary = "left"
Else ;normal (also case if could not read registry key)
$primary = "left"
$secondary = "right"
EndIf
#include <String.au3>
$cd1 = ""
$cd1_name = ""
$p2 = 0
;-------------------------------------------------------------------------------------
; folgende Schleife kann vereinfacht werden,
; wenn der LW-Buchstabe immer gleich ist.
;-------------------------------------------------------------------------------------
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,"_"," ")
EndIf
EndIf
$p2 = 0
Next
;-------------------------------------------------------------------------------------
; Schleifenende
;-------------------------------------------------------------------------------------
Run("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2")
WinWaitActive("Systemeigenschaften", "Geräte-Manager",10)
While WinExists("Systemeigenschaften", "Geräte-Manager")
WinActivate("Systemeigenschaften", "Geräte-Manager")
Send("!g")
WinWaitActive("Geräte-Manager")
$e = 0
While WinExists("Geräte-Manager")
WinActivate("Geräte-Manager")
Send("{TAB}")
WinActivate("Geräte-Manager")
Send("DVD")
WinActivate("Geräte-Manager")
Send("{RIGHT}")
WinActivate("Geräte-Manager")
Send("{RIGHT}")
WinActivate("Geräte-Manager")
Send("!tv")
While WinExists("Geräte-Manager")
If WinExists($name, "Wenn Sie dieses Gerät deaktivieren") Then
WinActivate($name, "Wenn Sie dieses Gerät deaktivieren")
WinwaitActive($name, "Wenn Sie dieses Gerät deaktivieren")
Send("!j")
WinClose("Geräte-Manager")
WinClose("Systemeigenschaften", "Geräte-Manager")
$e = 1
EndIf
Wend
If $e = 0 then
Send("!n")
EndIf
WinClose("Geräte-Manager")
WinClose("Systemeigenschaften", "Geräte-Manager")
wend
Wend
BlockInput(0)
Exit