您现在的位置是:首页 > 理科知识查询 > 数理化学

qq皮肤的

编辑:chaxungu时间:2022-09-28 08:31:37分类:数理化学

qq皮肤,又称“qq肌肤”,是qq外形登录模式的一种“qq美容”虚拟表达软件手段。

怎样在qq皮肤编辑器里增加项目:

简单地来说,qq皮肤分三大块:在qq皮肤目录下存放一些相关的图片(ico格式)、图标(bmp格式)等资源;在config.xml文件中定义这些资源的属性;在vbscript文件调用这些资源并定义相关功能。可以看出,config.xml文件和vbscript文件是整个皮肤文件的核心。下面我们来认识一下这两个文件:

一、认识config.xml文件

1.面板的最小宽度、最小高度、最大宽度、最大高度
<windowminwidth="120"minheight="240"maxwidth="1280"maxheight="1024"clippingcolor="#ff00ff"backgroundcolor="#ff00ff">
其中minwidth="120"中的数值120就代表面板的最小宽度;
minheight="240"中的数值240就代表面板的最小高度;
maxwidth="1280"中的数值1280就代表面板的最大宽度;
maxheight="1024"中的数值1024就代表面板的最大高度.
要调整面板的最小宽度、最小高度、最大宽度、最大高度,只需调整相应的数值即可。
网上所说的可随意调整面板大小其实就是将minwidth和minheight的值调到最小,将maxwidth和maxheight的值调到屏幕的最大分辨率。对一般人来说,上面的数值基本上可以做到随意调整面板大小了。
clippingcolor和backgroundcolor在修改皮肤时用不着,不用管它,下同。

2.按钮的属性
(这一部分主要了解按钮各个属性的含义,对按钮定义的格式先不管,后面会提到)

(1)先以“关闭”按钮为例:
<buttonid="closebutton"left="149"top="5"width="16"height="16"zindex="6"tooltip="关闭"cursor="hand.cur"visible="true"image="closebutton_normal.bmp"hoverimage="closebutton_hover.bmp"downimage="closebutton_down.bmp"horizontalalignment="stretch"verticalalignment="stretch"/>
其中
button是关键字;
id指按钮的名称。每个buttonid对应皮肤面板上的某一个按钮(就好比每个身份证号对应世界上的某一个人一样)。注意每个按钮的buttonid是唯一的(就好比每个人的身份证号是唯一的)。
left、top分别指按钮到皮肤最左边和最上边的距离。这两个值具体是多少根据具体皮肤而定。如果实在不知道自己的皮肤应该取多大的值,那就先不管。
width、height分别指按钮的宽度和高度。一般情况下,这两个值的大小与按钮对应的图标大小一致即可(例如关闭按钮所对应三个图标closebutton_normal.bmp、closebutton_hover.bmp、closebutton_down.bmp,这三个图标大小为16*16,故width、height的值分别为16、16))。注意,同一个按钮所对应的图标的大小要一致(例如关闭按钮所对应三个图标closebutton_normal.bmp、closebutton_hover.bmp、closebutton_down.bmp大小均为16*16)。
zindex指图层的上下顺序。zindex的值越大,图标越靠上,靠上的会挡住靠下的(例如如果若干个不同的按钮定义在皮肤面板上的同一个位置,则zindex值最大的按钮会显示出来,其他按钮将会被覆盖。这就叫做“狭路相逢勇者胜”,呵呵)。
tooltip指鼠标放在按钮上时出现的提示信息。这个可以随便改(你可以把tooltip改成一些搞怪的话语,以后有人做出qq皮肤搞怪版也说不定)。
cursor指鼠标放在按钮上时鼠标的样式(例如当鼠标放到关闭按钮上时,就会由箭头变成一只小手),引号中是一个扩展名为.cur的鼠标样式文件。
visible指按钮的可见性,true表示可见,false表示不可见。
image、hoverimage、downimage、disabledimage指按钮在不同状态下(如鼠标放在按钮上、鼠标按下按钮等等)显示的图标。
有些按钮中还有transparencycolor属性,这是透明色的定义,如果图标上有这种颜色,则处理为透明色。
horizontalalignment和verticalalignment在修改皮肤时用不着,不用管它,下同。

