- Windows Games Explorer for Game Developers
- Prerequisites
- Integrating with an Installer
- Integration Process
- Games Explorer Tasks
- Integrating into InstallScript
- Integrating into an MSI Package
- List of Executable File Extensions
- Files with these extensions might be able to execute a task automatically.
- File Extensions Explained
- High-Risk File Extensions
- Other Executable File Extensions
Windows Games Explorer for Game Developers
WindowsВ Vista improves the user experience of gaming on Windows by including Games Explorer. Games Explorer is exposed in the Windows Vista Start Menu as the Games folder and provides a central location for accessing games.
Starting with the March 2009 release of the DirectX SDK, a new game definition file (GDF) schema is used to support features in Windows 7, Game Provider and RSS feed, and IGameExplorer2. IGameExplorer2 is a new interface on Windows 7 that simplifies the process of integrating a game with Games Explorer.
This article outlines the process of registering a game with Games Explorer and parental controls on Windows Vista and Windows 7 by using the new GDF schema.
Prerequisites
Before you can integrate a game into Games Explorer, you must create a game definition file (GDF). A GDF is an XML file that contains metadata that describes the game. In the March 2009 release of the DirectX SDK, a section for game provider, RSS feed, and game task has been added to the GDF schema. To use the instructions in this article, you must use this new GDF format to create your GDF file.
Microsoft provides a tool for authoring GDFs in the DirectX SDK, Game Definition File Editor, to make this creation process easier. This tool also helps you create localized versions of a GDF.
Once a GDF has been authored and localized, it must be encapsulated within a resource section of a binary file (either an executable or DLL), along with the game’s thumbnail and icon. The GDF contains all of the metadata associated with the game, including the game’s rating. Windows Parental Controls use the game’s rating to allow parents to control access to the game. The binary file which contains the GDF must be digitally signed with a valid Authenticode certificate; otherwise, Games Explorer and the parental control system ignores the game’s rating, because the rating information cannot be trusted without certification. For more details about signing code with Authenticode, see Authenticode Signing for Game Developers.
Integrating with an Installer
To simplify Games Explorer integration, the GameUXInstallHelper sample provides a common API that can be called on Windows XP, Windows Vista, and Windows 7. It is designed to work with scripts for InstallShield and Wise Installation System, as well as MSI custom actions and custom installation tools. Detection of the operating system is handled inside this sample DLL, so the caller does not need to worry whether the client is running Windows XP, Windows Vista, or Windows 7.
The functions exported by this DLL are the following:
GameExplorerInstallW
Registers a game with Games Explorer, given a path to the GDF binary, a full path to the folder where the game is installed, and the installation scope.
GameExplorerInstallA
Registers a game with Games Explorer; ANSI version of GameExplorerInstallW.
GameExplorerUninstallW
Removes a game from registration with Games Explorer, given a path to the GDF binary.
GameExplorerUninstallA
Removes a game from registration with Games Explorer; ANSI version of GameExplorerUninstallW.
GameExplorerSetMSIProperties
Configures the CustomActionData properties for the actions of an MSI deferred custom installation. Usage of this function is described in detail later in this article.
GameExplorerInstallUsingMSI
Adds a game to Games Explorer; for use during an MSI custom action installation.
GameExplorerUninstallUsingMSI
Remove a game from Games Explorer; for use during an MSI custom action installation.
These functions are further explained in the GameUXInstallHelper.h header.
Integration Process
Once the GDF and related files have been added to a binary resource, it is then possible to integrate the game with Games Explorer. Using GameUXInstallHelper will simplify the integration process. To register the game with Games Explorer, call the GameExplorerInstall with a path to the GDF binary, a full path to the folder where the game is installed, and the installation scope. To remove the game’s registration, call GameExplorerUninstall with a path to the GDF binary.
Note that the removal process only removes one unique installation. If a game has been installed multiple times, this process must be repeated for each unique installation.
Games Explorer Tasks
Games Explorer tasks will appear in the context menu of an item in Games Explorer. Tasks are divided into play tasks and support tasks. Play tasks launch a game into a particular mode, while support tasks serve any other purpose, including linking to web sites.
In Windows Vista, tasks are simply shortcuts that are located in specific folders. Play tasks and support tasks are stored in folders with the corresponding names PlayTasks and SupportTasks. GameUXInstallHelper can read the game’s task information from the GDF binary file and create all of the shortcuts automatically.
In Windows 7, the shortcuts to the tasks are not needed, because Games Explorer obtains all of the task information directly from the GDF binary file.
Integrating into InstallScript
Calling Games Explorer APIs from InstallShield’s InstallScript is made easy by using the GameUXInstallHelper sample. The steps required to integrate with InstallShield are as follows:
Open an InstallScript project in the InstallShield editor.
Add GameUXInstallHelper.dll to the project to be installed to the target directory.
To add GameUXInstallHelper.dll to an InstallScript project:
On the Installation Designer tab, click Application Data in the navigation pane on the left.
Click Files and Folders and browse in Source computer’s folders to locate GameUXInstallerHelper.dll in Source computer’s files.
The default location for GameUXInstallerHelper.dll is DirectX SDK root\Samples\C++\Misc\Bin\x86.
Under Destination computer’s folders, click Application Target Folder.
Drag GameUXInstallerHelper.dll from Source computer’s files to Destination computer’s files.
In the InstallScript explorer, click the InstallScript file (usually setup.rul) that calls the DLL function.
Paste the following InstallScript into the file:
Integrating into an MSI Package
The following is a high-level description of the steps required to call the Games Explorer APIs using MSI custom actions:
- Add a property to the MSI Property table called «RelativePathToGDF» containing the relative path to the GDF binary.
- After the CostFinalize action, call the GameUXInstallHelper DLL function SetMSIGameExplorerProperties in an immediate custom action to set the appropriate MSI properties for the other custom actions.
- Upon installation, trigger a deferred custom action after the InstallFiles action that calls the GameUXInstallHelper DLL function AddToGameExplorerUsingMSI. If the installation is for all users, then the custom action must set the flag msidbCustomActionTypeNoImpersonate; otherwise, it must not set this flag. Therefore, two nearly identical custom actions are defined: GameUXAddAsAdmin and GameUXAddAsCurUser.
- Upon removal of the installation, trigger a deferred custom action before the RemoveFiles action that calls the GameUXInstallHelper DLL function RemoveFromGameExplorerUsingMSI. If the installation was for all users, then the custom action must set the flag msidbCustomActionTypeNoImpersonate; otherwise, it must not set this flag. Therefore, two nearly identical custom actions are defined: GameUXRemoveAsAdmin and GameUXRemoveAsCurUser.
- Define rollback custom actions to handle the case where the user cancels installing or removing after one of the these custom actions has already happened. This results in an additional 4 custom actions: GameUXRollBackAddAsAdmin, GameUXRollBackAddAsCurUser, GameUXRollBackRemoveAsAdmin, and GameUXRollBackRemoveAsCurUser.
This procedure is described in detail in the following instructions, which describe a process that can be done using an MSI editor, such as the Orca editor found in the Platform SDK. Some MSI editors have wizards which simplify some of these configuration steps.
To configure an MSI package for integration with Games Explorer
Open the MSI package in Orca.
Add the row shown in the following table to the Binary table in the MSI package.
Name | Data |
---|---|
GAMEUX | file path to the DLL\GameUXInstallHelper.dll |
This file will be embedded in the MSI package, so you must do this step every time you recompile GameUXInstallHelper.dll.
Add the rows shown in the following table to the CustomAction table in the MSI package.
Action | Type | Source | Target |
---|---|---|---|
GameUXSetMSIProperties | msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue = 65 | GAMEUX | SetMSIGameExplorerProperties |
GameUXAddAsAdmin | msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3137 | GAMEUX | AddToGameExplorerUsingMSI |
GameUXAddAsCurUser | msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeInScript = 1089 | GAMEUX | AddToGameExplorerUsingMSI |
GameUXRollBackAddAsAdmin | msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeRollback + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3393 | GAMEUX | RemoveFromGameExplorerUsingMSI |
GameUXRollBackAddAsCurUser | msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeRollback + msidbCustomActionTypeInScript = 1345 | GAMEUX | RemoveFromGameExplorerUsingMSI |
GameUXRemoveAsAdmin | msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3137 | GAMEUX | RemoveFromGameExplorerUsingMSI |
GameUXRemoveAsCurUser | msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeInScript = 1089 | GAMEUX | RemoveFromGameExplorerUsingMSI |
GameUXRollBackRemoveAsAdmin | msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeRollback + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3393 | GAMEUX | AddToGameExplorerUsingMSI |
GameUXRollBackRemoveAsCurUser | msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeRollback + msidbCustomActionTypeInScript = 1345 | GAMEUX | AddToGameExplorerUsingMSI |
Add the values shown for Action, Condition, and Sequence in the following table to the InstallExecuteSequence table in the MSI package.
Action | Condition | Sequence | Notes |
---|---|---|---|
GameUXSetMSIProperties | 1015 | The sequence number places the action soon after CostFinalize. | |
GameUXAddAsAdmin | NOT Installed AND ALLUSERS | 4003 | This custom action will only happen during a fresh installation for all users. The sequence number places the action after InstallFiles and after the rollbacks. |
GameUXAddAsCurUser | NOT Installed AND NOT ALLUSERS | 4004 | This custom action will only happen during a fresh installation for the current user only. The sequence number places the action after InstallFiles and after the rollbacks. |
GameUXRollBackAddAsAdmin | NOT Installed AND ALLUSERS | 4001 | This custom action will only happen when a fresh installation for all users is cancelled. The sequence number places the action after InstallFiles and before the Add custom action. |
GameUXRollBackAddAsCurUser | NOT Installed AND NOT ALLUSERS | 4002 | This custom action will only happen when a fresh installation for the current user only is cancelled. The sequence number places the action after InstallFiles and before the Add custom action. |
GameUXRemoveAsAdmin | REMOVE =»ALL» AND ALLUSERS | 3452 | This custom action will only happen during removal for all users. The sequence number places the action directly before RemoveFiles and after the rollbacks. |
GameUXRemoveAsCurUser | REMOVE =»ALL» AND NOT ALLUSERS | 3453 | This custom action will only happen during removal for the current user. The sequence number places the action directly before RemoveFiles and after the rollbacks. |
GameUXRollBackRemoveAsAdmin | REMOVE =»ALL» AND ALLUSERS | 3450 | This custom action will only happen when removal for all users is cancelled. The sequence number places the action directly before RemoveFiles and before the Remove custom action. |
GameUXRollBackRemoveAsCurUser | REMOVE =»ALL» AND NOT ALLUSERS | 3451 | This custom action will only happen when removal for the current user is cancelled. The sequence number places the action directly before RemoveFiles and before the Remove custom action. |
Add the row shown in the following table to the Property table in the MSI package.
List of Executable File Extensions
Files with these extensions might be able to execute a task automatically.
A file with an executable file extension means that the file format supports some ability to run an automatic task. This is in contrast to other file formats that just display data, play a sound or video, or otherwise present content without running a system command.
File Extensions Explained
If you open a file with one of these file extensions, your computer could, without your continued permission, run one or more operations programmed into that file.
To put it in even simpler terms, these files either belong to programs, scripts, or program extensions and plugins. They’re meant to run and do things on your computer, only you can’t be sure exactly what they’re running or doing. That’s why it’s always crucial to only run them when they come from a trusted source or website.
Those operations could be damaging if, for example, you were to run a virus-infected executable file that you received by email from someone you don’t know.
Please exercise caution before opening any executable file, especially those received in suspicious emails or downloaded from unfamiliar websites.
High-Risk File Extensions
We’ve rated the following executable file types as High Risk because essentially all computers with the listed operating system installed execute the commands contained in the executable file.
In other words, files with the extensions listed below can be executed with some basic parts of Windows, macOS, Linux, etc. No additional program is required.
Potentially Dangerous File Extensions | ||
---|---|---|
Extension | Format | Operating System(s) |
ACTION | Automator Action | macOS |
APK | Application | Android |
APP | Executable | macOS |
BAT | Batch File | Windows |
BIN | Binary Executable | Windows, macOS, Linux |
CMD | Command Script | Windows |
COM | Command File | Windows |
COMMAND | Terminal Command | macOS |
CPL | Control Panel Extension | Windows |
CSH | C Shell Script | macOS, Linux |
EXE | Executable | Windows |
GADGET | Windows Gadget | Windows |
INF 1 | Setup Information File | Windows |
INS | Internet Communication Settings | Windows |
INX | InstallShield Compiled Script | Windows |
IPA | Application | iOS |
ISU | InstallShield Uninstaller Script | Windows |
JOB | Windows Task Scheduler Job File | Windows |
JSE | JScript Encoded File | Windows |
KSH | Unix Korn Shell Script | Linux |
LNK | File Shortcut | Windows |
MSC | Microsoft Common Console Document | Windows |
MSI | Windows Installer Package | Windows |
MSP | Windows Installer Patch | Windows |
MST | Windows Installer Setup Transform File | Windows |
OSX | Executable | macOS |
OUT | Executable | Linux |
PAF | Portable Application Installer File | Windows |
PIF | Program Information File | Windows |
PRG | Executable | GEM |
PS1 | Windows PowerShell Cmdlet | Windows |
REG | Registry Data File | Windows |
RGS | Registry Script | Windows |
RUN | Executable | Linux |
SCR | Screensaver Executable | Windows |
SCT | Windows Scriptlet | Windows |
SHB | Windows Document Shortcut | Windows |
SHS | Shell Scrap Object | Windows |
U3P | U3 Smart Application | Windows |
VB | VBScript File | Windows |
VBE | VBScript Encoded Script | Windows |
VBS | VBScript File | Windows |
VBSCRIPT | Visual Basic Script | Windows |
WORKFLOW | Automator Workflow | macOS |
WS | Windows Script | Windows |
WSF | Windows Script | Windows |
WSH | Windows Script Preference | Windows |
[1] To execute an INF file, you must open the pop-up menu (usually by right-clicking on the file) and choose Install.
Other Executable File Extensions
The following file extensions are only executable if you happen to have the software installed that carries out the commands contained in the file.
If you do have one of the programs below installed, consider files with the associated extensions as executable and High Risk. If you don’t have a particular program installed and you try to execute a file with that extension, either a harmless error will appear or nothing at all will happen.
High Risk File Extensions | ||
---|---|---|
Extension | Format | Program |
0XE | Renamed Virus File | F-Secure Internet Security |
73K | TI-73 Application | TI Connect |
89K | TI-89 Application | TI Connect |
A6P | Authorware 6 Program File | Adobe Authorware |
AC | GNU Autoconf Script | Autoconf |
ACC | GEM Accessory File | Gemulator |
ACR | ACRobot Script | ACRobot |
ACTM | AutoCAD Action Macro | AutoCAD |
AHK | AutoHotkey Script | AutoHotkey |
AIR | Adobe AIR Installation Package | Adobe AIR |
APP | FoxPro Application | Visual FoxPro |
ARSCRIPT | ArtRage Script | ArtRage Studio |
AS | Adobe Flash ActionScript File | Adobe Flash |
ASB | Alphacam Stone VB Macro | Alphacam |
AWK | AWK Script | AWK |
AZW2 | Kindle Active Content App File | Kindle Collection Manager |
BEAM | Compiled Erlang File | Erlang |
BTM | 4DOS Batch File | 4DOS |
CEL | Celestia Script | Celestia |
CELX | Celestia Script | Celestia |
CHM | Compiled HTML Help File | Firefox, IE, Safari |
COF | MPLAB COFF File | MPLAB IDE |
CRT | Security Certificate | Firefox, IE, Chrome, Safari |
DEK | Eavesdropper Batch File | Eavesdropper |
DLD | EdLog Compiled Program | Edlog |
DMC | Medical Manager Script | Sage Medical Manager |
DOCM | Word Macro-Enabled Document | Microsoft Word |
DOTM | Word Macro-Enabled Template | Microsoft Word |
DXL | Rational DOORS Script | Rational DOORS |
EAR | Java Enterprise Archive File | Apache Geronimo |
EBM | EXTRA! Basic Macro | EXTRA! |
EBS | E-Run 1.x Script | E-Prime (v1) |
EBS2 | E-Run 2.0 Script | E-Prime (v2) |
ECF | SageCRM Component File | SageCRM |
EHAM | ExtraHAM Executable | HAM Programmer Toolkit |
ELF | Nintendo Wii Game File | Dolphin Emulator |
ES | SageCRM Script | SageCRM |
EX4 | MetaTrader Program File | MetaTrader |
EXOPC | ExoPC Application | EXOfactory |
EZS | EZ-R Stats Batch Script | EZ-R Stats |
FAS | Compiled Fast-Load AutoLISP File | AutoCAD |
FKY | FoxPro Macro | Visual FoxPro |
FPI | FPS Creator Intelligence Script | FPS Creator |
FRS | Flash Renamer Script | Flash Renamer |
FXP | FoxPro Compiled Program | Visual FoxPro |
GS | Geosoft Script | Oasis Montaj |
HAM | HAM Executable | Ham Runtime |
HMS | HostMonitor Script | HostMonitor |
HPF | HP9100A Program File | HP9100A Emulator |
HTA | HTML Application | Internet Explorer |
IIM | iMacro Macro | iMacros (Firefox Add-on) |
IPF | SMS Installer Script | Microsoft SMS |
ISP | Internet Communication Settings | Microsoft IIS |
JAR | Java Archive | Firefox, IE, Chrome, Safari |
JS | JScript Executable Script | Firefox, IE, Chrome, Safari |
JSX | ExtendScript Script | Adobe ExtendScript Toolkit |
KIX | KiXtart Script | KiXtart |
LO | Interleaf Compiled Lisp File | QuickSilver |
LS | LightWave LScript File | LightWave |
MAM | Access Macro-Enabled Workbook | Microsoft Access |
MCR | 3ds Max Macroscript or Tecplot Macro | 3ds Max |
MEL | Maya Embedded Language File | Maya 2013 |
MPX | FoxPro Compiled Menu Program | Visual FoxPro |
MRC | mIRC Script | mIRC |
MS | 3ds Max Script | 3ds Max |
MS | Maxwell Script | Maxwell Render |
MXE | Macro Express Playable Macro | Macro Express |
NEXE | Chrome Native Client Executable | Chrome |
OBS | ObjectScript Script | ObjectScript |
ORE | Ore Executable | Ore Runtime Environment |
OTM | Outlook Macro | Microsoft Outlook |
PEX | ProBoard Executable | ProBoard BBS |
PLX | Perl Executable | ActivePerl or Microsoft IIS |
POTM | PowerPoint Macro-Enabled Design Template | Microsoft PowerPoint |
PPAM | PowerPoint Macro-Enabled Add-in | Microsoft PowerPoint |
PPSM | PowerPoint Macro-Enabled Slide Show | Microsoft PowerPoint |
PPTM | PowerPoint Macro-Enabled Presentation | Microsoft PowerPoint |
PRC | Palm Resource Code File | Palm Desktop |
PVD | Instalit Script | Instalit |
PWC | PictureTaker File | PictureTaker |
PYC | Python Compiled File | Python |
PYO | Python Optimized Code | Python |
QPX | FoxPro Compiled Query Program | Visual FoxPro |
RBX | Rembo-C Compiled Script | Rembo Toolkit |
ROX | Actuate Report Object Executable | eReport |
RPJ | Real Pac Batch Job File | Real Pac |
S2A | SEAL2 Application | SEAL |
SBS | SPSS Script | SPSS |
SCA | Scala Script | Scala Designer |
SCAR | SCAR Script | SCAR |
SCB | Scala Published Script | Scala Designer |
SCRIPT | Generic Script | Original Scripting Engine 1 |
SMM | Ami Pro Macro | Ami Pro |
SPR | FoxPro Generated Screen File | Visual FoxPro |
TCP | Tally Compiled Program | Tally Developer |
THM | Thermwood Macro | Mastercam |
TLB | OLE Type Library | Microsoft Excel |
TMS | Telemate Script | Telemate |
UDF | Excel User Defined Function | Microsoft Excel |
UPX | Ultimate Packer for eXecutables File | Ultimate Packer for eXecutables |
URL | Internet Shortcut | Firefox, IE, Chrome, Safari |
VLX | Compiled AutoLISP File | AutoCAD |
VPM | Vox Proxy Macro | Vox Proxy |
WCM | WordPerfect Macro | WordPerfect |
WIDGET | Yahoo! Widget | Yahoo! Widgets |
WIZ | Microsoft Wizard File | Microsoft Word |
WPK | WordPerfect Macro | WordPerfect |
WPM | WordPerfect Macro | WordPerfect |
XAP | Silverlight Application Package | Microsoft Silverlight |
XBAP | XAML Browser Application | Firefox, IE |
XLAM | Excel Macro-Enabled Add-In | Microsoft Excel |
XLM | Excel Macro-Enabled Workbook | Microsoft Excel |
XLSM | Excel Macro-Enabled Workbook | Microsoft Excel |
XLTM | Excel Macro-Enabled Template | Microsoft Excel |
XQT | SuperCalc Macro | CA SuperCalc |
XYS | XYplorer Script | XYplorer |
ZL9 | Renamed Virus File | ZoneAlarm |
[1] By «Original Scripting Engine» I mean whatever program created the script. It would be impossible to list, and keep updated, the number of scripting engines that might use these file extensions.
This is not a complete list of executable file extensions, nor is it a list of dangerous but non-executable file types.