Realization of desktop theme software (knowledge of desktop topics and their management tools)
In Windows Desktop Topics 1.2 I only introduce the function of the software, there may be many readers have been more interested in this software, especially if you are one of them, if you are one of them, then please Continue to see it, let me introduce how I implements the software, this is not a simple example program, I don't plan to list the source code one by one, I mainly put the experience in principle and me. In some experiences in the process of completing the software or lesson, as for specific implementations I will only give some comparison program code, if you are interested in the program you are at http://www.zccfamily.com / zqget / website to download all the source code of the program, you will take it back to study. Ok, don't say more, the text will start here! But before the specific explanation, you need to know the following concepts.
What kind of desktop theme is made from?
Desktop Theme Management Tools?
First, answer the first question, the desktop theme is actually the content described in the desktop topic file, and the desktop theme file is a text file in INI format, which is different from the general INI file is its suffix name (* .theme) The content described in it mainly includes system color, mouse pointer, system sound, desktop icon, system font, desktop wallpaper and style, which constitutes a so-called desktop theme, I will use this software to generate desktop topics. File tells it!
Note:
THIS Theme is created by windows theme 1.2
You can contact http://www.zccfamily.com/zqget/
Friends who are familiar with the ini file know that the semicolon in the INI file is the mark of comments, just like C and Java.
homescreen icon:
[CLSID / {20D04FE0-3AEA-1069-A2D8-08002B30309D} / default]
DefaultValue = C: /Windows/system32/shell32.dll, 15
[CLSID / {450D8FBA-AD25-11D0-98A8-0800361B1103} / default]
DEFAULTVALUE = C: /Windows/system32/shell32.dll, 126
[CLSID / {208D2C60-3AEA-1069-A2D7-08002B30309D} / default]
DEFAULTVALUE = C: /Windows/system32/shell32.dll, 17
[CLSID / {645FF040-5081-101B-9F08-00Aa002F954E} / default]
Full = c: /windows/system32/shell32.dll, 32
EMPTY = C: /Windows/system32/shell32.dll, 31
What to explain here is that in many cases the system is using% VAR% to indicate system variables, such as% systemroot% indicate the system directory,% windir% represents a Windows directory, and this Windows Theme 1.2 does not use this way It uses the full path to the file directly, of course, later I have rewritten my program, and use the system variable logo, I have already passed the source code that readers downloaded.
System color:
[Control Panel / Colors]
ActiveTitle = 0 84 227
Background = 0 78 152HIGHT = 49 106 197
Hilighttext = 255 255 255
Titletext = 255 255 255
WINDOW = 255 255 255
WINDOWTEXT = 0 0 0
Scrollbar = 212 208 200
INACTIVETITITE = 122 150 223
Menu = 255 255 255
Windowframe = 0 0 0
Menutext = 0 0 0 0
ActiveBorder = 212 208 200
INACTIVEBORDER = 212 208 200
AppWorkspace = 128 128 128
Buttonface = 236 233 216
Buttonshadow = 172 168 153
Graytext = 172 168 153
ButtonText = 0 0 0
INACTIVETITETEXT = 216 228 248
Buttonhilight = 255 255 255
Buttondkshadow = 113 111 100
ButtonLight = 241 239 226
INFOTEXT = 0 0 0
INFOWINDOW = 255 255 225
GradientActiveTitle = 61 149 255
GradientinActiveTitle = 157 185 235
The system color is stored in the form of color components, so when writing this program, the color must be converted into a string before you can store, and the sure is the function I write. ColorTorgbstring and RgbstringTocolor implements color objects (TColor) and color characters. The conversion of the string, it is convenient to call only the tube.
mouse cursor:
[Control Panel / Cursors]
Arrow = D: / Program Files / Windows Theme 1.2 / Cursors / Arrow.cur
Help =
AppStarting =
Wait = d: / program files / windows theme 1.2 / cursors / wait_bluemouse.ani
Nwpen =
NO =
Sizens = D: / Program Files / Windows Theme 1.2 / Cursors / Arrow_IL.CUR
Sizewe =
Crosshair =
IBEAM =
Sizenwse =
Sizenesw =
SIZEALL =
UpARROW =
Of course, the storage path of the system mouse pointer also is similar to the desktop icon. Fortunately, I found the early, and solved this problem in advance. In fact, from theory that this should not be called, but the difference is the difference. But I also think that it is better to use system variables, at least portrane is better than pure use paths! In addition, if the reader has seen, the mouse pointer supports (* .cur) file format and (* .ani) Mouse file in the animation file format
Desktop wallpaper with fill styles:
[Control Panel / Desktop]
Wallpaper = c: /windows/web/wallpaper/bliss.bmp
TileWallpaper = 0
WallpaperStyle = 0
Pattern = (NONE)
The desktop theme file does not include desktop wallpapers and padding styles, because many people now like to set the desktop wallpaper as a beautiful icon.
System sound:
[APPEVENTS / Schemes / Apps / .default / .default / .current] DefaultValue =
[APPEVENTS / Schemes / Apps / .default / ActiVatingDocument / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / AppGpFault / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / ccselect / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / Close / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / CriticalBatteryAlarm / .current]
DefaultValue =% SystemRoot% / Media / Windows XP battery is seriously shortage. WAV
[APPEVENTS / Schemes / Apps / .default / DeviceConnect / .current]
DEFAULTVALUE =% SystemRoot% / Media / Windows XP hardware inserted. WAV
[APPEVENTS / Schemes / Apps / .default / DeviceDisconnect / .current]
DefaultValue =% systemroot% / Media / Windows XP hardware delete. WAV
[APPEVENTS / Schemes / Apps / .default / DeviceFail / .current]
DEFAULTVALUE =% systemroot% / Media / Windows XP hardware failure. WAV
[APPEVENTS / Schemes / Apps / .default / EmptyRecyclebin / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / LowbatteryAlarm / .current]
DefaultValue =% SystemRoot% / Media / Windows XP battery is not enough. WAV
[APPEVENTS / Schemes / Apps / .default / Mailbeep / .current]
DEFAULTVALUE =% SystemRoot% / Media / Windows XP Notification. WAV
[APPEVENTS / Schemes / Apps / .default / Maximize / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / MenuCommand / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / MenuPopup / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / minimize / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / MoveMenuItem / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / MSMSGS_Contactonline / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / MSMSGS_NEWALERT / .CURRENT]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / MSMSGS_Newmail / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / MSMSGS_NewMessage / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / Navigating / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / Open / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / PrintComplete / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / Restoredown / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / Restoreup / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / Showband / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / SystemasterSk / .current]
DefaultValue =% SystemRoot% / Media / Windows XP error .wav
[APPEVENTS / Schemes / Apps / .default / SystemExcLamation / .current]
DefaultValue =% SystemRoot% / Media / Windows XP exclamation mark. WAV
[APPEVENTS / Schemes / Apps / .default / SystemExit / .current]
DefaultValue =% SystemRoot% / Media / Windows XP shutdown .wav
[APPEVENTS / Schemes / Apps / .default / SystemHand / .current]
DefaultValue =% SystemRoot% / Media / Windows XP critical termination. WAV
[APPEVENTS / Schemes / Apps / .default / SystemNotification / .current]
DefaultValue =% SystemRoot% / Media / Windows XP Balloons. WAV
[APPEVENTS / Schemes / Apps / .default / SystemQuestion / .current]
DefaultValue =
[APPEVENTS / Schemes / Apps / .default / SystemStart / .current]
DefaultValue =% SystemRoot% / Media / Windows XP boot. WAV
[APPEVENTS / Schemes / Apps / .default / WindowsLogf / .current]
DefaultValue =% SystemRoot% / Media / Windows XP Logout Sound. WAV
[APPEVENTS / Schemes / Apps / .default / Windowslogon / .current]
DefaultValue =% SystemRoot% / Media / Windows XP logo. WAV
System font:
[Control Panel / FONTS]
Mficon = Song | 9 | []
MfcaptionFont = Song | 10 | [fsbold,]
MFSMCAPTIONFONT = Song | 9 | [fsbold,]
Mfmenufont = Song | 9 | []
MfstatusFont = Song | 9 | []
MfMessageFont = Song | 9 | []
[Control Panel / Desktop]
Note that the content in the desktop theme file is not including system font (system font stored in the hkey_current_user / control panel / desktop / windowmetrics button of the registry, there have been six fonts) at least I have never seen such a desktop topic. Document, but my software plus system fonts, the reason is that I consider that my software will increase the package function of the desktop theme so you can share you with your friends. So I added this, and I also wrote the font and string's conversion function fonttoString (TFONT) and StringTOFont (Ansistring Str) function. In fact, when I do this software, I wrote a lot of custom functions for the convenience of the program, which is mainly included in zqfiles.h, zqwindows.h, zqstrings.h, zqgraphics.h, back I am in explaining the program that will use my custom functions in a lot. Desktop Theme Management Tools?
After the desktop theme, the role of the desktop theme management tool is also obvious, that is, analyzing the description of the desktop theme, applies the results of the analysis and the system, and it is necessary to consider the friendlyness of the user interface. The light is functional, the interface is not friendly, so if the reader also implements a similar software, I have to remind it to consider the interface of the program, so that the program interface is developed in software It is very important to play in business, and Microsoft can make such a success. It is very friendly of its program. Sometimes it is better than its competitors, but in the end, it is possible to win. One reason!