Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Startmenu reihnfolge per code manipulieren (https://www.delphipraxis.net/140353-startmenu-reihnfolge-per-code-manipulieren.html)

gvita 16. Sep 2009 20:41


Startmenu reihnfolge per code manipulieren
 
Hi,
h
ich will die reihnfolge des startmenüs programmiertechnisch ändern.

Die reihnfolge wird von Windows unter folgendem Schlüssel in der Registry abgespeichert:

HKCU\Software\Microsoft\Windows\CurrentVersion\Exp lorer\MenuOrder\Start Menu2\programs\order

Das ganze ist ein Binary Feld.

Ich habe zwar einige Hinweise im Internet gefunden, aber wie dieses Binaryfeld sich zusammensetzt ist nicht wirklich ersichtlicht.

Ich kann zwar schon auslesen wie viel Einträge in diesem Stream sind aber dann wird es finster.

Diese Übersicht habe ich zwar gefunden aber zu mindestens unter XP Sp3 scheints es nicht wirklich zu passen.


Delphi-Quellcode:
--------------------+---------------------------------------------------------------------------------------------------------+
byte offset                description (all numbers in hex)
--------------------+---------------------------------------------------------------------------------------------------------+
0-7                     Fixed header bytes: 08 00 00 00 02, 00, 00, 00
8-11                    Length of following bytes (=size of whole binary key value - 8)
12-15                   Always apears to be: 01 00 00 00
16-19                   Number of item entries in this menu
--------------------+---------------------------------------------------------------------------------------------------------+

Each item entry, placed serially in the binary stream in alphabetical order, consists of:

--------------------+---------------------------------------------------------------------------------------------------------+
 byte offset                description (all numbers in hex)
--------------------+---------------------------------------------------------------------------------------------------------+
0-3                      Number of bytes in this entry
4-7                      Position in start menu to display entry :-)
                         
                          [color=#ff003f]Hier bekomme ich immer 0 ;-)[/color]

                          Sometimes it is filled with FB, FF, FF, FF. I don't know why, maybe its a value
                          that says to sort in default (alphabetic) order.
8-11                    Number of bytes to FIRST (or only) null at the end of the short file name stored further on in entry
12-15                  Always seems to be:41, 75, 67, 4d ("AugM")

                      [color=#ff003f] -> Bis hier stimmts aber dann gehts nicht wirklich weiter[/color]

16-19                  Always seems to be: 01, 00, 00, 00
20-23                  Always seems to be: 01, 00, 00, 00
24-27                  Always seems to be: 00, 00, 00, 00
28-29                  Two byte value indicating umber of bytes to FIRST (or only) null at the end
                           of the short file name stored further on in entry
                           file name stored further on in entry
30-31                  Two byte value which is:
                             31 if the menu item is a folder (i.e. a new sub-menu)
                             32 if the menu item is a shortcut or file
32-35                  NO IDEA !!!!
36-39                  NO IDEA !!!!
40                       Byte value:
                             10 if the menu item is a folder (i.e. a new sub-menu)
                             20 if the menu item is a shortcut or file
41                       Byte value: 08
42-n1                  Null terminated string containing the long file name (not including path) of the file, shortcut
                           or folder which is an item in this menu
n1+1 - n2            Null terminated string containing the short file name (not including path) of the file, shortcut
                           or folder which is an item in this menu.
                           NOTE 1: if the short file name is the same as the long file name then just a single null sits here
                          NOTE 2: if the number of characters in the long + short file names is ODD then an EXTAR NULL
                                        is tagged onto the end (this is not counted in values at offsetts 8 and 28.
n2+1 - n2+4       Always appears to be zero
n2+5 - n2+8       DON'T KNOW what these values are either
Hatt jemand von euch vielleicht eine Idee ?


Vielen Dank

Gruß Gio


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz