Autoexec system

From Miranda NG
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Other languages:

Autoexec is a system for batch addition of multiple settings to the database. The goal is to provide a flexible ability for bulk-setting of many database settings.

Put code to autoexec_<anyname>.ini (name template can be changed, see [AutoExec] section of Mirandaboot.ini) and place that file to Miranda root folder.

Also see Mirandaboot.ini for additional autoexec-related settings.

;This is a sample file showing how the autoexec system works

;This file does *not* become part of the database - it is only read
;and imported by Miranda, then discarded.

;Short intro to the capabilities of the Miranda database:
;The database stores 4 different types of information:
; 1) Contacts. These are merely structural, they don't actually store any
;    info themselves. There is a 'me' contact and zero or more real contacts.
;    Each contact contains settings and events.
; 2) Settings. These are quadruplets: module name, setting name, data type,
;    data value. More on these later because that's what all this is about.
; 3) Events. History events and suchlike.
; 4) Module names. An internal structure for space efficiency. Forget this, I
;    just included it for completeness.

;The autoexec system is for changing settings belonging to the 'me' contact,
;because that's where all the preferences are stored. Nothing else can be
;altered using this file.

;You should probably use DbEditor++ because that can display and change all
;the settings in the database (including those belonging to the other contacts).

;More on those quadruplets:
;Consider, for example, the background bitmap of the contact tree. If you look
;in the options you'll see that there are three basic settings controlling it:
;Whether to use that or a solid color, the filename to use, and a mass of
;check boxes.
;These three categories map on to three database settings that you can see
;with database editor.
;"CLC" is the module name, and "UseBitmap", "BkBitmap", "BkBmpUse" are the
;setting names.
;Clicking on the "UseBitmap" setting you'll see the final two parts of the
;setting: type and value. In this case type is a byte, and the value is 0 or 1.

;Everything is case sensitive, and the type of the setting is just as important
;as its name. If you give a setting a type other than that which Miranda
;expects things will go badly. There are five different types: byte, word,
;double-word are the three numeric ones of various magnitudes; strings for
;textual data; and blobs for variable-length binary data.

;The encoding of "BkBmpUse" will probably have you baffled, so you can either
;peruse clcopts.c to figure out what's going on or, far easier, set what you
;want and just copy the value down.

;Note about security:
;This file clearly makes it possible to sneak in a change to a user's ICQ
;login server, for instance, while you change their color scheme. This could
;be used to glean UINs and passwords without their knowledge.
;Miranda has security in place that means the user will be warned before any
;changes are made to the settings of modules that are not known to be safe.
;The default settings and how to change them are documented in mirandaboot.ini

;Note that some parts of Miranda won't notice changes on-the-fly, so it will
;be necessary to restart Miranda before the changes take effect.

;The example that follows, then, is a heavily annotated script to provide a
;new background bitmap for the contact list and set the text color to yellow.
;It's assumed that you have packaged background.bmp in a .zip with this file
;and provided the user with instructions to dump both files in their Miranda
;directory.

[CLC]   ;settings from here to the next change will apply to the "CLC" module.

;Assign the byte 1 to the setting "UseBitmap". b stands for byte.
;There must be no space around the equals sign or after the b.
UseBitmap=b1

;s stands for string.
BkBitmap=sbackground.bmp

;w is for word. The 3 I just copied out of database editor. It means stretch to
;width and height.
BkBmpUse=w3

;Font0 is the 'standard contacts' setting on the list text options page.
;Font0Col, therefore, is the color setting of that font.
;d is for dword.
;The 0x prefix is signifying this number as hexadecimal. You can also prefix
;0 to use octal, and negative numbers work too.
;ffff00 you will recognize as yellow from your HTML experience.
Font0Col=d0xffff00

;--end of example--

;There are two data types that haven't been used here: blob and delete.
;Delete is easy: just use e.g., "BkColour=l" (that's a lowercase L). This example
;causes the background solid color to be the same color as the users choice
;for 3D objects facing straight on, e.g., most of the taskbar.
;Blobs are of the form "Font=n03 f5 2a" where those are hexadecimal pairs
;representing each byte to set.

;The final thing to note is that there are settings that it is possible to
;change using this file, but that you'll wreck consistency if you do so. It's
;obvious the settings where this is the case, the typical example being
;the whole CListGroups module. Luckily you don't want to change any of the
;settings where this is a problem.

;--Module and setting deletion--

;This module will be completely removed with all the settings it contains.
;Starting from 0.95.12 you can also use "-" instead of "?".
[?YAPP]

;Only this particular setting will be removed.
[Tipper]
Border=-