(2)再以“qq小秘书”按钮为例:
<buttonid="hostingbutton"left="82"top="48"width="40"height="16"zindex="27"tooltip="qq小秘书"cursor="hand.cur"visible="true">
<iconico="hostingbutton.ico"cx="16"cy="16"horizontalalignment="left"verticalalignment="center"leftpadding="0"toppadding="0"/>
<labellabelvalue="(0)"color="#071e81"hovercolor="#ffffff"fontfamily="mssansserif"fontsize="8"fontstyle=""fontweight="400"horizontalalignment="left"verticalalignment="center"leftpadding="18"toppadding="0"/>
</button>
上面提到的属性这里就不再罗嗦了。
ico指按钮所对应的图标,引号中是一个扩展名为.ico的图标文件;
cx、cy分别指按钮到皮肤面板最左边和最上边的距离。这两个值具体是多少根据具体皮肤而定。如果实在不知道自己的皮肤应该取多大的值,那就先不管。
leftpadding指图标或者label相对于按钮定义位置的水平偏移量。水平偏移量为正整数,则向右边偏移;水平偏移量为负整数,则向左边偏移;

不知道什么是“label”?不知道什么是“按钮定义位置”?不知道什么是“水平偏移量”?不好意思,偶语文没学好,表达能力太差。下面听偶慢慢道来。
label是指图标旁边的数字或者文字。在这里label是指qq小秘书图标右边的“(0)“字样。
举个例子来解释“按钮定义位置”和“水平偏移量”吧。
代码<buttonid="hostingbutton"left="82"top="48"……>中的(82,48)就是按钮hostingbutton的按钮定义位置,其实就是就是按钮hostingbutton在面板上的坐标。“按钮定义位置”是偶自己起的名字(“难怪看不懂,兄弟们,贬他!!!”“求求你们,不要打偶的脸好吗?……”)。
代码<iconico=……leftpadding="0"……/>中leftpadding="0"的含义是:按钮hostingbutton的图标hostingbutton.ico在按钮定义位置的基础上水平向左偏移0,偏移以后的位置就是图标hostingbutton.ico在皮肤面板中的实际位置;
代码<labellabelvalue……leftpadding="18"……/>中leftpadding="18"的含义是:按钮hostingbutton的label“(0)”在按钮定义位置的基础上水平向左偏移18,偏移以后的位置就是图标label“(0)”在皮肤面板中的实际位置;
这里的0、18就是“水平偏移量”。
这里要把按钮hostingbutton的按钮定义位置、按钮hostingbutton的图标hostingbutton.ico的位置、按钮hostingbutton的label“(0)”的位置区分开来。
这一段写得比较晦涩,实在看不懂就算了,不影响皮肤的修改。

toppadding指图标或者label相对于按钮定义位置的垂直偏移量。垂直偏移量为正整数,则向下边偏移;垂直偏移量为负整数,则向上边偏移;
labelvalue指label的内容;
color指label的颜色;
hovercolor指鼠标放在label上时label的颜色;
fontfamily指label的字体;
fontsize指label的字体大小;
fontstyle指label的字体风格;
fontweight指label的字体高度。

3.按钮的定义
由2中举的两个例子可以总结出按钮的定义有以下几种形式。

(1)若按钮所对应的图标文件为bmp格式,则该按钮对应的代码形式如下:
<button……image="*.bmp"hoverimage="*.bmp"downimage="*.bmp"……/>

(2)若按钮所对应的图标文件为ico格式,并且该按钮有label,则该按钮对应的代码形式如下:
<button……>
<icon……/>
<label……>
</button>

(3)若按钮所对应的图标文件为ico格式,并且该按钮没有label,则该按钮对应的代码形式如下:
<button……>
<icon……/>
</button>

说明:省略号(……)中可以补充上2中提到的各种属性。
文本、图片等与按钮类似,这里不再赘述。
其实我们只要掌握到以下程度即可:
(1)给出一个按钮,能在config.xml文件中找到相应的代码;
(2)稍微了解一点按钮各个属性的含义。
出个题目考考你:如何在qq2005正式版原版皮肤中的config.xml文件中找到tt浏览器对应的代码。
答案:
首先将鼠标放到皮肤面板中的tt浏览器的图标上,会看到tt浏览器的tooltip为“腾讯tt浏览器”;
然后用记事本打开config.xml文件,利用记事本的“编辑”-》“查找”菜单找到“腾讯tt浏览器”所在的位置;
“腾讯tt浏览器”前后有那么多代码,到底tt浏览器对应的代码从哪里开始,又到哪里结束呢?这就要用到“按钮的定义”那一节中的内容了。将“腾讯tt浏览器”前后的代码和“按钮的定义”那一节中的三种形式一一对照,发现和形式(3)相对应。下面再确定tt浏览器对应代码段的起始点就很容易了。
tt浏览器在config.xml文件中对应的代码为

