Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Pascal: Delphi: tarkastaa onko XP themet käytössä käyttöjärjestelmässä?

doze [22.02.2005 04:40:23]

#

Kuinka voi tarkastaa onko XP theme käytössä käyttöjärjestelmässä tai onko se edes saatavilla (vanhemmat käyttöjärjestelmät).

Metabolix [22.02.2005 12:05:33]

#

Kirjoita "Windows.Ver" ja katso, mitä siihen aukeaa. Niistä palikoista saat selville, mikä Windows on käytössä. Teemoista en tiedä, mutta veikkaanpa, että ohjelma, joka edes saattaisi käyttää XP:n teemoihin liittyviä asioita, ei edes käynnisty vanhemmilla Windowseilla, mutta ainahan sitä voi kokeilla tai yrittää kiertää DLL-viritelmillä...

doze [25.02.2005 01:52:08]

#

Kyllä sellanen ohjelma käynnistyy vanhemmillakin windowseilla mihin on tehty XP teemojen tuki.. XP teemathan sovellukseen saa käyttöön ihan vaan luomalla XP manifestin vaikka samalla tiedostonimellä kuin exe, mutta manifest loppu. Ohjelman käynnistyessä windows xp osaa automaattisesti kattoa onko manifestia saatavilla ja lukee sieltä sitten sovelluksen julkasutiedot jos saatavilla, sekä laittaa XP teemat käyttöön. Se manifest filu on vaan tavallinen XML tiedosto josta XP kaivaa jotain haluamaansa. En oo takemmin sen sielun elämään tutustunu, katsoin vain tiedosto mallin tuolta:

http://delphi.about.com/library/bluc/text/uc111601a.htm

Siinä se includataan resourcena exeen suoraan, mutta voi tehdä niinkin tosiaan että tekee vain ohjelma.manifest tiedoston siihen ohjelma.exe hakemistoon. Helppo tehdä ohjelman kautta runtimessäki, ni voi asetuksiin laittaa mahdollisuuden käyttäjille itse valita että haluaako xp teeman softaan vai ei.. jokkut tykkää muhkummasta ;)

Niin ja sen, että onko theme serviceä saatavilla käyttöjärjestelmässä voi tarkistaa siten, että lisää Themes uses lauseeseen ja käyttää:

if Themeservices.ThemesAvailable then
...

Tuolla voi sit tehdä tarkastuksen, että vanhemmis käyttöjärjestelmis tulee vaan ilmotus, että käyttöjärjestelmä ei tue XP teemoja.

ja UXThemes:stä löytyy semmoset kun IsAppThemed ja IsThemeActive

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta