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