Laufwerk umbenennen

  • Moin, da ich jetzt schon 3 x!! mal gefragt wurde, wie man n laufwerksnamen ändert - hier die Lösung :]

    Ganz banaler Registry eintrag, funkt aber immer =)

    Das ganze noch schön als Funktion verpackt :]

    [autoit]

    ;Func _rename
    ;Benennt ein Laufwerk (zb DvD Brenner) um - über registry!
    ;zb _rename("f", "S-ATA Brenner")

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

    Func _Rename($laufwerk, $name)
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\"&$laufwerk&"\DefaultLabel","", "REG_SZ", $name)
    if @error Then
    Return 0
    Else
    Return 1
    Endif
    Endfunc

    [/autoit]

    Kurz, aber hilfreich :)

  • Hi, gefällt mir gut. Habe das Ganze noch ein wenig modifiziert und hätte noch weitere Verbesserungsvorschläge:
    1. Funktion erwartet C und nicht C: oder C:\ (RegExp anpassen!)
    2. Wenn das Laufwerk bereits über den Explorer umbenannt wurde, hat dies keine Auswirkungen! (Herausfinden, wo dies abgespeichert wird und ggf. auch in der Registry ändern!) Wäre cool, wenn das noch jemand einbauen könnte.

    Hier das leicht modifizierte Skript von Huggy:

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Function Name.....: _DriveRename
    ; Description.......: Changes the default label of a drive.
    ; Version...........: 1.0
    ; Change Date.......: 2007-11-13
    ; AutoIt Version....: 3.2.8.1
    ;
    ; Parameter(s)......: $S_PATH - String containing the path of the drive to change the default label.
    ; Requirements(s)...: None
    ; Return Value(s)...: Success: Returns 1
    ; Failure: Returns 0 and set @error to:
    ; 1 = The specified path is invalid.
    ; 2 = Could not write in the registry.
    ;
    ; Author(s).........: Huggy <[email='affe1992@gmx.at'][/email]>
    ; Modified by: teh_hahn <[email='sPiTsHiT@gmx.de'][/email]>
    ; Company...........: None
    ; URL...............: None
    ; Note(s)...........: None
    ;===============================================================================
    Func _DriveRename(Const $S_PATH, Const $S_LABEL)
    If Not StringRegExp($S_PATH, "[a-zA-Z]") Then Return (SetError(1, 0, 0))
    If Not RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\" & $S_PATH & _
    "\DefaultLabel", "", "REG_SZ", $S_LABEL) Then Return (SetError(2, 0, 0))
    Return (1)
    EndFunc ;==>_DriveRename

    [/autoit]
  • Das wird irgendwo im Filesystem abgespeichert:

    Spoiler anzeigen

    Auszug aus Sysinternals Filemon LOG


    Außerdem wird in der Registry der Wert zwischengespeichert (Gefunden mit Regmon: z.B.:

    Code
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{0e3e6352-9607-11db-9499-806d6172696f}
    Wert: _LabelFromReg (REG_SZ)