Перейти к содержимому
Zone of Games Forum
Evil Rico

Идентификация игр в Windows Vista

Рекомендованные сообщения

Некоторые игр в висте автоматически идентифицируются, виста пишет их рейтинг, качает бокс арт, но при этом большинство игр нераспазнается что очень неприятно. Когда открываеш папку игры становится не по себе когда половина с цивильными бокс артами а вторая половина с мелкими иконками. Немного покопавшись в реестре нашол ветку

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX

в ней содержатся информация о играх, например:

Если в параметре ConfigInstallType стоит 4 значит игра не идентифицированна, если 3 значит идентифицированна, если 2 то на ней ещо и рейтинг производительности стоит.

Но если просто поменять циферку ничего е выйдет

Главное сдесь параметр ApplicationId и WMGameid именно сдесь хранится особенный номер по которому виста определяет что это за игра.

Собственно в честь этого я и создал тему, чтобы узнать что это ваабще за индефикаторы и как заставить узнавать игру

...И вот ещо

Vista Game Explorer Editor

Это сайт одной проги, каторая обманывает Game Explorer прога корявинькая но по крайней мере с помощью неё можно на любую игру поставить цЫвильный значок

Поделиться сообщением


Ссылка на сообщение

Может кто объяснит мне, почему напр. биошок не добовляется в WGE (там же инфа вшита?!), а Фабле берет данные из GameUXLegacyGDFs.dll нормально? Также эскизы не качатся.

ЗЫ. Есть апрельский directx sdk 2007,пишите кому надо.

Изменено пользователем matrixbbs

Поделиться сообщением


Ссылка на сообщение

matrixbbs

Потому, что пиратка.

Изменено пользователем FreoN

Поделиться сообщением


Ссылка на сообщение

FreoN

Пиратка? ОС или игры? Почему тогда после переустановки висты все снова работает?

Нашел решение проблемы загрузки эскизов к играм.

1. В IE7 вставить этот линк:

https://games.metaservices.microsoft.com/ga...WebService.asmx

2. После загрузки страницы с ошибкой, надо установить новый сертификат. Он находится в конце строки адреса в виде замка.

3. Щелкаем на замок устанавлием сертификат и все.

4. (возможно) Если у вас прокси в IE7, то надо будет установить общий ip с портом для всех протоколов.

PS. Работает для игр которые при запуске попадают автоматом в GameExplorer, без эскизов (как уменя).

Изменено пользователем matrixbbs

Поделиться сообщением


Ссылка на сообщение

Вот кусок скрипта правильной интеграции игры в WGE (все как Microsoft рекомендует)для Inno (на примере Mass Effect)

Spoiler

#define MainExe "{app}\MassEffectLauncher.exe"

#define GDFBinary "{app}\Binaries\MassEffectGDF.dll"

[Files]

Source: "GameuxInstallHelper.dll"; DestDir: "{app}"; Flags: overwritereadonly


type

TGUID = record

Data1: Cardinal;

Data2,

Data3: Word;

Data4: array [0..8] of char;

end;

function GenerateGUID(var GUID: TGUID): Cardinal;

external 'GenerateGUID@files:GameuxInstallHelper.dll stdcall setuponly';

function AddToGameExplorer(Binary: String; Path: String; InstallType: Integer; var GUID: TGUID): Cardinal;

external 'AddToGameExplorerA@files:GameuxInstallHelper.dll stdcall setuponly';

function CreateTask(InstallType: Integer; var GUID: TGUID; TaskType: Integer; TaskNumber: Integer; TaskName: String; Binary: String; Parameters: String): Cardinal;

external 'CreateTaskA@files:GameuxInstallHelper.dll stdcall setuponly';

function RetrieveGUIDForApplication(Binary: 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';

function RemoveTasks(var GUID: TGUID): Cardinal;

external 'RemoveTasks@{app}\GameuxInstallHelper.dll stdcall uninstallonly';

const

PlayTask = 0;

SupportTask = 1;

var

GUID: TGUID;

procedure CurStepChanged(CurStep: TSetupStep);

var

Binary, MainExe: String;

begin

if CurStep = ssInstall then

GenerateGUID(GUID);

if CurStep = ssPostInstall then

begin

Binary:=ExpandConstant('{#GDFBinary}');

MainExe:=ExpandConstant('{#MainExe}');

AddToGameExplorer(Binary, ExpandConstant('{app}'), 3, GUID);

CreateTask(3, GUID, PlayTask, 0, 'Play', MainExe, '');

CreateTask(3, GUID, SupportTask, 0, 'BioWare Website', 'http://www.bioware.com/', '');

CreateTask(3, GUID, SupportTask, 1, 'Support WebSite', 'http://masseffect.bioware.com/route/me/pc/vt/cs/en/', '');

end;

end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);

var

Binary: String;

GUID: TGUID;

begin

if CurUninstallStep=usUninstall then

begin

Binary:=ExpandConstant('{#GDFBinary}');

RetrieveGUIDForApplication(Binary, GUID);

RemoveFromGameExplorer(GUID);

RemoveTasks(GUID);

UnloadDll(ExpandConstant('{app}\GameuxInstallHelper.dll'));

end;

end;

Поделиться сообщением


Ссылка на сообщение

