L
LSUPER
Unregistered / Unconfirmed
GUEST, unregistred user!
一个非常酷的 Delphi 集成 Visual SourceSafe 的 Experts,吐血推荐!
偶曾尝试自己破解,无奈功力太浅,连他的 asprotected 2.x 的壳都搞不定。
盼望大虾出手,分数不够可以再加。
下载地址:http://www.epocalipse.com/download/VCXD9.zip
网上有 for delphi 7 的“注册伴侣”,注意,我这里要求的是 [red]for Delphi 2005[/red]
附: 3.0 build 128 for delphi 7 的破解“注册伴侣”源码,仅供参考:
library VCXBuddy;
{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }
uses
SysUtils, Windows, ToolsApi, JclRegistry, Classes, Forms;
const
DelphiExpertsKey = 'Software/Borland/Delphi/7.0/Experts';
{$R *.res}
////////////////////////////////////////////////////////////////////////////////
//设计: Linc 2003.10.16
//功能: 删除自己
//参数:
////////////////////////////////////////////////////////////////////////////////
procedure DeleteSelf;
var
BatchFile: TextFile;
BatchFileName, CmdLine: string;
ProcessInfo: TProcessInformation;
StartUpInfo: TStartupInfo;
begin
BatchFileName := ExtractFilePath(ParamStr(0)) + '_delete.bat';
AssignFile(BatchFile, BatchFileName);
Rewrite(BatchFile);
Writeln(BatchFile, ':try');
Writeln(BatchFile, 'del "' + ParamStr(0) + '"');
Writeln(BatchFile,
'if exist "' + ParamStr(0) + '"' + ' goto try');
Writeln(BatchFile, 'del %0');
CloseFile(BatchFile);
FillChar(StartUpInfo, SizeOf(StartUpInfo), $00);
StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
StartUpInfo.wShowWindow := SW_HIDE;
CmdLine := ExtractShortPathName(ParamStr(0));
CmdLine := ExtractFileDir(CmdLine);
CmdLine := BatchFileName + ' ' + CmdLine;
if CreateProcess(nil, PChar(CmdLine), nil, nil,
False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,
ProcessInfo) then
begin
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
end;
end;
procedure DoneExpert; export;
begin
end;
////////////////////////////////////////////////////////////////////////////////
//设计: Linc 2004.07.24
//功能: 实现安装 DLL
//参数:
////////////////////////////////////////////////////////////////////////////////
procedure InstallExpert; export;
var
vcxPath,
vcxFolder,
vcxFile,
strFile: string;
begin
vcxPath := RegReadStringDef(HKEY_CURRENT_USER, DelphiExpertsKey, 'VssConneXion', '');
if SameText('', vcxPath) then
begin
Application.MessageBox('Sorry! VCXBuddy not install yet.', '=^0^=');
Exit;
end;
vcxFolder := ExtractFilePath(vcxPath);
vcxFile := GetModuleName(HInstance);
strFile := ExtractFileName(vcxFile);
strFile := vcxFolder + strFile;
if FileExists(strFile) then DeleteFile(Pchar(strFile));
{
if FileExists(strFile) then
begin
Application.MessageBox('Sorry! Read File Error.', '=^0^=');
Exit;
end;
}
CopyFile(Pchar(vcxFile), Pchar(strFile), False);
{
if not FileExists(strFile) then
begin
Application.MessageBox('Sorry! Copy File Error.', '=^0^=');
Exit;
end;
}
RegDeleteEntry(HKEY_CURRENT_USER, DelphiExpertsKey, 'VssConneXion');
RegWriteString(HKEY_CURRENT_USER, 'Software/EPocalipse/VssConneXion/3.0/Delphi',
'Reg', '/Vv1ps3ehcmc3RmwTRGcTXhPEcz6RVD8UXWs6VDAOOMrYXgDVEp01PR7pthDMPj8oFEDaBVIPiAAj4piKjzDxQ==');
RegWriteString(HKEY_CURRENT_USER, DelphiExpertsKey, 'VCXD7Buddy', strFile);
RegWriteString(HKEY_CURRENT_USER, DelphiExpertsKey, 'VssConneXion', vcxPath);
Application.MessageBox('VCXD7Buddy expert installed.', '=^0^=');
end;
////////////////////////////////////////////////////////////////////////////////
//设计: Linc 2004.07.24
//功能: 实现删除 DLL
//参数:
////////////////////////////////////////////////////////////////////////////////
procedure RemoveExpert; export;
var
strFile: string;
begin
strFile := RegReadStringDef(HKEY_CURRENT_USER, DelphiExpertsKey, 'VCXD7Buddy', '');
RegDeleteEntry(HKEY_CURRENT_USER, DelphiExpertsKey, 'VCXD7Buddy');
SysUtils.DeleteFile(strFile);
{
DeleteSelf;
}
Application.MessageBox('VCXD7Buddy expert removed.', '=^0^=');
end;
function InitExpert(const BorlandIDEServices: IBorlandIDEServices;
RegisterProc: TWizardRegisterProc;
var Terminate: TWizardTerminateProc): Boolean;
var
DllHandle: THandle;
Adr, Adr1: PByte;
exePath: string;
const
exeName = 'VCXD7.dll';
begin
Result := True;
exePath := ExtractFilePath(GetModuleName(HInstance)) + exeName;
DllHandle := LoadLibraryA(Pchar(exePath));
if DllHandle = 0 then Exit;
Adr := GetProcAddress(DllHandle, WizardEntryPoint);
if Adr = nil then Exit;
Inc(Adr, $21);
if PWord(Adr)^ = $158B then
begin
Inc(Adr, 2);
Adr1 := Pointer(PInteger(PInteger(Adr)^)^);
if Adr1 <> nil then
begin
Inc(Adr1, $C);
Adr1^ := 1;
end;
end
else Application.MessageBox('Sorry! This Version of VCXBuddy not support your current VCX.', '');
end;
exports
InstallExpert,
RemoveExpert,
InitExpert name WizardEntryPoint;
begin
end.
偶曾尝试自己破解,无奈功力太浅,连他的 asprotected 2.x 的壳都搞不定。
盼望大虾出手,分数不够可以再加。
下载地址:http://www.epocalipse.com/download/VCXD9.zip
网上有 for delphi 7 的“注册伴侣”,注意,我这里要求的是 [red]for Delphi 2005[/red]
附: 3.0 build 128 for delphi 7 的破解“注册伴侣”源码,仅供参考:
library VCXBuddy;
{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }
uses
SysUtils, Windows, ToolsApi, JclRegistry, Classes, Forms;
const
DelphiExpertsKey = 'Software/Borland/Delphi/7.0/Experts';
{$R *.res}
////////////////////////////////////////////////////////////////////////////////
//设计: Linc 2003.10.16
//功能: 删除自己
//参数:
////////////////////////////////////////////////////////////////////////////////
procedure DeleteSelf;
var
BatchFile: TextFile;
BatchFileName, CmdLine: string;
ProcessInfo: TProcessInformation;
StartUpInfo: TStartupInfo;
begin
BatchFileName := ExtractFilePath(ParamStr(0)) + '_delete.bat';
AssignFile(BatchFile, BatchFileName);
Rewrite(BatchFile);
Writeln(BatchFile, ':try');
Writeln(BatchFile, 'del "' + ParamStr(0) + '"');
Writeln(BatchFile,
'if exist "' + ParamStr(0) + '"' + ' goto try');
Writeln(BatchFile, 'del %0');
CloseFile(BatchFile);
FillChar(StartUpInfo, SizeOf(StartUpInfo), $00);
StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
StartUpInfo.wShowWindow := SW_HIDE;
CmdLine := ExtractShortPathName(ParamStr(0));
CmdLine := ExtractFileDir(CmdLine);
CmdLine := BatchFileName + ' ' + CmdLine;
if CreateProcess(nil, PChar(CmdLine), nil, nil,
False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,
ProcessInfo) then
begin
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
end;
end;
procedure DoneExpert; export;
begin
end;
////////////////////////////////////////////////////////////////////////////////
//设计: Linc 2004.07.24
//功能: 实现安装 DLL
//参数:
////////////////////////////////////////////////////////////////////////////////
procedure InstallExpert; export;
var
vcxPath,
vcxFolder,
vcxFile,
strFile: string;
begin
vcxPath := RegReadStringDef(HKEY_CURRENT_USER, DelphiExpertsKey, 'VssConneXion', '');
if SameText('', vcxPath) then
begin
Application.MessageBox('Sorry! VCXBuddy not install yet.', '=^0^=');
Exit;
end;
vcxFolder := ExtractFilePath(vcxPath);
vcxFile := GetModuleName(HInstance);
strFile := ExtractFileName(vcxFile);
strFile := vcxFolder + strFile;
if FileExists(strFile) then DeleteFile(Pchar(strFile));
{
if FileExists(strFile) then
begin
Application.MessageBox('Sorry! Read File Error.', '=^0^=');
Exit;
end;
}
CopyFile(Pchar(vcxFile), Pchar(strFile), False);
{
if not FileExists(strFile) then
begin
Application.MessageBox('Sorry! Copy File Error.', '=^0^=');
Exit;
end;
}
RegDeleteEntry(HKEY_CURRENT_USER, DelphiExpertsKey, 'VssConneXion');
RegWriteString(HKEY_CURRENT_USER, 'Software/EPocalipse/VssConneXion/3.0/Delphi',
'Reg', '/Vv1ps3ehcmc3RmwTRGcTXhPEcz6RVD8UXWs6VDAOOMrYXgDVEp01PR7pthDMPj8oFEDaBVIPiAAj4piKjzDxQ==');
RegWriteString(HKEY_CURRENT_USER, DelphiExpertsKey, 'VCXD7Buddy', strFile);
RegWriteString(HKEY_CURRENT_USER, DelphiExpertsKey, 'VssConneXion', vcxPath);
Application.MessageBox('VCXD7Buddy expert installed.', '=^0^=');
end;
////////////////////////////////////////////////////////////////////////////////
//设计: Linc 2004.07.24
//功能: 实现删除 DLL
//参数:
////////////////////////////////////////////////////////////////////////////////
procedure RemoveExpert; export;
var
strFile: string;
begin
strFile := RegReadStringDef(HKEY_CURRENT_USER, DelphiExpertsKey, 'VCXD7Buddy', '');
RegDeleteEntry(HKEY_CURRENT_USER, DelphiExpertsKey, 'VCXD7Buddy');
SysUtils.DeleteFile(strFile);
{
DeleteSelf;
}
Application.MessageBox('VCXD7Buddy expert removed.', '=^0^=');
end;
function InitExpert(const BorlandIDEServices: IBorlandIDEServices;
RegisterProc: TWizardRegisterProc;
var Terminate: TWizardTerminateProc): Boolean;
var
DllHandle: THandle;
Adr, Adr1: PByte;
exePath: string;
const
exeName = 'VCXD7.dll';
begin
Result := True;
exePath := ExtractFilePath(GetModuleName(HInstance)) + exeName;
DllHandle := LoadLibraryA(Pchar(exePath));
if DllHandle = 0 then Exit;
Adr := GetProcAddress(DllHandle, WizardEntryPoint);
if Adr = nil then Exit;
Inc(Adr, $21);
if PWord(Adr)^ = $158B then
begin
Inc(Adr, 2);
Adr1 := Pointer(PInteger(PInteger(Adr)^)^);
if Adr1 <> nil then
begin
Inc(Adr1, $C);
Adr1^ := 1;
end;
end
else Application.MessageBox('Sorry! This Version of VCXBuddy not support your current VCX.', '');
end;
exports
InstallExpert,
RemoveExpert,
InitExpert name WizardEntryPoint;
begin
end.