Jump to content
Zone of Games Forum
Sign in to follow this  
Evil Rico

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

Recommended Posts

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

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX

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

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

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

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

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

...И вот ещо

Vista Game Explorer Editor

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

Share this post


Link to post
‡агрузка...

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

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

Edited by matrixbbs

Share this post


Link to post

matrixbbs

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

Edited by FreoN

Share this post


Link to post

FreoN

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

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

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

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

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

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

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

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

Edited by matrixbbs

Share this post


Link to post

Вот кусок скрипта правильной интеграции игры в 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;

Share this post


Link to post

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

Share this post


Link to post

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;

Share this post


Link to post

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

7b12d9158eaa.jpg

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

Share this post


Link to post

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

Share this post


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

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

Share this post


Link to post
Sign in to follow this  


  • Popular Now

  • Featured

  • Последние сообщения

    • Ну если быть честным. То несчитая некоторых постановок, когда масштаб был слишком по театральному подан, это до сих пор один из лучших боевиков. Хотя я все равно считаю Джаджмент лучшей и самой разнообразной игрой серии. 
    • что сеттинг редчайший. Ну и вторичность сабжа можешь попробовать опровергнуть, хотя тут даже твоей фантазии не хватит.)
    • Что надо опровергнуть?
    • Это шутка была Просто примеры с именами как то вообще никак.
    • именно так. Есть чем опровергнуть? Может, хотя бы пяток похожих назовешь?
    • )) Да нет же. Моё мнение на этот счёт совершенно ни на что не влияет (например, это никак не помешало выйти в свет самому ремастеру как таковому, хотя лично мне его появление сильно навредило). Я ставлю на первое место интересы сообщества, и интересы Спайро! Например, «чем позже» — вполне обозначает, что я не готов соглашаться на сырой продукт. Я желаю, чтобы перевод был полностью сформирован, проверен и одобрен фанатами (но не такими, которые хавают что дают, лишь бы прямо здесь и прямо сейчас). А «никогда» — что в этом случае, у меня будет меньше головной боли, если над переводом ремастера мне не придётся работать. Ведь иначе — если он выйдет, но без меня — то он, чёрт возьми, выйдет без меня! А я не могу этого допустить. Или со мной, или никогда.
        Троллей не кормлю, манипуляциям не поддаюсь, на оскорбления не обижаюсь, но поспорить люблю, да. А вам, в свою очередь, перед тем как доказывать _мне_ существование этого перевода — желательно было бы ознакомиться со списком его авторов, а также уделить более детальное внимание первым двум моим сообщениям здесь.
        Отлично! Кстати, несмотря на то, что инвайт на сам сайт у меня теперь есть, но страничка http://notabenoid.org/book/77522 всё равно отказывается пускать меня к тексту (или что там у вас вообще). По-видимому, нужен какой-то персональный допуск.
        У третьей — ещё нет озвучки (ИЛИ Я ЧЕГО-ТО НЕ ЗНАЮ!?), там только тестовые актёрские пробы: http://klimaleksus.narod.ru/Files/SOUNDS/
      — Но большинства этих актёров уже практически нет в наличии, к сожалению. Звук-то ладно, а текст? Вы же будете переводить диалоги во второй и третьей части, да?..
    • @Freeman665 
      И что там редчайшего? ЖТА на диком западе? “Божеэтовестерн10из10!”
    • Гномы там нужны, как цветную лошадь назвать зеброй вместо того, чтоб назвать её цветной лошадью. Джек Воробей и остальные тоже были когда-то новыми. Чтобы они кому-то понравились, их не нужно было обзывать известными людям персонажами, аналогично с дворфами. Не нужно использовать гномов, чтоб было понятно, это раскрывается через само произведение.

      Что касается Бульбы и Воробья, то у Бульбы фамилия, которая не переводится, а у Воробья именно кличка, подробно это было раскрыто в “мертвецы не рассказывают сказки”.
    • @0wn3df1x , уж извини, но тогда, это борьба с ветряными мельницами. @Ленивый , интересно было бы тогда посмотреть, во что Фримен превратился.  Хотя Безумный Макс и так и так звучит неплохо.)
    • опустим такие “мелочи”, что рдр — игра в редчайшем для игр сеттинге, к тому же ее делали дольше, чем 3-ю борду; и вообще игры рокстар — это игры рокстар. Еще “веские” аргументы будут?
  • Recent Status Updates

  • Popular Contributors


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

Система Orphus

×