بعد التحية والسلام
في الاونة الاخيرة اضافت مركبات AlphaControls ستايلات مدفوعة ويمكن تجربتها مجانا لاكن ستظهر رسالة في بداية التشغيل محتواها
2017-05-15_193454.png (الحجم : 16.86 ك ب / التحميلات : 31)
فقمت بالبحث في قوقل ووجدت هذا الحل المبدئ الذي يقوم بالغاء الرسالة المزعجة
في الاونة الاخيرة اضافت مركبات AlphaControls ستايلات مدفوعة ويمكن تجربتها مجانا لاكن ستظهر رسالة في بداية التشغيل محتواها
كود :
Unregistered skin has been loaded.
If you have a key for this skin, please insert it in the KeyList.

فقمت بالبحث في قوقل ووجدت هذا الحل المبدئ الذي يقوم بالغاء الرسالة المزعجة
PHP كود :
program Project1;
uses
Windows, Forms, Unit1;
var
OrigAddr: Pointer = nil;
{$R *.res}
function InterceptedMessageBoxA(Wnd: HWND; lpText, lpCaption: PAnsiChar; uType: UINT): Integer; stdcall;
type
TOrigMessageBoxA = function(Wnd: HWND; lpText, lpCaption: PAnsiChar; uType: UINT): Integer; stdcall;
begin
if lpCaption <> 'Unregistered skin' then
Result := TOrigMessageBoxA(OrigAddr)(Wnd, lpText, lpCaption, uType);
end;
function Intercept(const OldProc, NewProc: FARPROC): Boolean;
var
ImportEntry: PImageImportDescriptor;
Thunk: PImageThunkData;
Protect: DWORD;
ImageBase: Cardinal;
DOSHeader: PImageDosHeader;
NTHeader: PImageNtHeaders;
begin
Result := False;
if OldProc = nil then Exit;
if NewProc = nil then Exit;
ImageBase := GetModuleHandle(nil);
DOSHeader := PImageDosHeader(ImageBase);
NTHeader := PImageNtHeaders(DWORD(DOSHeader) + DWORD(DOSHeader^._lfanew));
ImportEntry := PImageImportDescriptor(
DWORD(ImageBase)+
DWORD(NTHeader^.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress)
);
while ImportEntry^.Name <> 0 do begin
Thunk := PImageThunkData(DWORD(ImageBase) + DWORD(ImportEntry^.FirstThunk));
while Pointer(Thunk^._function) <> nil do begin
if Pointer(Thunk^._function) = OldProc then begin
if VirtualProtect(@Thunk^._function, SizeOf(DWORD), PAGE_EXECUTE_READWRITE, Protect) then
try
InterlockedExchange(Integer(Thunk^._function), Integer(NewProc));
Result := True;
finally
VirtualProtect(@Thunk^._function, SizeOf(DWORD), Protect, Protect);
FlushInstructionCache(GetCurrentProcess, @Thunk^._function, SizeOf(DWORD));
end;
end else Inc(PAnsiChar(Thunk), SizeOf(TImageThunkData32));
end;
ImportEntry := Pointer(Integer(ImportEntry) + SizeOf(TImageImportDescriptor));
end;
end;
begin
OrigAddr:=GetProcAddress(GetModuleHandle(user32), 'MessageBoxA');
Intercept(OrigAddr, @InterceptedMessageBoxA);
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.