PDA

Ver la Versión Completa : Protección de componentes en el IDE de Delphi


dec
01-07-2006, 00:02:39
Generalmente, los autores de componentes ofrecen versiones Trial usando una "protección" que consta en testear si Delphi se está ejecutando o no, con este código, podrás craquear y simular la ejecución de Delphi, sólo deberás colocar esta unit en la clausula "Uses".


function IsDelphiRunning : boolean;
begin
Result := (FindWindow('TAppBuilder',nil) > 0) and
(FindWindow('TPropertyInspector',nil) > 0) and
(FindWindow('TAlignPalette',nil) > 0);
end;

(******************************************************************************
DSim 1.2 Simulación de la ejecucion de Delphi
Copyright (C) 2001 Antarlac Software
******************************************************************************)

unit DSim;

interface


implementation

uses Windows;

const

AppBuilderWindowClass :TWndClass =
(
style :0;
lpfnWndProc :@DefWindowProc;
cbClsExtra :0;
cbWndExtra :0;
hInstance :0;
hIcon :0;
hCursor :0;
hbrBackground :0;
lpszMenuName :NIL;
lpszClassName :'TAppBuilder'
);

PropertyInspectorWindowClass :TWndClass =
(
style :0;
lpfnWndProc :@DefWindowProc;
cbClsExtra :0;
cbWndExtra :0;
hInstance :0;
hIcon :0;
hCursor :0;
hbrBackground :0;
lpszMenuName :NIL;
lpszClassName :'TPropertyInspector'
);

AlignPaletteWindowClass :TWndClass =
(
style :0;
lpfnWndProc :@DefWindowProc;
cbClsExtra :0;
cbWndExtra :0;
hInstance :0;
hIcon :0;
hCursor :0;
hbrBackground :0;
lpszMenuName :NIL;
lpszClassName :'TAlignPalette'
);

var
AppBuilderHWND :HWND;
PropertyInspectorHWND :HWND;
AlignPaletteHWND :HWND;


initialization

{ TAppBuilder }
if FindWindow(AppBuilderWindowClass.lpszClassName,NIL) = 0 then
begin
RegisterClass(AppBuilderWindowClass);
AppBuilderHWND := CreateWindowEx(0, AppBuilderWindowClass.lpszClassName,
'', 0, 0, 0, 0, 0, 0, 0, HInstance, NIL);
end;
{ TPropertyInspector }
if FindWindow(PropertyInspectorWindowClass.lpszClassName,NIL) = 0 then
begin
RegisterClass(PropertyInspectorWindowClass);
PropertyInspectorHWND := CreateWindowEx(0, PropertyInspectorWindowClass.lpszClassName,
'', 0, 0, 0, 0, 0, 0, 0, HInstance, NIL);
end;
{ TAlignPalette }
if FindWindow(AlignPaletteWindowClass.lpszClassName,NIL) = 0 then
begin
RegisterClass(AlignPaletteWindowClass);
AlignPaletteHWND := CreateWindowEx(0, AlignPaletteWindowClass.lpszClassName,
'', 0, 0, 0, 0, 0, 0, 0, HInstance, NIL);
end;


finalization

{ TAppBuilder }
UnregisterClass(AppBuilderWindowClass.lpszClassName, HInstance);
if AppBuilderHWND <> 0 then
DestroyWindow(AppBuilderHWND);
{ TPropertyInspector }
UnregisterClass(PropertyInspectorWindowClass.lpszClassName, HInstance);
if PropertyInspectorHWND <> 0 then
DestroyWindow(PropertyInspectorHWND);
{ TAlignPalette }
UnregisterClass(AlignPaletteWindowClass.lpszClassName, HInstance);
if AlignPaletteHWND <> 0 then
DestroyWindow(AlignPaletteHWND);

end.