Skip to content

Game-Based Profile Switching #3935

@nicktodorov

Description

@nicktodorov

Rules

  • I made myself familiar with the Readme, FAQ and Troubleshooting.
  • I understand that, if insufficient information will be provided, my issue will be closed without an answer.

Is your feature request related to a problem? Please describe

Implement automatic profile switching in GHelper based on when games are launched and closed. This feature would enhance user experience by automatically optimizing system settings for gaming and reverting to previous settings afterward.

Describe the solution you'd like

GHelper's existing profile management system can be extended to associate profiles with game detection events.
When a game is detected, GHelper can automatically switch to the user-defined gaming profile.
When the detected game process closes, Ghelper can revert to the default profile, or another user defined profile.

This game detection can be done using Windows Registry Monitoring HKEY_CURRENT_USER\System\GameConfigStore\Children registry path. This path is populated by Windows and game-related services and contains information about detected games, including their executable paths.
GHelper can use the Microsoft.Win32.Registry class to access and monitor this registry location for changes.

When a new process launches, GHelper can compare its executable path against the game paths retrieved from the registry. The System.Diagnostics.Process class can be used to obtain process information and monitor process exit events. Specifically, the "MatchedExeFullPath" value within the mentioned registry path subkeys, contains the full path to the game executable. By monitoring the registry for changes, and then monitoring the system for processes that match those executables, the Ghelper can very reliably detect when a game is running.

Describe alternatives you've considered

No response

Device and Model

Zephyrus G14 GA403UV

Additional information.

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions