Startmenü sortieren

  • Wie kann ich es einrichten das der Ordner Programme im Startmenü sortiert wird.

    Wenn man in dem Ordner Startmenü -> Programme einen Rechtsklick macht kann man dort auch sortieren und diese Funktion meine ich.


    LG

    Schnuecks

  • Angeblich soll:

    [autoit]

    RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs", "Order")

    [/autoit]


    funktionieren, tut bei mir aber nicht. Vielleicht musst Du auch alle Order-Einträge in den Unterkeys mit löschen!

  • Hi, hat noch einen Schönheitsfehler die Lösung. Falls Windows so eingestellt ist, dass es den Windows Explorer automatisch neustartet, falls er abschmiert wird er zweimal gestartet. Zudem ist nicht gewährleistet, dass der richtige explorer.exe-Prozess abgeschossen wird, da man einstellen kann, dass jeder einen eigenen "Speicherbereich" bekommt. Hier mal die von mir gefixete Variante in Form einer UDF.
    _StartMenuSort:

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Function Name.....: _StartMenuSort
    ; Description.......: Checks if a file or directory exists and delete it.
    ; Version...........: 1.0
    ; Change Date.......: 2007-09-11
    ; AutoIt Version....: 3.2.8.1
    ;
    ; Parameter(s)......: $I_TIMEOUT - Integer specifying the time to wait for the
    ; restart of the "explorer.exe"-process in
    ; milliseconds (default = 3000).
    ; Requirements(s)...: "%WINDIR%\explorer.exe"
    ; Return Value(s)...: Returns 1
    ;
    ; Author(s).........: big_daddy <http://www.autoitscript.com/forum/>
    ; Modified by: teh_hahn <[email='sPiTsHiT@gmx.de'][/email]>
    ; Company...........: None
    ; URL...............: http://www.autoit.de/
    ; Note(s)...........: None
    ;===============================================================================
    Func _StartMenuSort(Const $I_TIMEOUT = 3000)
    RegDelete("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu")
    While ProcessExists("explorer.exe")
    ProcessClose("explorer.exe")
    WEnd

    Local Const $N_TIMER = TimerInit()
    While 1
    If ProcessExists("explorer.exe") Then Return (1)
    If TimerDiff($N_TIMER) > $I_TIMEOUT Then
    Run("explorer.exe")
    Return (1)
    EndIf
    Sleep(20)
    WEnd
    EndFunc ;==>_StartMenuSort

    [/autoit]