Visual Style中的shellstyle.dll文件修改方法
作者:
Visual Style中的shellstyle.dll文件修改方法
Visual Style中的shellstyle.dll文件修改
2007-3-8 11:25:00
作者: Silencer
shellstyle.dll修改 *部分内容参考自whistl3r的Shellstyle Tutorial
预备知识
1.shellstyle.dll的结构
UIFiles:
UIFile1:定义窗体及任务列表样式
UIFile2:定义控制面板样式
Resources:资源文件列表
10,11,12:音乐文件夹
13,14,15:图片文件夹
16,17,18:查找
19,20,21:视频文件夹
22,26:控制面板
25:系统文件夹
100,101,102,103,104,105,106,107:面板打开/关闭按钮
110,112:面板顶栏
120:背景
Strings:定义常用字符串或数值(字体,字号)
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, = 重复, 6 = 拉伸, 7 = 32bit位图
TRANSPARENT_COLOR: 填充时忽略的颜色 #RRGGBB
WIDTH, HEIGHT:宽度,高度
SIZE_FLAG: 图像大小 1 = 使用图片默认大小, 0 = 使用指定的大小
MIRROR: 反转 0 = 正常, 1 = 反转
rcint(Str_ID) //将字符串转为数值
Str_ID:Strings中编号
Dtb(handlemap(a),b,c) //猜测是一种获取当前主题中图像的方法,但a,b,c各值所代表的图像不是很明确
sysmetric(ID) //系统变量表
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中的内容是许多结构为
<style resid=***>
...
Element [id=atom(*****)]
{...}
Element [id=atom(*****)]
{...}
...
...
</style>
的代码段,用于定义特定部分的样式及其内部元素的样式
其中可包含的属性有
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... //系统颜色
fontsize: //字号
使用Strings表中值
fontface: //字体
使用Strings表中值
fontstyle: //字体样式
使用normal, bold, italic, underline等制
borderthickness: rect(left,top,right,bottom); //边框宽度
margin: rect(left,top,right,bottom); //缩放时保持不变的边缘宽度
padding: rect(left,top,right,bottom); //元素位置
以XP默认主题Luna的UIFile1为例
<style resid=main> //主窗体
DUIListView [id=atom(listview)] //列表浏览
{
contentalign: middlecenter;
fontsize: sysmetric(-16); //sysmetric是系统变量表,对应的变量类型见前表
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)] //系统文件夹
{
background: rgb(99,117,214);
borderthickness: rect(0rp,0rp,1rp,1rp);
bordercolor: white;
}
Element [id=atom(blockadeaccent)] //主窗口与侧边栏间的分割线
{
background: gradient(argb(0,148,187,255), argb(0,99,117,214), 1);
}
Element [id=atom(blockadeclient)] //系统文件夹背景图片
{
contentalign: bottomright;
padding: rect (10rp,0rp,0rp,0rp);
}
Element [id=atom(blockadetitle)] //标题("这些文件是隐藏的")
{
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)] //标题("此文件夹包含使您系统...")
{
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)] //"显示此文件夹内容"一般状态
{
margin: rect(0rp,20rp,0rp,0rp);
}
Button [id=atom(blockadeclearbutton)][keyfocused] //"显示此文件夹内容"键盘触发
{
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] //"显示此文件夹内容"鼠标触发
{
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修改 *部分内容参考自whistl3r的Shellstyle Tutorial
预备知识
1.shellstyle.dll的结构
UIFiles:
UIFile1:定义窗体及任务列表样式
UIFile2:定义控制面板样式
Resources:资源文件列表
10,11,12:音乐文件夹
13,14,15:图片文件夹
16,17,18:查找
19,20,21:视频文件夹
22,26:控制面板
25:系统文件夹
100,101,102,103,104,105,106,107:面板打开/关闭按钮
110,112:面板顶栏
120:背景
Strings:定义常用字符串或数值(字体,字号)
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, = 重复, 6 = 拉伸, 7 = 32bit位图
TRANSPARENT_COLOR: 填充时忽略的颜色 #RRGGBB
WIDTH, HEIGHT:宽度,高度
SIZE_FLAG: 图像大小 1 = 使用图片默认大小, 0 = 使用指定的大小
MIRROR: 反转 0 = 正常, 1 = 反转
rcint(Str_ID) //将字符串转为数值
Str_ID:Strings中编号
Dtb(handlemap(a),b,c) //猜测是一种获取当前主题中图像的方法,但a,b,c各值所代表的图像不是很明确
sysmetric(ID) //系统变量表
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中的内容是许多结构为
<style resid=***>
...
Element [id=atom(*****)]
{...}
Element [id=atom(*****)]
{...}
...
...
</style>
的代码段,用于定义特定部分的样式及其内部元素的样式
其中可包含的属性有
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... //系统颜色
fontsize: //字号
使用Strings表中值
fontface: //字体
使用Strings表中值
fontstyle: //字体样式
使用normal, bold, italic, underline等制
borderthickness: rect(left,top,right,bottom); //边框宽度
margin: rect(left,top,right,bottom); //缩放时保持不变的边缘宽度
padding: rect(left,top,right,bottom); //元素位置
以XP默认主题Luna的UIFile1为例
<style resid=main> //主窗体
DUIListView [id=atom(listview)] //列表浏览
{
contentalign: middlecenter;
fontsize: sysmetric(-16); //sysmetric是系统变量表,对应的变量类型见前表
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)] //系统文件夹
{
background: rgb(99,117,214);
borderthickness: rect(0rp,0rp,1rp,1rp);
bordercolor: white;
}
Element [id=atom(blockadeaccent)] //主窗口与侧边栏间的分割线
{
background: gradient(argb(0,148,187,255), argb(0,99,117,214), 1);
}
Element [id=atom(blockadeclient)] //系统文件夹背景图片
{
contentalign: bottomright;
padding: rect (10rp,0rp,0rp,0rp);
}
Element [id=atom(blockadetitle)] //标题("这些文件是隐藏的")
{
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)] //标题("此文件夹包含使您系统...")
{
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)] //"显示此文件夹内容"一般状态
{
margin: rect(0rp,20rp,0rp,0rp);
}
Button [id=atom(blockadeclearbutton)][keyfocused] //"显示此文件夹内容"键盘触发
{
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] //"显示此文件夹内容"鼠标触发
{
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对比文件内容脚本分享
- 批量转换目录下文件编码的shell脚本代码
- linux下保留文件系统下剩余指定数目文件的shell脚本
- shell去掉文件中空行(空白行)的方法详解
- shell判断文件,目录是否存在或者具有权限的代码
- 使用ShellClass获取文件属性详细信息的实现方法
- 判断文件是否存在的shell脚本代码
- 合并一个文件夹下多个文件内容的单行shell命令
- 查找目录下同名但不同后缀名文件的shell脚本代码
- 在指定目录查找指定后缀文件的shell脚本代码
- shell查找当前目录下大于1M的文件的三种方法分享
- 后台实时分流文件的shell脚本
- 找出文件中包含指定字段的文件的shell脚本
- Byshell后门:无进程无DLL无硬盘文件
- shell替换文件中的文件路径脚本分享