mauvecloud
25th March 2008 16:06 UTC
Game Explorer without GDF
I have been able to successfully add a game to the game explorer when there was a DLL with the GDF embedded in it. However, what about games without GDFs (and that aren't in the list of known legacy games)? I can manually drag and drop a shortcut to the Game Explorer, which at least creates a play link, even if it doesn't add a support link, parental control ratings, etc. How can I do that in an NSIS installer, though?
kichik
25th March 2008 19:36 UTC
Open ProcMon while dragging a game to the Game Explorer and see where it creates the shortcut and what registry keys it affects. Maybe we can mimic the process and if not, at least get a hint as to which API should be used.
mauvecloud
25th March 2008 21:51 UTC
Thank you. That helps some, but unfortunately, it isn't enough.
I think the following code works for adding it to the registry:
!define REG_GE "SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\Games"
WriteRegStr HKLM "${REG_GE}\${GAME_GUID}" "AppExePath" "$INSTDIR\${GAME_EXE}"
WriteRegStr HKLM "${REG_GE}\${GAME_GUID}" "ApplicationId" "${GAME_GUID}"
WriteRegStr HKLM "${REG_GE}\${GAME_GUID}" "ConfigApplicationPath" "$INSTDIR"
WriteRegStr HKLM "${REG_GE}\${GAME_GUID}" "ConfigInstallType" "4"
WriteRegStr HKLM "${REG_GE}\${GAME_GUID}" "Title" "${GAME_TITLE}"
However, I don't see how to add tasks to the game explorer for all users after that. Once the above registry keys have been added, the game appears in the Game Explorer, but it shows a default icon for it, and it creates a directory for the current user to put the play link into (%USERPROFILE%\AppData\Roaming\Microsoft\Windows\GameExplorer\
GAME_GUID\PlayTasks\0), but even if I put a link into a similar directory under the "all users" AppData (I think "C:\ProgramData" is the Vista default for that), it doesn't pick it up.
kichik
18th April 2008 18:36 UTC
Doesn't ProcMon show you the path of the shortcut you create for all users when you drag & drop?
mauvecloud
21st April 2008 21:15 UTC
Drag & drop only creates it for the current user. I was hoping there was a way to simulate the effects, only have it appear for all users.