Сначала нам нужно найти, где и как Ubisoft отслеживает игры, установленные uplay Анкет
После некоторого копания и спрашивающего, я смог обнаружить, что есть два способа получения этих данных.
Первый путь: извлечение информации из папок
- Uplay делает эти папки, которые названы в честь Uplayid сам
C: \ Program Files (x86) \ Ubisoft \ Ubisoft Game Launcher \ Data
Имена папок – это uplay ids установленных игр
- Ниже приведен код Python для извлечения идентификаторов через эти папки
import winreg, os, re # Finding Uplay IDs by going through the uPlay data folder def getUplayIDs(filePath = 'C:\\Program Files (x86)\\Ubisoft\\Ubisoft Game Launcher\\data'): listOfFiles = os.listdir(filePath) def findIDs(): result = re.findall(r'\d+', str(entry)) try : return result[0] except : pass for entry in listOfFiles: uPlayID = findIDs() # '\d' finds any number (a digit) if uPlayID != None : print(uPlayID) #getUplayIDs()
Второй путь: извлечение информации из реестра Windows
def getUplayIDs(): # ubisoftGameList = {} baseReg = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE) subKey = winreg.OpenKey(baseReg, "SOFTWARE\\WOW6432Node\\Ubisoft\\Launcher\\Installs\\") for i in range(50) : try : gameId = winreg.EnumKey(subKey,i) gameNameKey = winreg.OpenKey(baseReg, "SOFTWARE\\WOW6432Node\\Ubisoft\\Launcher\\Installs\\" + gameId + "\\") name = winreg.EnumValue(gameNameKey, 1) path = name[1] path = os.path.dirname(path) gameName = os.path.basename(path) print('\nThe Game name is: ' + gameName + ' \nThe Game ID is: ' + gameId) except : pass winreg.CloseKey(baseReg)
Эти фрагменты кода взяты из моего проекта GitHub: Plei Plei-это игровая ланчар, который анализирует игры, установленные
- Готовить на пару
- подъем
- Источник
- Эпические игры
И давайте разыграем их из одной точки входа
Если вы хотите внести или загрузить проект, посетите ссылку ниже
https://github.com/sakshatshinde/Plei
Оригинал: “https://dev.to/sakshatshinde/a-simple-way-to-find-installed-game-s-uplay-ids-with-python-3jf6”