<buttonid="ttbutton"left="60"top="448"height="16"width="16"zindex="20"visible="true"cursor="ttbutton.cur"tooltip="腾讯tt浏览器">
<iconico="ttbutton.ico"horizontalalignment="left"/>
</button>
其实对config.xml文件比较了解以后你可以直接找出这段代码。

如果这道题难不住你,那么恭喜你!请继续往下看;
如果这道题做不出来,建议还是再把前面的内容看一下。

二、认识vbscript文件
相信大部分菜鸟没有vbscrip基础,因此这一部分完全可以跳过。在修改皮肤时我会尽量避开vbscript的知识,如果实在避不开,必要时会把代码的模板给出来,大家只需要修改其中的一两处就可以了。
不过还是建议大家学一点vbscrip的基础知识。毕竟,我们不仅要知其然,更要知其所以然。
关于vbscript文件,这里我只说三点:

1.定义变量
在vbscript文件的最前面,有下面一段代码:
dimusernum
dimuserstatus
dimpath
dimstrqqmailtip
dimshowstatus
dimfoldbottom
dimbmsginside
dimcurrentwidth
dimcurrentheight
dimplugmngheight
dimplugclosestate
dimpetstate
这就是定义变量的代码。
如果需要定义自己的变量名的话,按以下格式定义就可以了:
dim变量名
很简单吧?
其实vbscript只有一种数据类型(比c语言简单多了),而且我们只用隐式定义变量的数据类型(就是上面这种形式)。

2.定义按钮在面板中的位置
按钮大致可以分为两大类:
一类按钮是靠左上角对齐的(即不论皮肤怎么拉伸,该按钮到皮肤面板最左边或最上边的距离始终保持不变);
一类按钮是靠右下角对齐的(即不论皮肤怎么拉伸,该按钮到皮肤面板最右边或最下边的距离始终保持不变)。
这两类按钮的位置都需要在config.xml文件中定义,但是第二类按钮还需要在vbscript文件中定义。定义格式如下:
按钮名称.left=cx-按钮到皮肤面板最右边的距离

按钮名称.top=cy-按钮到皮肤面板最下边的距离
在config.xml和vbscript定义了按钮的位置以后,按钮就可以在面板中显示出来,但是此时点击按钮并没有反映,因为此时按钮的功能还没有定义。

3.定义按钮的功能函数
定义按钮的功能函数的格式如下:
sub函数名()
endsub
以聊天室为例:
subchatroombutton_onclick()
window.execommand4,1
endsub
onclick的意思就是当鼠标点击的时候所做的动作,这里执行的是window.execommand动作。你也可以定义其他动作。
window.execommand具体含义如下:
window.execommand1,1老式皮肤选择菜单(无颜色及透明度选项)
window.execommand1,2最小化
window.execommand1,3关闭
window.execommand2,0好友面板
window.execommand2,1腾讯服务面板
window.execommand2,2手机好友面板
window.execommand2,3企业qq好友面板
window.execommand3,1
window.execommand4,1聊天室
window.execommand4,2短信
window.execommand4,3添加联系人
window.execommand4,4tt
window.execommand4,5游戏
window.execommand4,6信息管理器
window.execommand4,7颜色变换
window.execommand4,8我的钱包界面
window.execommand4,9所有面板选择菜单
window.execommand5,菜单按钮x.菜单按钮y主菜单
window.execommand6,菜单按钮x.菜单按钮y更改状态菜单
window.execommand7,1qq邮件
window.execommand15,0小秘书
window.execommand19,0面板管理界面
window.execommand23,0老式面板选择菜单
window.execommand24,0qq音乐、qq搜索菜单
window.execommand25,0qq音乐
window.execommand26,0qq直播程序
再以ip升级器为例:
subipbutton_onclick()
tmp="showip.exe"
setfso=createobject("scripting.filesystemobject")
if(fso.fileexists(tmp))then
setobjshell=createobject("wscript.shell")
objshell.runtmp
else
msgbox"发现错误啦!"&chr(10)&"找不到qq安装目录下的showip.exe文件",,"错误提示"
endif
endsub
说明一点:ip升级器即使定义了功能按钮,点击的时候仍然没有反映。这是因为ip升级器调用了外部程序(showip.exe),而qq自带的vbscript.dll文件并不支持这一点,所以要对vbscript.dll文件进行修改。这也是为什么用我修改的qq皮肤还要覆盖原版qq中的vbscript.dll文件的原因。

