diff --git a/userdata/dcs_environment.py b/userdata/dcs_environment.py new file mode 100644 index 00000000..75e62ab9 --- /dev/null +++ b/userdata/dcs_environment.py @@ -0,0 +1,49 @@ +""" +This utility classes provides methods to check players installed DCS environment. + +TODO : add method 'is_using_open_beta', 'is_using_stable' +TODO : [NICE to have] add method to check list of installed DCS modules (could be done either through window registry, or through filesystem analysis) +TODO : add method 'get DCS install path' +TODO : add method 'get DCS save path' + +""" + +import winreg + + +def is_using_dcs_steam_edition(): + """ + Check if DCS World : Steam Edition version is installed on this computer + :return True if DCS Steam edition is installed, + -1 if DCS Steam Edition is registered in Steam apps but not installed, + False if never installed in Steam + """ + try: + # Note : Steam App ID for DCS World is 223750 + dcs_path_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Valve\\Steam\\Apps\\223750") + installed = winreg.QueryValueEx(dcs_path_key, "Installed") + winreg.CloseKey(dcs_path_key) + if installed[0] == 1: + return True + else: + return False + except FileNotFoundError as fnfe: + return False + + +def is_using_dcs_standalone_edition(): + """ + Check if DCS World standalone edition is installed on this computer + :return True if Standalone is installed, False if it is not + """ + try: + dcs_path_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Eagle Dynamics\\DCS World") + winreg.CloseKey(dcs_path_key) + return True + except FileNotFoundError as fnfe: + return False + + +if __name__ == "__main__": + print("Using STEAM Edition : " + str(is_using_dcs_steam_edition())) + print("Using Standalone Edition : " + str(is_using_dcs_standalone_edition())) \ No newline at end of file