I am trying to add my game to innosetup with Geo, I use this script (only code) I am:
[CODE] type TGUID = record data 1: cardinal; Data2, Data3: Word; Data 4: Sir's [0. 8] sir; End; Const Platecos = 0; Support Task = 1; Var Playground: Trig; Function GenerateGUID (var GUID: TGUID): Cardinal; External 'Generated' file: GameUntinstaller DLL STDCL setup 'only'; Function AddToGameExplorer (binary: string; path: string; installtype: integer; var GUID: trid): cardinal; External 'AddToGameExplorerA @ Files: GameuxInstallHelper.dll stdcall setuponly'; Function CreateTask (InstallType: Integer; on GUID: TGUID; TaskType: Integer; TaskNumber: Integer; TaskName: String; Binary: String; Parameter: String): Cardinal; External 'CreateTaskA @ Files: GameuxInstallHelper.dll stdcall setuponly'; RetrieveGUIDForApplication function (binary: string; var GUID: TGUID): Cardinal; External 'RetrieveGUIDForApplicationA @ {app} \ Installer \ gameuxInstallHelper.dll stdcall uninstallonly'; RemoveFromGameExplorer (var GUID: TGUID): Cardinal; External 'RemoveFromGameExplorer @ {AP} \ Installer \ GameuxInstallHelper.dll stdcall uninstallonly'; Function RemoveTasks (var GUID: TGUID): Cardinal; External 'RemoveTasks @ {app} \ installer \ GameuxInstallHelper.dll stdcall uninstallonly'; Function IntToHex (Int: Cardinal; Points: Integer): String; Var i, Issue: Integer; Ch: Byte; Start the result: = ''; For: = 0 to the number - 1 begin the digit: = int 16; Int: = Int div 16; If the digits & lt; 0 points again: = numeral + 16; Ch: = Ord ('0') + points; If the number & gt; 9 then ch: = ch + 7; Results: = chr (ch) + result; End; End; Function GetGUID (GGUID: TGUID): String; Var i: integer; Start the result: = '{' + IntToHex (GGUID.Data1, 8) + '-' + IntToHex (GGUID.Data2, 4) + '-' + IntToHex (GGUID.Data3, 4) + '-' + IntToHex (Ord (GGUID.Data4 [0]), 2) + IntToHex (Ord (GGUID.Data4 [1]), 2) + '-'; For: = 2 to 7 results: = result + intothex (ord (GGUID.Data4 [i]), 2); Results: = results + '}'; End; Process gdfistol (binary, menex: string); Start GenerateGUID (gameuxGUID); AddToGameExplorer (ExpandConstant (Binary), ExpandConstant ('{app}'), 3, Game Area); CreateTask (3, Gymaxide, Play Task, 0, 'Play', Extended Constant (Menexe), ''); End; ** process win7fix; ** Win regGDF: Cardinal; RegIGNDWordValue (HKEY_LOCAL_MACHINE, 'SOFTWARE' \ Microsoft \ Windows \ CurrentVersion \ GameUX \ game \ '+ GetGUID (GameuxGUID),' IsSigned ', regGDF) Then if RegGDF = 0 then RegDeleteValue (HKEY_LOCAL_MACHINE,' SOFTWARE 'Microsoft \ Windows \ CurrentVersion \ GameUX \ game \ GetGUID (gameuxGUID), '' ('+ GetGUID (GameuxGUID, Microsoft \ Windows \ CurrentVersion \ GameUX \ game software \ IsSigned HKEY_LOCAL_MACHINE,')) RegWriteDWordValue 'IsSigned', 1 ); End; Process Cortepanked (Curststep: Tsetup apostrop); Var version: TWindowsVersion; GetWindowsVersionEx (version) start; If (Curstep = ssPostInstall) and Version.NTPlatform and (Version.Major & gt; 5) then start GDFInstall ('{# GDFBinary}', '{} #GDFExe'); Win7fix; End; End; But the "win7fix" process does not work because it is for Windows 7 because if I create my own GDF Definition DLL file then it is not signed and the game Explorer is not something Information like does not show ratings. But if I "release" manually from 1 to 1, it shows the registry key. How can I do this with the Inno (DWORD) to edit the entry for the GUID generated?
After the
The root problem is what you are reading and write the registry's 32 bit tree on Win7x64 But the GameuxInstallHelper.dll will write information about 64 bit trees. I have used my project code in my project, here it is: process win7fix; Win regGDF: Cardinal; Var GUXPath: string; Start GUXPath: = 'Software \ Microsoft \ Windows \ CurrentVersion \ gameUX \ Games \' GetGUID (gameuxGUID); If isWin64 starts when RegQueryDWordValue (HKLM64, GUXPath, 'IsSigned', regGDF) then if RegGDF = 0 then RegDeleteValue (HKLM64, GUXPath, 'IsSigned') then RegWriteDWordValue (HKLM64, GUXPath, 'IsSigned', 1); If RGGDF = 0 is then RegDeleteValue (HKLM, GUXPath, 'IsSigned') then RegVriteDWordValue (HKLM, GUXPath, 'IsSigned', 1); If otherwise RegQueryDWordValue (HKLM, GUXPath, 'IsSigned', regGDF) will begin; End; End;
Comments
Post a Comment