Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для audiofeel

Пользователь


Сообщения: 128
Благодарности: 22

Профиль | Отправить PM | Цитировать


saurn, проверил - создается один ярлык в Game Explorer, причем пустой не кликабельный именно на второй GDFBinary2.DLL (для мульта), но зато для всех пользователей (ну это так к слову)
читать дальше »
Код: Выделить весь код
type
  TGUID = record
    D1: Cardinal;
    D2: Word;
    D3: Word;
    D4: Array [0..8] of Byte;
  end;

function AddToGameExplorer(BinaryPatch: String; Path: String; InstallType: Integer; var GUID: TGUID): Cardinal; 
  external 'AddToGameExplorerA@files:GameuxInstallHelper.dll stdcall setuponly';
function RetrieveGUIDForApplication(BinaryPatch: String; var GUID: TGUID): Cardinal; 
  external 'RetrieveGUIDForApplicationA@{app}\GameuxInstallHelper.dll stdcall uninstallonly';
function RemoveFromGameExplorer(var GUID: TGUID): Cardinal; 
  external 'RemoveFromGameExplorer@{app}\GameuxInstallHelper.dll stdcall uninstallonly';

var
  GUID: TGUID;
  GDFSP, GDFMP: String;

procedure CurStepChanged2(CurStep: TSetupStep);
begin
  case CurStep of
    ssPostInstall:
    begin
      GDFSP := ExpandConstant('{app}\GDFBinary.dll');
      GDFMP := ExpandConstant('{app}\GDFBinary2.dll');
      AddToGameExplorer(GDFSP, ExpandConstant('{app}'), 3, GUID);
      AddToGameExplorer(GDFMP, ExpandConstant('{app}'), 3, GUID);
    end;
  end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  case CurUninstallStep of
    usUninstall:
    begin
      GDFSP := ExpandConstant('{app}\GDFBinary.dll');
      GDFMP := ExpandConstant('{app}\GDFBinary2.dll');
      RetrieveGUIDForApplication(GDFSP, GUID);
      RetrieveGUIDForApplication(GDFMP, GUID);
      RemoveFromGameExplorer(GUID);
      UnloadDll(ExpandConstant('{app}\GameuxInstallHelper.dll'));
    end;
  end;
end;

Отправлено: 09:00, 25-04-2013 | #299