LEVEL 3

- 积分
- 13
- 金币
- 485 枚
- 威望
- 0 点
- 金镑
- 0 个
- 银币
- 0 枚
- 舍利
- 0 枚
- 注册时间
- 2006-8-13
- 最后登录
- 2022-11-25
|
1楼
大 中
小 发表于 2011-6-30 00:16 只看该作者
QQ2011 beta3正式版绿色精简美化优化版
版主留言韋尐旭(2011-7-3 20:55): http://www.huacolor.com/soft/38797.html
| 转载原址 | |
说在前面:继上次发布原创QQ后有很长时间了,这次更新一个新版本。还是感谢各位坛友关心和斑竹亲自验证。
软件类别:联络聊天 - QQ软件区
软件大小:40.0 MB
软件授权:免费版
软件类别:绿色软件
软件语言:简体中文
应用平台:Win9X/2000/XP/2003/
关于主面板宽度锁定记忆的问题:
目前已经发现是LoginPanel.dll锁定登录中最小宽度,现在只需要破解该dll中的最小宽度,即可实现记忆主面板宽度,敬请等待好消息。已经在和童话在探讨这个问题,他貌似已经搞定了~
本修改版首先要感谢童话和Spark等人。部分下面列出的优化需配合QQ优化小工具进行修改,已经打包进下载包。
一、文件性能优化修改:
1.去dll校验、加入本地SSO、群多图、抖隐身
2.精简扫描组件、广告插件、报告组件以及自动更新组件等不必要的文件(保留TXOPShow.exe弹出卡片新闻,如需去除删除TXOPShow.exe即可)
3.精简插件,默认保留语音、视频、邮件、网盘、QQ秀、VIP及其选项、QQ空间、远程协助、好友映像、微博、天气、好友社交插件。为方便大家定制所需插件同时不必要再下载插件包,因此插件全部包含(禁用的插件保存在插件文件夹里的Backup文件夹中,需要恢复的插件直接移出去即可)。建议使用插件管理器,dragOn的作品,已经打包进安装包了。不需要插件管理器的,直接删除QQPluginMgr.exe与QQPluginMgr.xml即可
4.字节修改,屏蔽大部分电脑管家和安全检查
5.屏蔽自动升级统计文件夹
6.彻底屏蔽QQ安全扫描 (在小程序里操作)
7.添加网盘、相册注册相关dll,不需要额外下载安装(可选注册与反注册,在小程序里操作可还原)
8.添加桌面便签补丁,如需要打上补丁即可。不需要的可以不打补丁,或者彻底删除\Bin\ark文件夹即可。
9.添加魔法表情补丁,可选择恢复
10.使用旧版QQ网盘插件,完全去除QQ硬盘 (普通用户没什么用)
二、界面修改(登录、登录过度、主面板、聊天、迷你资料卡、查找界面等):
1.登录界面:
1.1.去除登录界面安全提示。竖版登录界面没有任何安全提示和条幅(完美),横版下方则有去除安全提示后的白条(添加几个扫描数据文件可解决,不过这不是最完美的方法,等待解决,不影响使用)
1.2.登录界面更改安全登录为登录,去除安全登录小图标
1.3.屏蔽登陆节日界面(在小程序里操作可还原)
2.登录过度界面:
2.1.屏蔽登录过渡框下方图片链接(在小程序里操作可还原)
3.主面板界面:
3.1.字节修改应用盒子里的默认图标,只保留通讯录和网络硬盘,其他图标添加相应插件即会出现
3.2.去除主面板和设置的帮助按钮
3.3.去除主面板安全图标按钮
3.4.去除主界面最小宽度限制
4.好友聊天、群聊天界面:
4.1.去除好友聊天界面中应用按钮下拉菜单中的手机免费聊QQ图标
4,2.去除聊天界面魔法表情按钮
4.3.去除群聊天界面休闲小游戏和群直播图标
4.4.屏蔽QQ祈福之类小图标(在小程序里操作可还原)
4.5.屏蔽QQ群热点,群团购之类页面,不写权限不改HOST(在小程序里操作可还原)
4.6.屏蔽QQ群相册快照临时文件(在小程序里操作可还原)
4.7.去除“交谈中请勿....软件”提示
5.群、好友迷你资料卡界面:
5.1.彻底去除好友迷你资料卡原QQ秀框及其位置,聊天侧边栏QQ秀不受影响,取决与是否有QQ秀插件(注:去掉了QQ秀插件后,建议如下设置:设置--好友和聊天--总是显示好友聊天窗口侧边栏勾去掉),同时加长个性签名显示长度
5.2.彻底去除群迷你资料卡图片及其位置
5.3. 群资料卡信息修改默认显示3行
5.4.去除迷你资料卡和个人设置面板中图标管理中的业务图标中安全达人、QQ管家之类的安全图标(其他显示这些图标的地方也不会有)
6.查找界面:
6.1.去除查找联系人窗口左侧去广告后的空白区域
三、QQ优化小程序:
可以选择优化项目同时可以恢复优化,c++ builder编译。插件管理器看见有现成的,就没有在程序中添加,而且也很简单。(帖子最下面给出小程序源码)
PS:考虑到有部分朋友需要显IP插件,有朋友已经发布,效果不错,需要的可以下载,解压即可使用,本版QQ不集成任何插件,见谅。
PS2:关于QQShow不更新的问题,已制作补丁恢复QQShow(下载后拷入QQ安装目录,和bin同一文件夹下,右键选择解压到当前文件夹运行批处理即可)
QQShow恢复补丁:http://u.115.com/file/e61wycag#QQShow.rar
四、图片预览:
五、下载地址:
QQ2011 beta3修改版:
http://u.115.com/file/e607bfud#QQ2011.rar
QQ2011 beta2修改版:
http://u.115.com/file/bh1d4chj#QQ.rar
六、小程序源码:
复制内容到剪贴板 代码:
//.h
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <SysUtils.hpp>
#include <Dbghelp.h>
#include <windows.h>
#include <Registry.hpp>
#include <stdio.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TGroupBox *GroupBox;
TCheckBox *CheckBox[8];
AnsiString appdata = getenv("APPDATA");
AnsiString temp = getenv("temp");
AnsiString CurPath = GetCurrentDir();
AnsiString Bin = CurPath + "\\Bin";
AnsiString QQ = appdata + "\\Tencent\\QQ";
AnsiString QQPhotoDrawEx = Bin + "\\QQPhotoDrawEx.dll";
AnsiString npQQPhotoDrawEx = Bin + "\\npQQPhotoDrawEx.dll";
AnsiString TXFTNActiveX = Bin + "\\TXFTNActiveX.dll";
AnsiString path[10]={QQ + "\\AuTemp",QQ + "\\Misc\\GroupAlbumSnapshot",QQ +"\\Misc\\LNN",QQ + "\\Misc\\LogoFile",QQ + "\\Misc\\OAPanelLogo",QQ + "\\Temp\\gm",QQ + "\\Misc\\GMF",CurPath + "\\Bin",QQ+"\\SafeBase",appdata+"\\Tencent\\QQDoctor"};
AnsiString filename[13]= {temp + "\\qqsafeud.exe",temp + "\\selfupdate.exe",temp + "\\tf000001.tsd",temp + "\\tm000001.tsd",temp + "\\tseh.dat",temp + "\\tsehres.dat",temp + "\\tseloder.dat",temp + "\\tsengine.dat",temp + "\\tssafeedit.dat",temp + "\\tsvulengine.dat",temp + "\\tsvulinc.dat",temp + "\\tvl00000.tvl",temp + "tvl00001.tvl"};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
bool DeleteDirectoryEx(const AnsiString &P)
{
if(P.IsEmpty()||P.Length()<4)
return false;//参数长度必须大于3,即不能为磁盘根目录或空白
int len=P.Length();
char *Path=P.c_str();
AnsiString Dir=Path;
if(Path[len-1]!='\\')
Dir=Dir+'\\';
AnsiString Files=Dir + "*.*";
WIN32_FIND_DATA wfd;
HANDLE hFind=FindFirstFile(Files.c_str(),&wfd);
bool Ret=true;
AnsiString Tmp;
if(hFind!=INVALID_HANDLE_VALUE)
{
bool bFind=true;
while(bFind)
{
if(wfd.cFileName[0]!='.') //排除.与..
{
Tmp = Dir + wfd.cFileName;
if(wfd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) //递归删除所有子目录
Ret = Ret && DeleteDirectoryEx(Tmp.c_str());
else
{//删除所有文件,属性设置为Normal
SetFileAttributes(Tmp.c_str(),FILE_ATTRIBUTE_NORMAL);
Ret = Ret && DeleteFile(Tmp.c_str());
}
}
bFind = FindNextFile(hFind,&wfd);
}
FindClose(hFind);
}
if(Ret)
return RemoveDirectory(Path);
return false;
}
//---------------------------------------------------------------------------
bool CreateDirectoryEx(const AnsiString &path)
{
PCSTR str = path.SubString(1,path.LastDelimiter("\\\")).c_str();
return MakeSureDirectoryPathExists(str);
}
//---------------------------------------------------------------------------
void CreateFileSD(const AnsiString &Filepath,DWORD AccessMask = GENERIC_WRITE ,bool ChooseDenied = true)
{
HANDLE file;
SECURITY_ATTRIBUTES sa; //和文件有关的安全结构
SECURITY_DESCRIPTOR sd; //声明一个SD
BYTE aclBuffer[1024];
PACL pacl=(PACL)&aclBuffer; //声明一个ACL,长度是1024
BYTE sidBuffer[100];
PSID psid=(PSID) &sidBuffer; //声明一个SID,长度是100
DWORD sidBufferSize = 100;
char domainBuffer[80];
DWORD domainBufferSize = 80;
SID_NAME_USE snu;
//初始化SD
InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
//初始化ACL
InitializeAcl(pacl,1024,ACL_REVISION);
//查找用户,并取得用户SID
LookupAccountName(0,"Everyone",psid,&sidBufferSize,domainBuffer,&domainBufferSize,&snu);
//设置该用户的Access-Allowed或Access-Denied的ACE,其权限为只读或可读写
if(ChooseDenied)
AddAccessDeniedAce(pacl,ACL_REVISION,AccessMask,psid);
else
AddAccessAllowedAce(pacl,ACL_REVISION,AccessMask,psid);
//把ACL设置到SD中
SetSecurityDescriptorDacl(&sd,TRUE,pacl,FALSE);
//把SD放到文件安全结构SA中
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = FALSE;
sa.lpSecurityDescriptor = &sd;
file = CreateFile(Filepath.c_str(),NULL,FILE_SHARE_READ,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,0);
CloseHandle(file);
}
//---------------------------------------------------------------------------
void DeleteAD(const AnsiString &path)
{
if(DirectoryExists(path))
{
if(DeleteDirectoryEx(path))
CreateFileSD(path.c_str(),GENERIC_ALL,false);
}
else
{
CreateDirectoryEx(path);
CreateFileSD(path.c_str(),GENERIC_ALL,false);
}
}
//---------------------------------------------------------------------------
bool RegisterDLLOrNot(AnsiString DLL,bool isReg = true)
{
HINSTANCE hLib = LoadLibrary(DLL.c_str());
if(hLib == NULL)
{
MessageBox(0, "不能载入Dll文件!", "结果", MB_OK);
return false;
}
//获取注册函数DllRegisterServer or DllUnregisterServer地址
FARPROC lpDllEntryPoint = NULL;
if(isReg)
lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer");
else
lpDllEntryPoint = GetProcAddress(hLib, "DllUnregisterServer");
//调用注册函数DllRegisterServer or DllUnRegisterServer
if(lpDllEntryPoint != NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
FreeLibrary(hLib);
return false;
}
MessageBox(0, "注册或者反注册成功", "结果", MB_OK);
}
else
MessageBox(0, "调用DllRegisterServer或DllUnregisterServer失败!", "结果", MB_OK);
FreeLibrary(hLib);
return true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
if(Application->MessageBox("该工具是否放置到QQ安装目录下与Bin文件夹相同目录?如没有请点取消!","QQ优化小工具",MB_OKCANCEL)==1)
{
GroupBox = new TGroupBox(Form1);
GroupBox->Parent = Form1;
GroupBox->Top = 10;
GroupBox->Left = 10;
GroupBox->Height = 200;
GroupBox->Width = 260;
GroupBox->Caption = "功能优化列表";
GroupBox->Visible = true;
for(int i=0;i<10;++i)
{
CheckBox = new TCheckBox(GroupBox);
CheckBox->Parent = GroupBox;
CheckBox->Height = 17;
CheckBox->Top = 17+17*i;
CheckBox->Left = 17;
CheckBox->Width = 200;
CheckBox->Visible = true;
}
CheckBox[0]->Caption="屏蔽QQ自动升级文件";
CheckBox[0]->Checked = true;
CheckBox[1]->Caption="屏蔽QQ群相册快照临时文件";
CheckBox[2]->Caption="屏蔽QQ祈福之类小图标";
CheckBox[3]->Caption="屏蔽登陆界面节日";
CheckBox[4]->Caption="屏蔽登录中图片链接";
CheckBox[5]->Caption="屏蔽QQ群页面";
CheckBox[6]->Caption="注册网盘、相册上传dll";
CheckBox[7]->Checked = true;
CheckBox[7]->Caption="彻底屏蔽QQ安全扫描";
CheckBox[8]->Caption="网络备忘录补丁";
CheckBox[9]->Caption="魔法表情补丁";
TButton *Button1 = new TButton(Form1);
TButton *Button2 = new TButton(Form1);
Button1->Parent = Form1;
Button2->Parent = Form1;
Button1->Caption = "执行";
Button2->Caption = "恢复";
Button1->OnClick = Button1Click;
Button2->OnClick = Button2Click;
Button1->Left = 10;
Button1->Top = 215;
Button2->Left = 190;
Button2->Top = 215;
}
else
{
ShowMessage("请放置到QQ安装目录下重新运行次工具");
Application->Terminate();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(int i=0;i<5;++i)
if(CheckBox->Checked)
DeleteAD(path);
if(CheckBox[5]->Checked)
{
DeleteDirectoryEx(path[5]);
DeleteAD(path[6]);
}
if(CheckBox[6]->Checked)
{
RegisterDLLOrNot(QQPhotoDrawEx);
RegisterDLLOrNot(npQQPhotoDrawEx);
RegisterDLLOrNot(TXFTNActiveX);
}
if(CheckBox[7]->Checked)
{
DeleteAD(path[8]);
DeleteAD(path[9]);
for(int j=0;j<13;++j)
CreateFileSD(filename[j]);
}
if(CheckBox[8]->Checked)
{
AnsiString FromPath = CurPath+"\\Misc\\TxApp";
AnsiString ToPath = QQ+"\\TxApp";
int nLengthFrm = strlen(FromPath.c_str());
char *NewPathFrm = new char[nLengthFrm+2];
strcpy(NewPathFrm,FromPath.c_str());
NewPathFrm[nLengthFrm] = '\0';
NewPathFrm[nLengthFrm+1] = '\0';
SHFILEOPSTRUCT FileOp;
ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));
FileOp.fFlags = FOF_NOCONFIRMATION ;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = NewPathFrm;
FileOp.pTo = ToPath.c_str();
FileOp.wFunc = FO_COPY;
SHFileOperation(&FileOp) == 0;
}
if(CheckBox[9]->Checked)
{
AnsiString xtml = CurPath +"\\Resource.1.65.2221\\Xtml.rdb";
ExtractShortPathName(xtml);
FILE *fp = fopen(xtml.c_str(),"rb+");
if(fp!=NULL)
{
//跳到文件开始第x字节处
fseek(fp, 0xA280D,SEEK_SET);
//写入16进制值,
char a = 0x08;
fwrite(&a,sizeof(a),1,fp);
fclose(fp);
}
}
ShowMessage("操作完成,请关闭!"); ShowMessage("操作完成,请关闭!");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for(int i=0;i<5;++i)
{
if(CheckBox->Checked)
{
if(FileExists(path))
DeleteFile(path);
ShowMessage(CheckBox->Caption+"恢复完成");
}
}
if(CheckBox[5]->Checked)
{
if(FileExists(path[6]))
DeleteFile(path[6]);
ShowMessage(CheckBox[5]->Caption+"恢复完成");
}
if(CheckBox[6]->Checked)
{
RegisterDLLOrNot(QQPhotoDrawEx,false);
RegisterDLLOrNot(npQQPhotoDrawEx,false);
RegisterDLLOrNot(TXFTNActiveX,false);
ShowMessage(CheckBox[6]->Caption+"恢复完成");
}
if(CheckBox[7]->Checked)
{
for(int j=0;j<13;++j)
{
CreateFileSD(filename[j],GENERIC_ALL,false);
DeleteFile(filename[j]);
}
ShowMessage(CheckBox[7]->Caption+"恢复完成");
}
if(CheckBox[8]->Checked)
{
AnsiString TxApp = QQ + "\\TxApp";
DeleteDirectoryEx(TxApp);
ShowMessage(CheckBox[8]->Caption+"恢复完成");
}
if(CheckBox[9]->Checked)
{
AnsiString xtml = CurPath +"\\Resource.1.65.2221\\Xtml.rdb";
ExtractShortPathName(xtml);
FILE *fp = fopen(xtml.c_str(),"rb+");
if(fp!=NULL)
{
//跳到文件开始第x字节处
fseek(fp, 0xA280D,SEEK_SET);
//写入16进制值,
char a = 0x08;
fwrite(&a,sizeof(a),1,fp);
fclose(fp);
}
}
ShowMessage("操作完成,请关闭!");
[ 本帖最后由 zdm 于 2011-6-30 00:18 编辑 ]
|