Seite 1 von 2

XP-Skin an/aus abfrage

Verfasst: 23.01.2006 00:48
von Donald
Hi,
suche verzweifelt eine Abfrage, mit der ich herausbekomme
ob das Programm "normal" oder mit "XP-Skin" Unterstützung
gestartet wurde.

Kann mir dabei jemand weiter helfen ?

Verfasst: 23.01.2006 11:36
von ts-soft
Ungetestet, wäre nett, wenn Du die Ergebnisse mitteilen würdest:

Code: Alles auswählen

Procedure IsAppThemed()
  Protected DLL.l, Result.l
  If OSVersion() >= #PB_OS_Windows_XP
    DLL = OpenLibrary(#PB_Any, "uxtheme.dll")
    If DLL
      Result = CallFunction(DLL, "IsAppThemed")
      CloseLibrary(DLL)
      ProcedureReturn Result  
    EndIf
    ProcedureReturn #False
  EndIf
  ProcedureReturn #False
EndProcedure

Procedure IsThemeActive()
  Protected DLL.l, Result.l
  If OSVersion() >= #PB_OS_Windows_XP
    DLL = OpenLibrary(#PB_Any, "uxtheme.dll")
    If DLL
      Result = CallFunction(DLL, "IsThemeActive")
      CloseLibrary(DLL)
      ProcedureReturn Result  
    EndIf
    ProcedureReturn #False
  EndIf
  ProcedureReturn #False
EndProcedure
Nachtrag: Die Ergebnisse kommen mir komisch vor :freak:
http://msdn.microsoft.com/library/defau ... themed.asp
http://msdn.microsoft.com/library/defau ... active.asp

Verfasst: 23.01.2006 12:34
von Hroudtwolf
Und ausschalten kannst du das Theme global hiermit.

Code: Alles auswählen

; XP-Skin push off
; 2005 Hroudtwolf
; PureBasic-Lounge.de

If OpenLibrary (1,"uxtheme.dll")
CallFunction(1, "EnableTheming",#False); Mit #True statt #False kannst du es wieder aktivieren
CloseLibrary (1)
EndIf 

Verfasst: 23.01.2006 13:18
von ts-soft
Und wer zählt jetzt die restlichen 45 nicht gefragten Funktionen der DLL auf :wink:
Nicht bös gemeint.

Verfasst: 23.01.2006 13:44
von Donald
leider nicht das was ich suche.

@TS
egal ob ich das PB-Programm mit oder ohne XP-Skin starte
ergebnis immer 1

@Hroudtwolf
Die Routine ändert die Windows Einstellung.

Ich suche nur eine Abfrage ob für ein PB-Programm die
XP-Skin Unterstützung an/aus ist.

Verfasst: 23.01.2006 13:55
von ts-soft
Donald hat geschrieben: @TS
egal ob ich das PB-Programm mit oder ohne XP-Skin starte
ergebnis immer 1
Ist mir auch aufgefallen, aber sollte eigentlich so funzen :freak:
Du kannt ja nach einer programmname.manifest bzw. nach einer Resource vom Typ 24 suchen.

Ich selber disable immer den XP-Style für einzelne Gadgets, wenns nicht passt, bzw. problems macht.

Verfasst: 23.01.2006 13:56
von Hroudtwolf
@Hroudtwolf
Die Routine ändert die Windows Einstellung.

Ich suche nur eine Abfrage ob für ein PB-Programm die
XP-Skin Unterstützung an/aus ist.
Habe nichts anderes behauptet.

Verfasst: 23.01.2006 14:18
von ts-soft
Eigentlich logisch, die Funktion ermittelt nur ob XP-Theme beim User Aktiv ist, ob die Manifest-Datei vorhanden ist, weiß der Programmierer ja normallerweise.
Also XP-Theme Aktiv + ich habe Manifest integriert = ja
ansonsten nein :mrgreen:

Verfasst: 23.01.2006 17:27
von Thatsanee
ts-soft hat geschrieben:Du kannt ja nach einer programmname.manifest bzw. nach einer Resource vom Typ 24 suchen.

Ich selber disable immer den XP-Style für einzelne Gadgets, wenns nicht passt, bzw. problems macht.
Hallo TS,
das würde mich auch interessieren:
Wie fragt man denn ab ob Typ 24 vorhanden ist ?
Und wie disablest du XP-Style für einzele Gadgets ?

Thatsanee

Verfasst: 23.01.2006 18:52
von ts-soft
@Thatsannee
DisableXPTheme findes Du hier: http://forums.purebasic.com/german/view ... e&start=10
sowie im engl. Forum

Das andere wirste Dir wohl selber überlegen müssen, hab da nichts fertiges :wink: