Hallo,
in einem Theme File lassen sich ja auch Metriken angeben und lt.
http://msdn.microsoft.com/en-us/library ... px#metrics ist alles in winuser.h beschrieben.
Die Srukturen sind NONCLIENTMETRICS und ICONMETRICS. AAAABER in welcher Reihenfolge und nach welchen Regeln?
Ein Schelm wer boeses dabei denkt
Mir geht es hier vor allem um den Wert bzw. die Angabe von BorderPadding = 0 (default ist 4)
und dann den horizontalen (=126) und vertikalen (=42) Abstand der Icons auf dem Desktop
Sonst will ich alle vorhanden Werte uebernehem.
Wenn ich mein Style exportiere, dann werden leider nicht die Metriken mit exportiert. Auch wenn
ich diese angepasst habe.
Wie auch immer die Strukturen sind schnell herausgesucht und lauten:
Code: Alles auswählen
typedef struct tagNONCLIENTMETRICS
{
UINT cbSize;
int iBorderWidth;
int iScrollWidth;
int iScrollHeight;
int iCaptionWidth;
int iCaptionHeight;
LOGFONTA lfCaptionFont;
int iSmCaptionWidth;
int iSmCaptionHeight;
LOGFONTA lfSmCaptionFont;
int iMenuWidth;
int iMenuHeight;
LOGFONTA lfMenuFont;
LOGFONTA lfStatusFont;
LOGFONTA lfMessageFont;
int iPaddedBorderWidth;
};
typedef struct tagICONMETRICS
{
UINT cbSize;
int iHorzSpacing;
int iVertSpacing;
int iTitleWrap;
LOGFONTA lfFont;
};
Komisch finde ich das IconMetrics in der Theme Datei so viele Werte hat. Ich will aber nur zwei
(s.o.) vorgeben. Also die Abstaende auf dem Desktop. Sonst sollen Standards verwendet werden.
NonClientMetrics sind auch viele Werte, aber das sind ja auch eine Menge Elemente.
Dann sind mir noch einige Eintraege bzw. ein paar Werte aufgefallen, die so auf MSDN
nicht dokumentiert sind, bzw. einfach nicht naher erklaert sind. So fehlt ein Hinweis zu:
"Composition=1"
Und in irgendeinem Style hatte ich auch den Wert: SetLogonBackground=0 unter [Theme]
gefunden. Aber so richtig konnte ich das nicht nachvollziehen.
Kennt hier als jemand also eine _umfassende_ Dokumentation zu den theme-Dateien und
aller Werte?
Dabei faellt mir ein, dass nach jedem Wechsel von einem Theme mein registry-Eintrag: "OEMBackground"
vgl.:
http://wiki.deskmodder.de/wiki/index.ph ... earbeitung
im Schluessel "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background"
einfach wieder auf 0 gesetzt wird.
Kann man durch "SetLogonBackground=1" diese Ruecksetzen verhindern? Zumindest fuer dieses Theme?
Wie kann ich das Ruecksetzen generell unterbinden? Denn ich will nicht nach dem Ausbrobieren
von einem Theme wieder in die Registry und den Wert wieder auf 1 setzen muessen.
Zwar habe ich hier eine kleine reg Date die mit einem Doppelklick als Admin alles einstellt, aber
dennoch nicht sonderlich elegant.
Bis zum Wochenende hatte ich das immer so gemacht, dass ich die imageres.dll
mit eigenen Images gefuettert habe. Da kommt diese Problem zwar nicht zum Tragen,
aber ich finde die vorgesehene Loesung unter "C:\Windows\System32\oobe\", die bis zum
Wochenende fuer mich unbekannt war und die ich hier entdeckt habe, wesentlich besser.
Wie kann ich das Ruecksetzen also verhindern?
im Tutorial zum manuellem Setzen des Logon Images wird die Bezeichnung:
backgroundDefault.jpg (fuer das defaul/Standard-Image) bzw. fuer die ganzen Aufloesungen
die Form: backgroundXxY (mit X = horizonatale Aufloesung und Y = vertikale Aufloesung
in Pixel) so _bindend_, bzw. nur mit dieser Bezeichnungen background* und dann mit der
Aufloesungsangabe gefunden? Oder kommt es nur auf die XxY Angabe an?
Oder ist das nur ein Vorschlag und Windows waehlt eingenstaendig das Image mit
der richtigen Aufloesung?
Thomas