Laufwerke ein/ausblenden

  • Moin zusammen,

    Nachdem ich jetzt schon einiges im Forum zu dem Thema gefunden habe, aber nichts das beinhaltet was ich suche, muss ich dann doch mal fragen.

    Betriebssystem ist Win7 Ultimate 64Bit.

    Ich möchte gerne Laufwerke (USB-Festplatten) ein/ausblenden und zwar ohne Neustart. Dabei soll eigentlich nur sichergestellt werden das die Laufwerke nicht sichtbar im Explorer/Arbeitsplatz und in den diversen FileSave und Open Dialogen sind.

    Finde irgendwie keine Möglichkeit das ohne Neustart hinzubekommen (<- auseinander zusammen, keine Ahnung). Von DLLCall und den ganzen Kladderradatsch hab ich nicht wirklich nen Schimmer :(

    Irgendeiner da ne Idee ?

    THX
    LG Balti

    • Offizieller Beitrag

    Es gibt in der Registry einen Eintrag, mit dem man Laufwerke verstecken kann.
    Key: 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer'
    Value: 'NoDrives'
    Im obigen RegKey/Value sind die Laufwerksbuchstaben verzeichnet, die im Explorer ausgeblendet werden.
    Dabei steht Bit0 für Laufwerk "a:", Bit1 für "b:" usw.
    Ist das jeweilige Bit gesetzt, wird es ausgeblendet.

  • Danke Oscar für deine Antwort.

    Soweit ich das bis jetzt verstanden habe, funktioniert das aber nur nach einem Neustart bzw. Explorer Neustart . Ich glaub ich muss das mal testen.


    LG
    Balti

  • Also, hatte nun mal Zeit das zu testen.

    So schreibe ich den Wert in die Registry

    [autoit]


    RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "nodrives", "REG_DWORD", "8")

    [/autoit]

    Wert ist auch da, hat aber keinen Effekt (außer nach Neustart) .

    Jetzt sag mir bitte mal wie du das hinbekommst, dass Win den Eintrag neu initialisiert.

  • Such mal hier im Forum nach "ForegroundLockTimeout" die ersten beiden Treffern sind derselbe Thread wo ich mich mal reingezeckt habe.
    Hatte dort auch eine Frage wie man einen regkey nachlesen kann. Evtl. kannst Du das adaptieren.

    Thread: Registryeintrag wirksam machen ohne Neustart - Wieso verschieben sich Icons auf dem Desktop!?
    Link (sofern er funktioniert) [ offen ] Registryeintrag wirksam machen ohne Neustart - Wieso verschieben sich Icons auf dem Desktop!?

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Hmm, der Link funktioniert einwandfrei. Ich muss das nur noch kapieren ^^.

    Da sind zu viele Sachen bei, womit ich mich noch nie beschäftigt habe :( . Also wieder lesen ;)

    Dank dir für den Link

  • So, endlich mal Zeit gefunden mich mal damit zu beschäftigen. Hab das soweit auch verstanden, bis auf folgende Werte:

    [autoit]

    Global Const $SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000
    Global Const $SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001
    Global Const $SPIF_UPDATEINIFILE = 0x1
    Global Const $SPIF_SENDWININICHANGE = 0x2

    [/autoit]

    Wo bekommt Ihr die her ? Da ich ansonsten nicht verstehe, wie ich den RegKey ansprechen soll. Wie man merkt, hab ich da keinen Schimmer von :(

    Naja und wenn ich ehrlich bin, _WinAPI_SystemParametersInfo hab ich auch nicht wirklich kapiert. Was um Himmels Willen bedeutet : [optional] Ein Parameter dessen Gebrauch und Format auf dem abgefragten oder gesetzten Parameter beruhen ? Und das Auch noch 2x ^^

    Hab mal ein kleines BSP eingefügt

    Spoiler anzeigen
    [autoit]

    #include <WinApi.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $found = True

    [/autoit] [autoit][/autoit] [autoit]

    $NoDrives_Wert_Original = Number(RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoDrive"))

    [/autoit] [autoit][/autoit] [autoit]

    If $NoDrives_Wert_Original = 0 Then
    $MsgBox = MsgBox(3, "Achtung!", "Der Wert wurde nicht gefunden oder noch nicht gesetzt. Wenn du ihn jetzt setzen willst klicke auf JA. Ansonsten auf Nein oder Abbrechen")
    If $MsgBox = 6 Then
    $inputBox = InputBox("Gebe hier bitte den Wert ein.", "Gültige Werte findest du in der INI.", "", "", 250, 150, Default, Default)
    If $found = True Then
    RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoDrives", "REG_DWORD", $inputBox)
    _WinAPI_SystemParametersInfo(???????)
    Else
    MsgBox(0, "", "Du hast keinen gültigen Eintrag gemacht")
    EndIf
    Else
    Exit
    EndIf
    EndIf

    [/autoit]