QQ皮肤都是免费的 QQ皮肤,又称“qq肌肤”,是QQ外形登录模式的一种“QQ美容”虚拟表达软件手段。 怎样在QQ皮肤编辑器里增加项目: 简单地来说,QQ皮肤分三大块:在QQ皮肤目录下存放一些相关的图片(ICO格式)、图标(BMP格式)等资源;在config.xml文件中定义这些资源的属性;在VBScript文件调用这些资源并定义相关功能。可以看出,config.xml文件和VBScript文件是整个皮肤文件的核心。下面我们来认识一下这两个文件: 一、认识config.xml文件 1.面板的最小宽度、最小高度、最大宽度、最大高度 其中 minWidth="120" 中的数值120就代表面板的最小宽度; minHeight="240" 中的数值240就代表面板的最小高度; maxWidth="1280" 中的数值1280就代表面板的最大宽度; maxHeight="1024" 中的数值1024就代表面板的最大高度. 要调整面板的最小宽度、最小高度、最大宽度、最大高度,只需调整相应的数值即可。 网上所说的可随意调整面板大小其实就是将minWidth和minHeight的值调到最小,将maxWidth和maxHeight的值调到屏幕的最大分辨率。对一般人来说,上面的数值基本上可以做到随意调整面板大小了。 clippingColor和backgroundColor在修改皮肤时用不着,不用管它,下同。 2.按钮的属性 (这一部分主要了解按钮各个属性的含义,对按钮定义的格式先不管,后面会提到) (1)先以“关闭”按钮为例: 其中 Button 是关键字; id 指按钮的名称。每个Button id对应皮肤面板上的某一个按钮(就好比每个身份证号对应世界上的某一个人一样)。注意每个按钮的Button id是唯一的(就好比每个人的身份证号是唯一的)。 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小秘书”按钮为例: 上面提到的属性这里就不再罗嗦了。 ico 指按钮所对应的图标,引号中是一个扩展名为.ico的图标文件; cx 、cy 分别指按钮到皮肤面板最左边和最上边的距离。这两个值具体是多少根据具体皮肤而定。如果实在不知道自己的皮肤应该取多大的值,那就先不管。 leftPadding 指图标或者Label相对于按钮定义位置的水平偏移量。水平偏移量为正整数,则向右边偏移;水平偏移量为负整数,则向左边偏移; 不知道什么是“Label”?不知道什么是“按钮定义位置”?不知道什么是“水平偏移量”?不好意思,偶语文没学好,表达能力太差。下面听偶慢慢道来。 Label是指图标旁边的数字或者文字。在这里Label是指QQ小秘书图标右边的“(0)“字样。 举个例子来解释“按钮定义位置”和“水平偏移量”吧。 代码中的(82,48)就是按钮HostingButton的按钮定义位置,其实就是就是按钮HostingButton在面板上的坐标。“按钮定义位置”是偶自己起的名字(“难怪看不懂,兄弟们,贬他!!!”“求求你们,不要打偶的脸好吗?……”)。 代码 中leftPadding="0"的含义是:按钮HostingButton的图标HostingButton.ico在按钮定义位置的基础上水平向左偏移0,偏移以后的位置就是图标HostingButton.ico在皮肤面板中的实际位置; 代码 中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格式,则该按钮对应的代码形式如下: (2)若按钮所对应的图标文件为Ico格式,并且该按钮有Label,则该按钮对应的代码形式如下: (3)若按钮所对应的图标文件为Ico格式,并且该按钮没有Label,则该按钮对应的代码形式如下: 说明:省略号(……)中可以补充上2中提到的各种属性。 文本、图片等与按钮类似,这里不再赘述。 其实我们只要掌握到以下程度即可: (1)给出一个按钮,能在config.xml文件中找到相应的代码; (2)稍微了解一点按钮各个属性的含义。 出个题目考考你:如何在QQ2005正式版原版皮肤中的config.xml文件中找到TT浏览器对应的代码。 答案: 首先将鼠标放到皮肤面板中的TT浏览器的图标上,会看到TT浏览器的toolTip为“腾讯TT浏览器”; 然后用记事本打开config.xml文件,利用记事本的 “编辑”-》“查找”菜单找到“腾讯TT浏览器”所在的位置; “腾讯TT浏览器”前后有那么多代码,到底TT浏览器对应的代码从哪里开始,又到哪里结束呢?这就要用到“按钮的定义”那一节中的内容了。将“腾讯TT浏览器”前后的代码和“按钮的定义”那一节中的三种形式一一对照,发现和形式(3)相对应。下面再确定TT浏览器对应代码段的起始点就很容易了。 TT浏览器在config.xml文件中对应的代码为 其实对config.xml文件比较了解以后你可以直接找出这段代码。 如果这道题难不住你,那么恭喜你!请继续往下看; 如果这道题做不出来,建议还是再把前面的内容看一下。 二、认识VBScript文件 相信大部分菜鸟没有VBScrip基础,因此这一部分完全可以跳过。在修改皮肤时我会尽量避开VBScript的知识,如果实在避不开,必要时会把代码的模板给出来,大家只需要修改其中的一两处就可以了。 不过还是建议大家学一点VBScrip的基础知识。毕竟,我们不仅要知其然,更要知其所以然。 关于VBScript文件,这里我只说三点: 1. 定义变量 在VBScript文件的最前面,有下面一段代码: Dim UserNum Dim UserStatus Dim Path Dim strQQMailTip Dim ShowStatus Dim foldbottom Dim bMsgInside Dim CurrentWidth Dim CurrentHeight Dim PlugMngHeight Dim PlugCloseState Dim PetState 这就是定义变量的代码。 如果需要定义自己的变量名的话,按以下格式定义就可以了: Dim 变量名 很简单吧? 其实VBScript只有一种数据类型(比C语言简单多了),而且我们只用隐式定义变量的数据类型(就是上面这种形式)。 2.定义按钮在面板中的位置 按钮大致可以分为两大类: 一类按钮是靠左上角对齐的(即不论皮肤怎么拉伸,该按钮到皮肤面板最左边或最上边的距离始终保持不变); 一类按钮是靠右下角对齐的(即不论皮肤怎么拉伸,该按钮到皮肤面板最右边或最下边的距离始终保持不变)。 这两类按钮的位置都需要在config.xml文件中定义,但是第二类按钮还需要在VBScript文件中定义。定义格式如下: 按钮名称.left =cx - 按钮到皮肤面板最右边的距离 或 按钮名称.top =cy - 按钮到皮肤面板最下边的距离 在config.xml和VBScript定义了按钮的位置以后,按钮就可以在面板中显示出来,但是此时点击按钮并没有反映,因为此时按钮的功能还没有定义。 3. 定义按钮的功能函数 定义按钮的功能函数的格式如下: Sub 函数名() End Sub 以聊天室为例: Sub ChatRoomButton_onClick() Window.ExeCommand 4,1 End Sub onClick 的意思就是当鼠标点击的时候所做的动作, 这里执行的是 Window.ExeCommand 动作。你也可以定义其他动作。 Window.ExeCommand具体含义如下: 1,1 皮肤菜单 1,2 最小化 1,3 关闭 4,1 聊天室 4,2 发送手机短信 4,3 查找 4,4 腾讯浏览器 4,5 QQ游戏 4,6 信息管理器 4,7 颜色 4,8 个人帐户 4,9 面板选择 4,10 Mail相关 50,1 显示信息 60,2 个人设置 7,1 QQ邮件 15,1 QQ小秘书 再以IP升级器为例: sub IPButton_onClick() tmp="showip.exe" Set fso = CreateObject("Scripting.FileSystemObject") If (fso.FileExists(tmp)) Then Set objShell = CreateObject("Wscript.Shell") objShell.Run tmp else msgbox "发现错误啦!" & chr(10) & "找不到QQ安装目录下的showip.exe文件",,"错误提示" end if End Sub 说明一点: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邮箱”所对应的代码为: 并记下“QQ邮箱”所对应的id :MailButton; 第二步,将config.xml文件中“QQ邮箱”所对应的代码(即上面这段代码)删除,保存修改; 第三步,用记事本打开VBScript文件,以Mail(即“QQ邮箱”的id去掉后面的Button)为关键字进行搜索,就会在VBScript文件中查找到与“QQ邮箱”相关的代码,有以下5处: 代码1:Dim strQQMailTip 代码2:strQQMailTip = "" 代码3:MailButton.label = strQQMailTip 代码4:Sub MailButton_onClick() Window.ExeCommand 7,1 End Sub 代码5: ElseIf code = 100 Then '改变QQMail的提示 if( var = 0 ) then strQQMailTip = "(" + "0" + ")" else strQQMailTip = "(" + CStr(var) + ")" end if 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按钮的属性”)。如果在第一步中没有图标、图片等资源,在这里可以将组件定义为文本,文本的代码模板为: (注:各属性的取值可以参考其他组件) 还有一个更简单的方法:把别的按钮或文本的代码COPY过来,然后将相关属性的值改成自己的。 也许有人会问,添加的代码要放到config.xml文件中具体什么位置呢?只要遵守以下两条规则,代码存放的位置是任意的。 规则一:在config.xml文件的开头有这样一段代码: 在config.xml文件的结尾有这样一段代码: 添加的代码要位于上述两段代码之间。 规则二:添加的代码不能“拆散”已有组件的代码。例如有如下代码: 我们添加的代码可以位于这段代码之前,也可以位于这段代码之后,但千万不要加在这段代码的中间。 第三步,在VBScript文件调用这些资源并定义相关功能。 如果组件是靠右下角对齐的(跳过第二部分的现在返回去看一下第二部分的第2点:2.定义按钮在面板中的位置。很容易看懂的),还要在VBScript文件中定义组件的位置。定义组件位置的代码添加到什么位置呢?在VBScript文件中找到以下代码: SearchButton.top = cy - 25 MsgManagerButton.top = cy – 25 将定义组件位置的代码添加到上面这段代码的下一行。 下面来定义组件的功能函数。 功能函数的代码模板是: sub IPButton_onClick() tmp="showip.exe" Set fso = CreateObject("Scripting.FileSystemObject") If (fso.FileExists(tmp)) Then Set objShell = CreateObject("Wscript.Shell") objShell.Run tmp else msgbox "发现错误啦!" & chr(10) & "找不到QQ安装目录下的showip.exe文件",,"错误提示" end if End Sub 这其实是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:\Program Files\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的皮肤是没有数量限制的,可以想做多少就做多少。