Foro | | | | - Página 1 - |
| GDL | ¡Hola, kann me Por favor, alguien sagen, cómo bajo Profano el Windowsdesign abfrägt? siehe Bildanhang.Gracias.
Servus Georg |
| | | | |
| | | | | - Página 1 - |
| RGH | ¡Hola, en esta API después de XProfan umzusetzten, mußt Usted primero wissen, en welcher Windows-DLL ellos steckt. Es en el API-Ayuda para gewöhnlich angegeben y diesem Fall el uxtheme.dll.
Der Rückgabewert es una Valor des Typs HTHEME. Das H como erster Buchstabe beudet Handle y una 32-Bit-Betriebssystem es dieses una 32-Bit-Valor, Así que una Longint. Der Parámetro HWND es el Handle des a untersuchenden Fensters. Will uno el Función en XProfan also para la ventana principal aufrufen, así lautet ellos: KompilierenMarcaSeparación Yo fürchte aber, ellos bringt Usted no más. Zum una hay el DLL sólo de Windows XP y para otro son ellos auch en uno Standard-XP-Oberfläche 0 zurück.
Usted es vermutlich en el Hauptsache por lo tanto, herauszubekommen, si el Titel- y Menüzeilen el korrekte Gröe el klassischen Bildschirmdarstellung haben, así el Dialogelemente korrekt en el Dialoge passen. Como helfen Usted el XProfan-Systemvariablen %cyCaption y %cyMenu más. Wenn deren Valor größer es, como en Deiner klassischen Darstellung es entweder una XP- oder Vista-Stil en el Einsatz, o Anzeige wurde anderweitig angepaßt. (Auch bajo Win2000 y früher, podría uno el Ansicht así verändern, dass el Größen no mehrt stimmten, also etwa doppel hohe Titelzeilen en Fenstern, etc.) (En XP en el XP-Look ha %cyCaption z.B. valor 26.)
Saludo Roland |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 02.10.2007 ▲ |
| |
| | GDL | Gut entonces Aprovecho %cyCaption. Wird sowieso o ne- langwierige Geschichte.Zwei Rechner meiner Testanlagen puede sólo 1024*768 con 256 Farben.Muss todos festen Farbzuweisungen en Variables umwandeln y por 2 diferente Archivos invitar. También puede esta Graphikkarten max. 300 Farbbuttons (SKcontrol) darstellen. Anscheinend benötigt WinME de los 16 Mb Graphikspeicher zuviel.En normalen Windowsbuttons hay no Problemas. Ach Abwärtskompatibel como bist du schön.
Servus Georg |
| | | | |
| | GDL | Das letzte Problema es nun, Yo lo hinbekomme, dass el Desktopikonen fixiert bleiben.
Servus Georg |
| | | | |
| | GDL | Möchte si dieser Diálogo comenzó se, KompilierenMarcaSeparación el dieser siempre en el Vordergrund restos, oder el Hauptprogramm angehalten restos.
Posesiones ya con winexecwait KompilierenMarcaSeparación intenta. Dies va zwar einwandfrei, sólo si al Theme wechselt,dauert dies fast 2min. a el Hauptprogramm weitermacht.Denkt cada igual a una Programmabsturz.
Ohne winexecwait y mittels uno Bucle en el con findwindow nachgesehen se, si el Diálogo todavía se ejecuta va auch no, como dieser en el verschiedenen WinVer. diferente Fenstertitel trägt. Gibt lo como o ne- Möglichkeit?
Servus Georg |
| | | | |
| | | Starte el cpl como Parámetro para el Control.Exe en lugar de runDLL el control.exe starten que se. |
| | | | |
| | GDL | | | | | |
| | | | - Página 2 - |
| | Rolf Koch | Nein Georg desafortunadamente nix - kein Diálogo. |
| | | | |
| | GDL | ohje,qué mach Yo nun ? Magste Por favor, veces sin desk.cpl guggen, si wenigstens el Systemeinstellungen starten.
Servus Georg |
| | | | |
| | Rolf Koch | auch sólo control.exe rennt no. |
| | | | |
| | GDL | Soweit bin Yo ya, KompilierenMarcaSeparaciónCode ist ausm Zusammenhang von Hauptmenü gerissen
Grundcode von A.Miethe und XProfan Comunity Mitgliedern
Bei richtigen Einstellungen passiert nichts
{$CLEQ}
declare l_ende%,l_farbwert&,l_farbwertalt&,l_x&,l_dev#,l_xaufloesungalt&,l_yaufloesungalt&
declare l_farbtiefealt&,t$,n$,horizontal%,los%,hor%,vert%,tx&[10],uname&,abr&
declare fenstergroesse&,design%,weiter%,l_dlg&
dim l_dev#,156
Def RunControl(2) WinExec(Add$(Add$(
RUNDLL32 SHELL32.DLL,Control_RunDLL ,$(1)),.CPL ),$(2),1)
usermessages 16
@Set(AutoPaint,1)
windowstyle 31
window 0,0 - %maxx,%maxy
usefont Courier new,15,8,0,0,0
setdialogfont 1
windowtitle Hauptmenue GDL 2006
==============================
proc fgroesse
fenstergroesse&=%cyCaption
endproc
=======================================================
proc windowsdesign
RunControl(DESK,)
endproc
=================================================================
proc farbtiefe
Höchste Farbtiefe für 1024 ermitteln
While ~Enumdisplaysettings(0,l_x&,l_dev#)
if Str$(Long(l_dev#,108))=1024
horizontal%=1
l_farbwert&=Long(l_dev#,104)
case l_farbwert& > l_farbwertalt& : l_farbwertalt&=l_farbwert&
endif
Inc l_x&
Wend
ifnot horizontal%=1
Let t$=Graphikkarte
Let n$=Ihre Graphikkarte kann keine 1024*768 Auflösung.
Programm wird beendet.
MessageBox(n$,t$,64)
dispose l_dev#
end
endif
l_farbwert&=l_farbwertalt&
endproc
================================================================
proc umschalten
Umschalten
settimer 10
waitinput
killtimer
Long l_dev#,40 = ~Dm_pelsheight | ~Dm_pelswidth | ~Dm_bitsperpel
Long l_dev#,104 = l_farbwert&
Long l_dev#,108 = hor%
Long l_dev#,112 = vert%
If ~Changedisplaysettings(l_dev#,~Cds_updateregistry) = ~Disp_change_restart
External(setupapi.dll,SetupPromptReboot,0,0,0)
Endif
sonst wird Fenster nicht angepasst
ShowMin
ShowMax
endproc
====================================================================
proc rueckschalten
Rückschalten
l_farbwert&=l_farbtiefealt&
hor%=l_xaufloesungalt&
vert%=l_yaufloesungalt&
umschalten
endproc
========================================================
proc textanzeige
settext tx&[1], Aktuelle horizontale Auflösung : +str$(~Getdevicecaps(~Getdc(0),~Horzres))+ soll : 1024
settext tx&[2], Aktuelle vertikale Auflösung : +str$(~Getdevicecaps(~Getdc(0),~Vertres))+ soll : 768
endproc
==================================================================
proc dmalen
startpaint l_dlg&
if tx&[1] > 0
destroywindow(tx&[1])
destroywindow(tx&[2])
destroywindow(tx&[3])
destroywindow(tx&[4])
destroywindow(tx&[5])
destroywindow(tx&[6])
destroywindow(tx&[7])
destroywindow(uname&)
destroywindow(abr&)
endif
if (~Getdevicecaps(~Getdc(0),~Horzres) <> 1024) or (~Getdevicecaps(~Getdc(0),~Vertres) <> 768)
cls RGB(208,0,0)
else
case design%=0:cls RGB(0,194,0)
endif
if fenstergroesse& <> 19
design%=1
cls RGB(208,0,0)
tx&[5]=create(text,l_dlg&, Das Windowstheme ist nicht auf Windows - klassisch ,30,200,530,20)
tx&[6]=create(text,l_dlg&, eingestellt. - Bitte in folgendem Dialog einstellen.,30,220,530,20)
tx&[7]=create(text,l_dlg&, Dieser Dialog wird am Schluss erneut gestartet.,30,240,530,20)
else
if weiter%=1
l_ende%=1
endif
endif
tx&[1]=create(text,l_dlg&, Aktuelle horizontale Auflösung : +str$(l_xaufloesungalt&)+ soll : 1024,30,40,530,20)
tx&[2]=create(text,l_dlg&, Aktuelle vertikale Auflösung : +str$(l_yaufloesungalt&)+ soll : 768,30,60,530,20)
tx&[3]=create(text,l_dlg&, Bei falscher Auflösung und autmat.Umschaltung wird,30,90,530,20)
tx&[4]=create(text,l_dlg&, am Programmende auf die alten Werte rückgewechselt,30,110,530,20)
uname&=create(button,l_dlg&,Umschalten,450,150,110,20)
abr&=create(button,l_dlg&,Beenden,450,330,110,20)
ifnot (l_xaufloesungalt& <> 1024) or (l_yaufloesungalt& <> 768)
enablewindow uname&,0
weiter%=1
endif
endpaint
endproc
====================================================================
proc deinstellungen
windowstyle 8
l_dlg&=create(window,%hwnd,Desktopeinstellungen,100,100,600,400)
usefont Courier new,17,10,1,0,0
setdialogfont 1
die alten Einstellungen ermitteln und speichern
l_farbtiefealt& = ~Getdevicecaps(~Getdc(0),~Bitspixel)
l_xaufloesungalt& =~Getdevicecaps(~Getdc(0),~Horzres)
l_yaufloesungalt& =~Getdevicecaps(~Getdc(0),~Vertres)
fgroesse
dmalen
ifnot l_xaufloesungalt& =1024
hor%=1024
vert%=768
farbtiefe
enablewindow uname&,1
endif
clear l_ende%
case (weiter%=1) and (design%=0):l_ende%=1
case design%=1:windowsdesign
whilenot l_ende%
waitinput
if (%umessage=16) or (clicked(abr&))
l_ende%=1
elseif clicked(uname&)
umschalten
horizontal%=1
dmalen
textanzeige
enablewindow uname&,0
ELSEIF %wmPaint
dmalen
endif
wend
destroywindow(l_dlg&)
windowstyle 31
endproc
===============================================================================
deinstellungen
whilenot 0
waitinput
if %umessage = 16
case horizontal%=1:rueckschalten
case design%=1:windowsdesign
disponer l_dev#
end
endif
wend
Letzte Problema es, el el Desktobikons no al alten Platz bleiben.
Servus Georg |
| | | | |
| | | Usted ärgert hier möglicherweise sólo el Cds_updateregistry -Flag, y - wofür necesidad el Neustart?
Yo ziehe el Neustartfrage zurück, tener el if übersehen. (y el passiert me) |
| | | | |
| | Frank Abbing | RGH
¡Hola, en esta API después de XProfan umzusetzten, mußt Usted primero wissen, en welcher Windows-DLL ellos steckt. Es en el API-Ayuda para gewöhnlich angegeben y diesem Fall el uxtheme.dll. Der Rückgabewert es una Valor des Typs HTHEME. Das H como erster Buchstabe beudet Handle y una 32-Bit-Betriebssystem es dieses una 32-Bit-Valor, Así que una Longint. Der Parámetro HWND es el Handle des a untersuchenden Fensters. Will uno el Función en XProfan also para la ventana principal aufrufen, así lautet ellos: KompilierenMarcaSeparaciónYo fürchte aber, ellos bringt Usted no más. Zum una hay el DLL sólo de Windows XP y para otro son ellos auch en uno Standard-XP-Oberfläche 0 zurück. [...] Saludo Roland
Wenn el API en el Fall 0 zurück liefert, con welchen Handle muss uno porque entonces más trabajo, si uno weitere uxtheme-Características benutzen voluntad? |
| | | | |
|
RespuestaThemeninformationenDieses Thema ha 7 subscriber: |