Licencjonowanie i zabezpieczenie oprogramowania

Upubliczniłem na GitHubie repozytorium z SDK dla swojego systemu ochrony i licencjonowania oprogramowania PELock v2.0.

Zaawansowane ustawienia ochrony aplikacji w PELock v2.0

SDK i setki przykładów użycia są dostępne w wersji dla C/C++, D, Delphi/Pascal, PureBasic, PowerBASIC oraz MASM.

Podgląd okienka z identyfikatorem sprzętowym - blokada na sprzętowy identyfikator w PELock v2.0

Jeśli interesujesz się metodami ochrony oprogramowania przed złamaniem być może znajdziesz także coś dla siebie, ponieważ PELock v2.0 oferuje wiele nowych, niespotykanych metod pozwalających zabezpieczyć oprogramowanie przed crackingiem i reverse engineeringiem.

https://github.com/PELock/PELock-Software-Protection-and-Licensing-SDK

Ukrycie zakładek tab w kontrolce PageControl w Delphi

Dzisiaj szybko musiałem pozbyć się nagłówków z kontrolki PageControl i przygotowałem zmodyfikowany komponent dla Delphi – PageControlEx z opcją ukrywania nagłówków.

////////////////////////////////////////////////////////////////////////////////
//
// Custom PageControlEx component with hidden page tabs
//
// Bartosz Wójcik | www.pelock.com
//
////////////////////////////////////////////////////////////////////////////////

unit PageControlEx;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  ExtCtrls, StdCtrls, ComCtrls;

Type

  TPageControlEx = class(TPageControl)

  private
    FHideHeader: Boolean;
    procedure SetHideHeader(const Value: Boolean);
  protected
    procedure WndProc(var Msg: TMessage); override;
  published
    property HideHeader:Boolean read FHideHeader Write SetHideHeader;
  End;

procedure Register;

implementation

procedure TPageControlEx.WndProc(var Msg: TMessage);
begin
  // hide header via intercepting TCM_ADJUSTRECT message
  if (FHideHeader = True) and (Msg.Msg = $1328) then
    Msg.Result := 1
   else
    inherited;
end;

procedure TPageControlEx.SetHideHeader(const Value: Boolean);
begin
  FHideHeader := Value;
end;

procedure Register;
begin
  RegisterComponents('PELock', [TPageControlEx])
end;

end.