Скрипт конешно класс, но он как то не на все гамы подходит, на какие то добавляется и все окей, а какие то добавляются и пишет Оценки отсутствуют (IsSigned=0), изза чего это вообще? Можно какнибудь параметр Guid перевести в String? тогда б можно самому былоб заставить IsSigned в 1 переключать.

Поделиться сообщением


Ссылка на сообщение

Evil Rico, скорее всего в GDFBinary нет инфы об оценке. А IsSigned это кажется немного другое (подписана игра или нет).

 

Spoiler

#define MainExe "{app}\MassEffectLauncher.exe"

#define GDFBinary "{app}\Binaries\MassEffectGDF.dll"

[setup]

AppName=My Program

AppVerName=My Program version

DefaultDirName={pf}\My Program

OutputDir=.

[Files]

Source: "GameuxInstallHelper.dll"; DestDir: "{app}"; Flags: overwritereadonly

Source: "MassEffectLauncher.exe"; DestDir: "{app}"; Flags: overwritereadonly

Source: "Binaries\MassEffectGDF.dll"; DestDir: "{app}\Binaries\"; Flags: overwritereadonly

[Registry]

Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\Games\{code:GetGUID}"; ValueType: DWord; ValueName: "IsSigned"; ValueData: "0"


type

TGUID = record

Data1: Cardinal;

Data2,

Data3: Word;

Data4: array [0..7] of char;

end;

function GenerateGUID(var GUID: TGUID): Cardinal;

external 'GenerateGUID@files:GameuxInstallHelper.dll stdcall setuponly';

function AddToGameExplorer(Binary: String; Path: String; InstallType: Integer; var GUID: TGUID): Cardinal;

external 'AddToGameExplorerA@files:GameuxInstallHelper.dll stdcall setuponly';

function CreateTask(InstallType: Integer; var GUID: TGUID; TaskType: Integer; TaskNumber: Integer; TaskName: String; Binary: String; Parameters: String): Cardinal;

external 'CreateTaskA@files:GameuxInstallHelper.dll stdcall setuponly';

function RetrieveGUIDForApplication(Binary: 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';

function RemoveTasks(var GUID: TGUID): Cardinal;

external 'RemoveTasks@{app}\GameuxInstallHelper.dll stdcall uninstallonly';

function IntToHex(Int: Cardinal; Digits: Integer): String;

var

i, Digit: Integer;

ch: Byte;

begin

result:='';

for i:=0 to Digits-1 do

begin

digit:=Int mod 16;

Int:=Int div 16;

if digit<0 then

digit:=digit+16;

ch:=Ord('0')+digit;

if digit>9 then

ch:=ch+7;

result:=chr(ch)+result;

end;

end;

const

PlayTask = 0;

SupportTask = 1;

var

GUID: TGUID;

function GetGUID(S: String): String;

var

i: integer;

begin

result:='{'+IntToHex(GUID.Data1, 8)+'-'+IntToHex(GUID.Data2, 4)+'-'+IntToHex(GUID.Data3, 4)+'-'+IntToHex(Ord(GUID.Data4[0]), 2)+IntToHex(Ord(GUID.Data4[1]), 2)+'-';

for i:=2 to 7 do

result:=result+IntToHex(Ord(GUID.Data4), 2);

result:=result+'}';

end;

procedure CurStepChanged(CurStep: TSetupStep);

var

Binary, MainExe: String;

begin

if CurStep = ssInstall then

GenerateGUID(GUID);

if CurStep = ssPostInstall then

begin

Binary:=ExpandConstant('{#GDFBinary}');

MainExe:=ExpandConstant('{#MainExe}');

AddToGameExplorer(Binary, ExpandConstant('{app}'), 3, GUID);

CreateTask(3, GUID, PlayTask, 0, 'Play', MainExe, '');

CreateTask(3, GUID, SupportTask, 0, 'BioWare Website', 'http://www.bioware.com/', '');

CreateTask(3, GUID, SupportTask, 1, 'Support WebSite', 'http://masseffect.bioware.com/route/me/pc/vt/cs/en/', '');

end;

end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);

var

Binary: String;

GUID: TGUID;

begin

if CurUninstallStep=usUninstall then

begin

Binary:=ExpandConstant('{#GDFBinary}');

RetrieveGUIDForApplication(Binary, GUID);

RemoveFromGameExplorer(GUID);

RemoveTasks(GUID);

UnloadDll(ExpandConstant('{app}\GameuxInstallHelper.dll'));

end;

end;

Поделиться сообщением


Ссылка на сообщение

Спасибо большое, даже огромное спасибо, именно это меня и интересовало. У меня вот в самодельном GDFе для ре4 выставляется IsSigned=0 терь нормально сделаю

7b12d9158eaa.jpg

Вообще очень печально наблюдать как наши локализаторы паганят установку, Mass Effect, Unreal Tournament 3 - инфа не добавляется, приходится самому все делать.

Поделиться сообщением


Ссылка на сообщение

не прочитай я об этой программе ещё на thevista.ru, то не догадался бы, что реклама :)

Поделиться сообщением


Ссылка на сообщение
не прочитай я об этой программе ещё на thevista.ru, то не догадался бы, что реклама :)

Просто сделал страницу с кратким описанием и ссылкой на скачивание, а то ее стали выкладывать на рапиду и депозит, как варез какой-то. А прога-то бесплатная.

Поделиться сообщением


Ссылка на сообщение



Zone of Games © 2003–2024 | Реклама на сайте.

×