⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sharedata.~pas

📁 破解“国际领先的Nprotect键盘加密技术”
💻 ~PAS
字号:
unit ShareData;

interface
uses windows,Common;

type
  PGlobalDllData = ^TGlobalDllData;
  TGlobalDllData = record
     CfgFileName : String[255];
  end;

procedure CreateShareData;
procedure OpenShareData;
procedure CloseShareData;
function  GetShareData : PGlobalDllData;
  
implementation

var
  GlobalData: PGlobalDllData = nil; //这是一个全局变量,指向创建的内存映射文件。
  MapHandle: THandle;

procedure CreateShareData;
var
  size: integer;
begin
  size := sizeof(TGlobalDllData);
  mapHandle := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, size, DllShare);
  if mapHandle = 0 then Exit;
  GlobalData := MapViewOfFile(mapHandle, File_map_all_Access, 0, 0, size);
  if GlobalData = nil then
  begin
    CloseHandle(MapHandle);
    //RaiseLastWin32Error;
  end;
end;

procedure OpenShareData;
var
  size: integer;
begin
  size := sizeof(TGlobalDllData);
  mapHandle := OpenFileMapping(FILE_MAP_ALL_ACCESS, False, DllShare);
  if mapHandle = 0 then Exit;
  GlobalData := MapViewOfFile(mapHandle, File_map_all_Access, 0, 0, size);
  if GlobalData = nil then
  begin
    CloseHandle(MapHandle);
    //RaiseLastWin32Error;
  end;
end;

function GetShareData : PGlobalDllData;
begin
  if not Assigned(GlobalData) then
    Result := nil
  else
    Result := GlobalData;  
end;

procedure CloseShareData; 
begin
  if Assigned(GlobalData) then begin
     UnMapViewOfFile(GlobalData);
     CloseHandle(MapHandle);
     MapHandle := 0;
  end;
  if MapHandle <> 0 then
     CloseHandle(MapHandle);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -