c# - 从 Steam API 检索已安装游戏的列表

标签 c# steam steam-web-api steamworks-api

我正在开发一个 Steam 轮盘程序,我正在尝试创建过滤器。我想实现的过滤器之一是(如果用户数据是用 SteamWorks 加载的),是返回他/她在他的计算机上安装的游戏列表(最好是 App ID 形式),然后我可以比较到我原来的完整列表以删除不需要的值;就像一个过滤器,用于从可以选择的可能游戏列表中删除用户没有安装在他的机器上的游戏。

如果:

Steam Roulette was an online trend, in the form of a web application in which the user picks a random game out of his/her Steam library and plays it.

现在,我正在使用通过 SteamUser.GetSteamID().ToString() 检索到的 Steam ID 使用 Web API 检索用户详细信息,并将其输入:

string apiURL = "http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=" + APIKey + "&steamid=" + id + "&format=json&include_appinfo=1";

并从那里读取返回的 .json 信息以生成程序可以从中选择的游戏列表。


我是否可以使用任何 SteamWorks 函数来检索安装在计算机上的游戏列表,而不是玩家拥有/拥有的所有游戏,而无需读取 Steam 库他们各自的文件夹?

如果不存在可能的功能,是否有任何方法可以手动(在 API 之外)获取已安装游戏的列表?

最佳答案

此文件 C:\Program Files (x86)\Steam\steamapps\libraryfolders.vdf

包含所有本地 Steam 库的路径。 (不包括默认库中的那个)

然后获取位于每个游戏文件夹中的 steam_appid.txt 中的值 ({library}\steamapps\common\{game}\steam_appid.txt ),您将获得所有已安装游戏的 Steam 应用 ID 列表。

Vdf 文件是阀门专有文件(如 JSON)。 您可以使用 Vdf.NET解析类似JSON的vdf文件。

关于c# - 从 Steam API 检索已安装游戏的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33662175/

相关文章:

Java - OpenID(使用 Steam 登录)

php - 来自 steamcommunity JSON 上的 PHP file_get_contents 的 JQuery $.getJSON

javascript - Steam:使用 PHP 将 SteamID64 转换为 SteamID

c# - DataGridView 验证和更改单元格值

c# - 字符串字符串名称{get;设置;} vs stringName stringName {get;放;}

c# - 为什么 xamarin 表单 ListView 中的组标题在 Release模式下不可见?

linux - 安装 Open GL 库后 Debian 无法启动

c# - 检查 DbSet<T> 是否为空

steam - 获取 Steam 市场 (API) 结果(欧元)

rest - 在 Steam Web API 上设置语言