Visual Style中的shellstyle.dll文件修改方法
更新時間:2007年05月13日 00:00:00 作者:
Visual Style中的shellstyle.dll文件修改
2007-3-8 11:25:00
作者: Silencer
shellstyle.dll修改 *部分內(nèi)容參考自whistl3r的Shellstyle Tutorial
預(yù)備知識
1.shellstyle.dll的結(jié)構(gòu)
UIFiles:
UIFile1:定義窗體及任務(wù)列表樣式
UIFile2:定義控制面板樣式
Resources:資源文件列表
10,11,12:音樂文件夾
13,14,15:圖片文件夾
16,17,18:查找
19,20,21:視頻文件夾
22,26:控制面板
25:系統(tǒng)文件夾
100,101,102,103,104,105,106,107:面板打開/關(guān)閉按鈕
110,112:面板頂欄
120:背景
Strings:定義常用字符串或數(shù)值(字體,字號)
CPWEBVW.CSS:定義用戶帳戶窗體樣式
2.資源的使用
rcstr(Str_ID)
Str_ID:Strings中編號
rcbmp(BMP_ID, STRETCHING, TRANSPARENT_COLOR, WIDTH, HEIGHT, SIZE_FLAG, MIRROR)
BMP_ID:Resources中編號
STRETCHING: 填充方式 1 = 正常, 3, = 重復(fù), 6 = 拉伸, 7 = 32bit位圖
TRANSPARENT_COLOR: 填充時忽略的顏色 #RRGGBB
WIDTH, HEIGHT:寬度,高度
SIZE_FLAG: 圖像大小 1 = 使用圖片默認(rèn)大小, 0 = 使用指定的大小
MIRROR: 反轉(zhuǎn) 0 = 正常, 1 = 反轉(zhuǎn)
rcint(Str_ID) //將字符串轉(zhuǎn)為數(shù)值
Str_ID:Strings中編號
Dtb(handlemap(a),b,c) //猜測是一種獲取當(dāng)前主題中圖像的方法,但a,b,c各值所代表的圖像不是很明確
sysmetric(ID) //系統(tǒng)變量表
ID可取值:
0 Screen width
1 Screen height
2 Width of sizable window frame
3 Height of sizable window frame
4 Width of scroll arrows on vertical scroll bar
5 Height of scroll arrows on vertical scroll bar
6 Width of scroll arrows on horizontal scroll bar
7 Height of scroll arrows on horizontal scroll bar
8 Height of window title
9 Width of non-sizable window frame
10 Height of non-sizable window frame
11 Width of DOUBLE or PANEL window frame
12 Height of DOUBLE or PANEL window frame
13 Scroll box width on horizontal scroll bar in text editing windows
14 Scroll box height on vertical scroll bar in text editing windows
15 Minimized window icon width
16 Minimized window icon height
17 Maximum insertion point width
18 Maximum insertion point height
19 Single-line menu bar height
20 Maximized window width
21 Maximized window height
22 Kanji window height
23 Minimum sizable window width
24 Minimum sizable window height
25 Minimum window width
26 Minimum window height
27 Window controls width
28 Window controls height
29 1 if mouse hardware present; otherwise 0
30 1 for Microsoft Windows debugging version; otherwise 0
31 1 if mouse buttons swapped; otherwise 0
32 Width of a button in a half-caption window's caption or title bar
33 Height of half-caption window caption area
核心部分
UIFile的編寫
UIFile中的內(nèi)容是許多結(jié)構(gòu)為
<style resid=***>
...
Element [id=atom(*****)]
{...}
Element [id=atom(*****)]
{...}
...
...
</style>
的代碼段,用于定義特定部分的樣式及其內(nèi)部元素的樣式
其中可包含的屬性有
contentalign: //元素位置??捎幸韵轮?
top: topleft, topright, topcenter
middle: middleleft, middleright, middlecenter
bottom: bottomleft, bottomright, bottomcenter
wrap: wrapleft, wrapright, wrapcenter //只可用于文本
background: //背景顏色
foreground: //前景顏色
bordercolor: //邊界顏色 這3個屬性可有以下值
rgb(red,green,blue) //RGB顏色
argb(alpha,red,green,blue) //包含alpha通道
gradient(argb(alpha,red,green,blue), argb(alpha,red,green,blue), Direction) //漸變色,第1個顏色變量為左上,第2個右下 Driection:方向 0 = 水平, 1 = 垂直
black, white, red, green, blue, ... //直接描述
window, windowtext, buttonface, buttonshadow, buttonlight, buttontext, scrollbar, hotlight, activecaption, captiontext... //系統(tǒng)顏色
fontsize: //字號
使用Strings表中值
fontface: //字體
使用Strings表中值
fontstyle: //字體樣式
使用normal, bold, italic, underline等制
borderthickness: rect(left,top,right,bottom); //邊框?qū)挾?
margin: rect(left,top,right,bottom); //縮放時保持不變的邊緣寬度
padding: rect(left,top,right,bottom); //元素位置
以XP默認(rèn)主題Luna的UIFile1為例
<style resid=main> //主窗體
DUIListView [id=atom(listview)] //列表瀏覽
{
contentalign: middlecenter;
fontsize: sysmetric(-16); //sysmetric是系統(tǒng)變量表,對應(yīng)的變量類型見前表
fontweight: sysmetric(-17);
fontstyle: sysmetric(-18);
fontface: sysmetricstr(6);
}
DUIAxHost [id=atom(preview)] //幻燈片瀏覽
{
contentalign: middlecenter;
borderthickness: rect(20rp,20rp,20rp,20rp);
bordercolor: rgb(255,0,0);
}
Element
{
background: argb(0,0,0,0);
}
Element [id=atom(blockade)] //系統(tǒng)文件夾
{
background: rgb(99,117,214);
borderthickness: rect(0rp,0rp,1rp,1rp);
bordercolor: white;
}
Element [id=atom(blockadeaccent)] //主窗口與側(cè)邊欄間的分割線
{
background: gradient(argb(0,148,187,255), argb(0,99,117,214), 1);
}
Element [id=atom(blockadeclient)] //系統(tǒng)文件夾背景圖片
{
contentalign: bottomright;
padding: rect (10rp,0rp,0rp,0rp);
}
Element [id=atom(blockadetitle)] //標(biāo)題("這些文件是隱藏的")
{
fontface: rcstr(2);
fontsize: rcint(18)pt;
fontweight: rcint(11);
foreground: rgb(214,223,245);
background: argb(0,0,0,0);
padding: rect (0rp,20rp,10rp,0rp);
contentalign: wrapleft;
}
Element [id=atom(blockademessage)] //標(biāo)題("此文件夾包含使您系統(tǒng)...")
{
fontface: rcstr(2);
fontsize: rcint(17)pt;
fontweight: rcint(12);
foreground: white;
background: argb(0,0,0,0);
padding: rect (1rp,15rp,10rp,0rp);
contentalign: wrapleft;
}
Element [id=atom(blockadeclear)] //"顯示此文件夾內(nèi)容"一般狀態(tài)
{
margin: rect(0rp,20rp,0rp,0rp);
}
Button [id=atom(blockadeclearbutton)][keyfocused] //"顯示此文件夾內(nèi)容"鍵盤觸發(fā)
{
contentalign: focusrect;
}
Element [id=atom(blockadecleartext)]
{
fontface: rcstr(1);
fontsize: rcint(15)pt;
fontweight: rcint(10);
foreground: white;
background: argb(0,0,0,0);
contentalign: wrapleft;
padding: rect (3rp,0rp,0rp,0rp);
}
Element [id=atom(blockadecleartext)][mousefocused] //"顯示此文件夾內(nèi)容"鼠標(biāo)觸發(fā)
{
cursor: hand;
fontstyle: underline;
}
</style>
//以下各塊中元素不再贅述,功能請參閱whistl3r的Shellstyle Tutorial
<style resid=mainsectionss>
<style resid=mainsectiontaskss>
<style resid=sectionss>
<style resid=sectiontaskss>
<style resid=taskpane>
<style resid=NameSpaceItemInfoList>
2007-3-8 11:25:00
作者: Silencer
shellstyle.dll修改 *部分內(nèi)容參考自whistl3r的Shellstyle Tutorial
預(yù)備知識
1.shellstyle.dll的結(jié)構(gòu)
UIFiles:
UIFile1:定義窗體及任務(wù)列表樣式
UIFile2:定義控制面板樣式
Resources:資源文件列表
10,11,12:音樂文件夾
13,14,15:圖片文件夾
16,17,18:查找
19,20,21:視頻文件夾
22,26:控制面板
25:系統(tǒng)文件夾
100,101,102,103,104,105,106,107:面板打開/關(guān)閉按鈕
110,112:面板頂欄
120:背景
Strings:定義常用字符串或數(shù)值(字體,字號)
CPWEBVW.CSS:定義用戶帳戶窗體樣式
2.資源的使用
rcstr(Str_ID)
Str_ID:Strings中編號
rcbmp(BMP_ID, STRETCHING, TRANSPARENT_COLOR, WIDTH, HEIGHT, SIZE_FLAG, MIRROR)
BMP_ID:Resources中編號
STRETCHING: 填充方式 1 = 正常, 3, = 重復(fù), 6 = 拉伸, 7 = 32bit位圖
TRANSPARENT_COLOR: 填充時忽略的顏色 #RRGGBB
WIDTH, HEIGHT:寬度,高度
SIZE_FLAG: 圖像大小 1 = 使用圖片默認(rèn)大小, 0 = 使用指定的大小
MIRROR: 反轉(zhuǎn) 0 = 正常, 1 = 反轉(zhuǎn)
rcint(Str_ID) //將字符串轉(zhuǎn)為數(shù)值
Str_ID:Strings中編號
Dtb(handlemap(a),b,c) //猜測是一種獲取當(dāng)前主題中圖像的方法,但a,b,c各值所代表的圖像不是很明確
sysmetric(ID) //系統(tǒng)變量表
ID可取值:
0 Screen width
1 Screen height
2 Width of sizable window frame
3 Height of sizable window frame
4 Width of scroll arrows on vertical scroll bar
5 Height of scroll arrows on vertical scroll bar
6 Width of scroll arrows on horizontal scroll bar
7 Height of scroll arrows on horizontal scroll bar
8 Height of window title
9 Width of non-sizable window frame
10 Height of non-sizable window frame
11 Width of DOUBLE or PANEL window frame
12 Height of DOUBLE or PANEL window frame
13 Scroll box width on horizontal scroll bar in text editing windows
14 Scroll box height on vertical scroll bar in text editing windows
15 Minimized window icon width
16 Minimized window icon height
17 Maximum insertion point width
18 Maximum insertion point height
19 Single-line menu bar height
20 Maximized window width
21 Maximized window height
22 Kanji window height
23 Minimum sizable window width
24 Minimum sizable window height
25 Minimum window width
26 Minimum window height
27 Window controls width
28 Window controls height
29 1 if mouse hardware present; otherwise 0
30 1 for Microsoft Windows debugging version; otherwise 0
31 1 if mouse buttons swapped; otherwise 0
32 Width of a button in a half-caption window's caption or title bar
33 Height of half-caption window caption area
核心部分
UIFile的編寫
UIFile中的內(nèi)容是許多結(jié)構(gòu)為
<style resid=***>
...
Element [id=atom(*****)]
{...}
Element [id=atom(*****)]
{...}
...
...
</style>
的代碼段,用于定義特定部分的樣式及其內(nèi)部元素的樣式
其中可包含的屬性有
contentalign: //元素位置??捎幸韵轮?
top: topleft, topright, topcenter
middle: middleleft, middleright, middlecenter
bottom: bottomleft, bottomright, bottomcenter
wrap: wrapleft, wrapright, wrapcenter //只可用于文本
background: //背景顏色
foreground: //前景顏色
bordercolor: //邊界顏色 這3個屬性可有以下值
rgb(red,green,blue) //RGB顏色
argb(alpha,red,green,blue) //包含alpha通道
gradient(argb(alpha,red,green,blue), argb(alpha,red,green,blue), Direction) //漸變色,第1個顏色變量為左上,第2個右下 Driection:方向 0 = 水平, 1 = 垂直
black, white, red, green, blue, ... //直接描述
window, windowtext, buttonface, buttonshadow, buttonlight, buttontext, scrollbar, hotlight, activecaption, captiontext... //系統(tǒng)顏色
fontsize: //字號
使用Strings表中值
fontface: //字體
使用Strings表中值
fontstyle: //字體樣式
使用normal, bold, italic, underline等制
borderthickness: rect(left,top,right,bottom); //邊框?qū)挾?
margin: rect(left,top,right,bottom); //縮放時保持不變的邊緣寬度
padding: rect(left,top,right,bottom); //元素位置
以XP默認(rèn)主題Luna的UIFile1為例
<style resid=main> //主窗體
DUIListView [id=atom(listview)] //列表瀏覽
{
contentalign: middlecenter;
fontsize: sysmetric(-16); //sysmetric是系統(tǒng)變量表,對應(yīng)的變量類型見前表
fontweight: sysmetric(-17);
fontstyle: sysmetric(-18);
fontface: sysmetricstr(6);
}
DUIAxHost [id=atom(preview)] //幻燈片瀏覽
{
contentalign: middlecenter;
borderthickness: rect(20rp,20rp,20rp,20rp);
bordercolor: rgb(255,0,0);
}
Element
{
background: argb(0,0,0,0);
}
Element [id=atom(blockade)] //系統(tǒng)文件夾
{
background: rgb(99,117,214);
borderthickness: rect(0rp,0rp,1rp,1rp);
bordercolor: white;
}
Element [id=atom(blockadeaccent)] //主窗口與側(cè)邊欄間的分割線
{
background: gradient(argb(0,148,187,255), argb(0,99,117,214), 1);
}
Element [id=atom(blockadeclient)] //系統(tǒng)文件夾背景圖片
{
contentalign: bottomright;
padding: rect (10rp,0rp,0rp,0rp);
}
Element [id=atom(blockadetitle)] //標(biāo)題("這些文件是隱藏的")
{
fontface: rcstr(2);
fontsize: rcint(18)pt;
fontweight: rcint(11);
foreground: rgb(214,223,245);
background: argb(0,0,0,0);
padding: rect (0rp,20rp,10rp,0rp);
contentalign: wrapleft;
}
Element [id=atom(blockademessage)] //標(biāo)題("此文件夾包含使您系統(tǒng)...")
{
fontface: rcstr(2);
fontsize: rcint(17)pt;
fontweight: rcint(12);
foreground: white;
background: argb(0,0,0,0);
padding: rect (1rp,15rp,10rp,0rp);
contentalign: wrapleft;
}
Element [id=atom(blockadeclear)] //"顯示此文件夾內(nèi)容"一般狀態(tài)
{
margin: rect(0rp,20rp,0rp,0rp);
}
Button [id=atom(blockadeclearbutton)][keyfocused] //"顯示此文件夾內(nèi)容"鍵盤觸發(fā)
{
contentalign: focusrect;
}
Element [id=atom(blockadecleartext)]
{
fontface: rcstr(1);
fontsize: rcint(15)pt;
fontweight: rcint(10);
foreground: white;
background: argb(0,0,0,0);
contentalign: wrapleft;
padding: rect (3rp,0rp,0rp,0rp);
}
Element [id=atom(blockadecleartext)][mousefocused] //"顯示此文件夾內(nèi)容"鼠標(biāo)觸發(fā)
{
cursor: hand;
fontstyle: underline;
}
</style>
//以下各塊中元素不再贅述,功能請參閱whistl3r的Shellstyle Tutorial
<style resid=mainsectionss>
<style resid=mainsectiontaskss>
<style resid=sectionss>
<style resid=sectiontaskss>
<style resid=taskpane>
<style resid=NameSpaceItemInfoList>
您可能感興趣的文章:
- shell對比文件內(nèi)容腳本分享
- 批量轉(zhuǎn)換目錄下文件編碼的shell腳本代碼
- linux下保留文件系統(tǒng)下剩余指定數(shù)目文件的shell腳本
- shell去掉文件中空行(空白行)的方法詳解
- shell判斷文件,目錄是否存在或者具有權(quán)限的代碼
- 使用ShellClass獲取文件屬性詳細(xì)信息的實現(xiàn)方法
- 判斷文件是否存在的shell腳本代碼
- 合并一個文件夾下多個文件內(nèi)容的單行shell命令
- 查找目錄下同名但不同后綴名文件的shell腳本代碼
- 在指定目錄查找指定后綴文件的shell腳本代碼
- shell查找當(dāng)前目錄下大于1M的文件的三種方法分享
- 后臺實時分流文件的shell腳本
- 找出文件中包含指定字段的文件的shell腳本
- Byshell后門:無進(jìn)程無DLL無硬盤文件
- shell替換文件中的文件路徑腳本分享
相關(guān)文章
voipdiscount:免費(fèi)的全能網(wǎng)絡(luò)電話
voipdiscount:免費(fèi)的全能網(wǎng)絡(luò)電話...2006-08-08釋放C盤(系統(tǒng)盤)空間的27招優(yōu)化技巧
釋放C盤(系統(tǒng)盤)空間的27招優(yōu)化技巧...2006-08-08