三、删除组件
对于原版皮肤或别人发布的皮肤,皮肤中的每一个组件我们不可能都使用,我们完全可以删除自己不需要的组件,diy出完全属于自己的个性皮肤。
删除多余组件的步骤是:
第一步,用记事本打开config.xml文件,找到多余组件所对应的代码(具体怎么找,在第一部分末尾讲得很清楚,不再罗嗦),并记下该组件所对应的id;
第二步,将config.xml文件中该组件对应的代码删除,保存修改;
第三步,用记事本打开vbscript文件,以该组件的id去掉后面的button等字样(若有的话)为关键字进行搜索,就会在vbscript文件中查找到与该组件相关的代码,将其删除,保存修改;
第四步,将qq皮肤目录下与该组件有关的图标删除(如果不知道删除哪个图标,这一步完全可以省去,不影响修改效果);
第五步,重新加载皮肤,效果就会生效。
说明:(1)在删除组件后,组件间的间隔可能会不一致,影响整个面板的美观。这时可以在config.xml文件中修改相邻组件的left属性,直到自己满意为止。
(2)在上面几步全部做完以后再加载皮肤,不然你会被弹出来的错误消息吓一跳的。
(3)每次修改保存以后,要重新加载皮肤才能使修改效果生效。
(4)万一你重新加载皮肤的时候弹出vbscript文件错误,千万不要慌,这个错误提示中提示具体哪一行出了错,你再到那一行或者那一行的邻行去查找原因(空行也算是一行)。
下面以删除原版皮肤中“qq邮箱”为例:
第一步,用记事本打开config.xml文件,找到“qq邮箱”所对应的代码为:

<buttonid="mailbutton"left="54"top="48"width="40"height="16"zindex="28"tooltip="收发邮件"cursor="mailbutton.cur"visible="true">
<iconico="mailbutton.ico"cx="16"cy="16"horizontalalignment="left"verticalalignment="center"leftpadding="0"toppadding="1"/>
<labellabelvalue="(0)"color="#071e81"hovercolor="#ffffff"fontfamily="mssansserif"fontsize="8"fontstyle=""fontweight="400"horizontalalignment="left"verticalalignment="center"leftpadding="18"toppadding="0"/>
</button>

并记下“qq邮箱”所对应的id:mailbutton;
第二步,将config.xml文件中“qq邮箱”所对应的代码(即上面这段代码)删除,保存修改;
第三步,用记事本打开vbscript文件,以mail(即“qq邮箱”的id去掉后面的button)为关键字进行搜索,就会在vbscript文件中查找到与“qq邮箱”相关的代码,有以下5处:
代码1:dimstrqqmailtip
代码2:strqqmailtip=""
代码3:mailbutton.label=strqqmailtip
代码4:submailbutton_onclick()
window.execommand7,1
endsub
代码5:
elseifcode=100then
'改变qqmail的提示
if(var=0)then
strqqmailtip="("+"0"+")"
else
strqqmailtip="("+cstr(var)+")"
endif
mailbutton.label=strqqmailtip

将这五处代码删除,保存修改。
第四步,将qq皮肤目录下与“qq邮箱”有关的图标mailbutton.cur和mailbutton.ico删除(如果不确定,这一步完全可以省去,不影响修改效果);
第五步,重新加载皮肤,qq邮箱就消失了。这时候皮肤面板上面部分图标间隔不一,很不美观,这时候你可以在config.xml文件中修改相邻组件“qq小秘书”的left属性,直到自己满意为止。

四、添加组件
如果你在修改皮肤时不小心误删了有用组件,或者你下载的别人修改的皮肤中缺少你需要的组件,那么你就要“自己动手,丰衣足食“了。
如果你要添加的组件是原版皮肤中有的,那就好办多了。图标等资源、代码都可以直接从原版皮肤中copy,然后复制到你的皮肤中相应位置就可以了。
如果你要添加的组件原版皮肤中没有,那就按照以下步骤来做:
第一步,将组件所需要的图标(ico格式)、图片(bmp格式)等资源放入到qq皮肤所在目录(如果手头没有相关的图标、图片,自己也不会用photoshop等工具制作,这一步就先跳过,在后面我会提到补救的方法);
第二步,在config.xml文件中定义这些资源的属性。
定义组件属性的格式可以参考第一部分第3点(即“3按钮的定义”),然后在这个格式的基础上添加相关属性,相关属性可以参考第一部分第2点(即“2按钮的属性”)。如果在第一步中没有图标、图片等资源,在这里可以将组件定义为文本,文本的代码模板为:

<textid="…"left="…"top="…"width="…"height="…"zindex="…"value="…"color="…"hovercolor="…"fontfamily="…"fontsize="…"fontweight="…"tooltip="…"cursor="*.cur"active="true"visible="true"link="false"/>
(注:各属性的取值可以参考其他组件)

