Hi!
Ich habe ein ganz komisches Phänomen.
Ich habe bei MS folgendes gelesen:
support.microsoft.com/?id=330135
Nun habe ich mal alle Möglichkeiten ausprobiert und nach jedr Einstellung (mit Neustart) die CDs mehrmals ein- und ausgefahren. Das Ergebnis:
Beides deaktiviert:
CD/DVD-Laufwerke werden nur bei explizitem Aufruf aktualisiert.
Beides aktiviert:
CD/DVD-Laufwerke werden immer im aktuellen Zustand angezeigt (inkl. Medium-Titel), Disks starten selbstständig.
Nur HKLM aktiviert:
CD/DVD-Laufwerke werden immer im aktuellen Zustand angezeigt (inkl. Medium-Titel)
Nur HKCU aktiviert:
CD/DVD-Laufwerke werden immer im aktuellen Zustand angezeigt (inkl. Medium-Titel), zusätzlich AutoPlay übers Kontextmenü nachträglich startbar.
Ich habe also den HKCU-Schlüssel zusätzlich in M.I.B. eingebaut. Jedoch hat er den Wert 0xb5 nicht angenommen (da mit Buchstaben). Also hab ich in der Registry geschaut, as das Dezimal.Pendant ist und dieses verwendet. Diese Werte werden auch korrekt in die Registry eingetragen. Doch seitdem ich die Einstellung mit M.I.B. geändert habe, reagiert ausgerechnet meine Lieblingseinstellung (Nur HKCU aktiviert) ganz anders, nämlich als wenn beides deaktiviert wäre
Ich habe nochmal geschaut und mir ist aufgefallen, dass beim Reinkopieren von 0xb5 in die Registry dieses nach dem Umschalten nach Dezimal und zurück in 41b5 umgewandelt wird. Ich habe es dann nochmal selber manuell reingetippt und er hat als Dezimalwert nun nicht 16821 sondern 181 ausgegeben.
Anscheinend hatte sich da MS etwas umständlich ausgedrückt: Der einzugebene HD-Wert lautet nämlich nur b5, der komplette Wert 0x000000b5 !
Ich habe einige Neustarts mit manuellem Umändern in der Reg hinter mir, aber bisher habe ich meine Lieblingsfunktion nicht mehr zum Leben erwecken können
War das ein einmaliges Phänomen oder liegt da ein Fehler meinerseits vor?
War es denn richtig, dass ich den Dezimalwert angegeben habe?
Hier der Code:
Prüfen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TForm1.Button12Click(Sender: TObject); var Reg: TRegistry; RegKey: DWORD; Key: string; begin reg := TRegistry.Create(KEY_READ); try Reg.RootKey := HKEY_CURRENT_USER; Key := 'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer'; if Reg.OpenKeyReadOnly(Key) then if Reg.ValueExists('NoDriveTypeAutoRun') then RegKey := Reg.ReadInteger('NoDriveTypeAutoRun'); Reg.CloseKey; if (RegKey=145) then Edit3.Text:=' AutoPlay ist noch aktiv!' else Edit3.Text:=' AutoPlay ist bereits deaktiviert.'; Button16.Enabled:=(RegKey=145); Button17.Enabled:=(RegKey=181); finally Reg.Free end; end; |
Deaktivieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button16Click(Sender: TObject); var Reg: TRegistry; RegKey: DWORD; Key: string; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CURRENT_USER; Key := 'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer'; if Reg.OpenKey(Key, True) then Reg.WriteInteger('NoDriveTypeAutoRun', 181); Reg.CloseKey; finally Reg.Free; end; ShowMessage('Klicken Sie auf ''Jetzt prüfen'', um zu testen, ob die Änderung geklappt hat.'); end; |
Aktivieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button17Click(Sender: TObject); var Reg: TRegistry; RegKey: DWORD; Key: string; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CURRENT_USER; Key := 'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer'; if Reg.OpenKey(Key, True) then Reg.WriteInteger('NoDriveTypeAutoRun', 145); Reg.CloseKey; finally Reg.Free; end; ShowMessage('Klicken Sie auf ''Jetzt prüfen'', um zu testen, ob die Änderung geklappt hat.'); end; |