还有一个更简单的方法:把别的按钮或文本的代码copy过来,然后将相关属性的值改成自己的。
也许有人会问,添加的代码要放到config.xml文件中具体什么位置呢?只要遵守以下两条规则,代码存放的位置是任意的。
规则一:在config.xml文件的开头有这样一段代码:
<?xmlversion="1.0"encoding="gb2312"?><themeversion="1.0">
在config.xml文件的结尾有这样一段代码:
</window>
</theme>
添加的代码要位于上述两段代码之间。
规则二:添加的代码不能“拆散”已有组件的代码。例如有如下代码:
<button……>
<icon……/>
<label……>
</button>
我们添加的代码可以位于这段代码之前,也可以位于这段代码之后,但千万不要加在这段代码的中间。
第三步,在vbscript文件调用这些资源并定义相关功能。
如果组件是靠右下角对齐的(跳过第二部分的现在返回去看一下第二部分的第2点:2.定义按钮在面板中的位置。很容易看懂的),还要在vbscript文件中定义组件的位置。定义组件位置的代码添加到什么位置呢?在vbscript文件中找到以下代码:
searchbutton.top=cy-25
msgmanagerbutton.top=cy╟25
将定义组件位置的代码添加到上面这段代码的下一行。
下面来定义组件的功能函数。
功能函数的代码模板是:

subipbutton_onclick()
tmp="showip.exe"
setfso=createobject("scripting.filesystemobject")
if(fso.fileexists(tmp))then
setobjshell=createobject("wscript.shell")
objshell.runtmp
else
msgbox"发现错误啦!"&chr(10)&"找不到qq安装目录下的showip.exe文件",,"错误提示"
endif
endsub

这其实是ip升级器的代码,我们只需要修改其中几处,就可以变成自己的代码:将第一行的ipbutton改为所添加组件的id;将第二行和第八行中的showip改成外部程序的可执行主程序的名字。
一般皮肤(包括原版皮肤)的vbscript文件中都有下面这句注释:
'处理qq程序发来的事件
将我们修改好的功能函数代码放到这段注释的上面即可。
第四步,修改vbscript.dll文件。
qq自带的vbscript.dll文件并不支持调用了外部程序,所以要使用破解的vbscript.dll文件。这也是为什么用我修改的qq皮肤还要覆盖原版qq中的vbscript.dll文件的原因。

qq皮肤,修改器、皮肤编辑器,网上下载:

方法一:下载qq皮肤编辑器:
qq皮肤编辑器界面亲切、友好,拥有所见即所得编辑环境,方便大家更轻松完成qq皮肤的整个制作过程。此外还提供了皮肤预览,可以更便捷的在qq上随时查看新皮肤的实际效果。

包括内容:
1、皮肤编辑器的各项基本操作方法,如皮肤新建、打开和生成、预览打包等
2、制作皮肤全过程中,用到的皮肤编辑器中的属性设置说明以及部分制作技巧
3、《中国龙》皮肤制作的整个过程介绍

方法二:
做一个完整的qq皮肤需要不少东西,但是最简单的方法是用现成的。先打开qq文件夹(默认路径是c:\programfiles\tencent),再打开skin,新建一个文件夹(名字取好听一点的,呆会儿是要在你的qq中出现的)。然后再打开“蓝色”这个皮肤文件夹,选定名为“skin”的文件,复制,再粘贴到新建的文件夹里。ok,已经做好一半了。
下面我们就可以选择想要的图像了。用右键点击选好的图,选择“目标另存为”,在“保存图片”窗口中把文件名改为“main”,在保存类型下拉框中选“位图(*.bmp)”,然后把文件保存在新建的文件夹里。再点击qq上的“+”,看看,有一个新东西,那就是做的皮肤!
有时候这样做的皮肤会显得有一点比例失调。只要打开新建的那个文件夹,再打开skin文件,把里面的“maxwidth=200”语句改为“maxwidth=400”或者是“maxwidth=500”,然后点qq上的“+”,再点一下新建皮肤,可以把qq拉大到喜欢大小。
说明:
1.选择的图像一定要是位图(bmp)格式;
2.图像文件的名字一定要是“main”;
3.这种方法是用qq自带的“蓝色”皮肤文件夹里的配置设置文件的,由于对于新手,所以在其它方面没有加更多的东西(比如说按钮的设置等);
4.qq的皮肤是没有数量限制的,可以想做多少就做多少。

上一篇:lucent的

下一篇:水杨酸乙酯的