header image

如何将UWP应用添加到Steam

虽然UWP现在半死不活的,但是自从有了Win32转制之后,还是有不少应用登录Microsoft Store的,再加上现在微软大力推游戏,因此将这些游戏添加进Steam就成了一个问题。

目标

说白了,将UWP应用添加到Steam就是利用PowerShell来执行一个命令

Start-Process <ProtocolName>

下面就介绍如何来找到这个<ProtocolName>

如果你的游戏安装在C盘下

其实这个方法可以用于安装在任何盘下的,只不过其他盘下我们有更简单粗暴的方法,但还是先看完这一部分,因为有的内容后面还要用到。

首先我们打开一个文件管理器窗口,在地址栏里输入%AppData%(或者打开运行窗口(Win+R)输入可以),回车,就来到了当前用户的AppData\Roaming目录下,我们先向上一层,来到AppData目录,再进入Local\Packages目录。

然后我们用文件管理器右上角的搜索框直接搜索游戏名称(注意!这一步可能要运行过游戏之后才能搜索到)比如我要找帝国时代决定版,就搜索Age(of Empires)。结果可以看到一个Age of Empires DE右键属性可以看到位置中,其在Packages下的Microsoft.MSDallas_8wekyb3d8bbwe目录里,这就是它的PackageFamilyName了。

其中,Microsoft.MSDallas就是这个Package的Name8wekyb3d8bbwePublisherId,也就是微软了),我们以管理员身份打开PowerShell(在开始按钮上点右键,然后选择Windows PowerShell (管理员)即可),然后输入命令回车执行:

2019年11月19日更新

由于帝国时代决定版包名变更,而且发现了更简单的方法,所以上面的方法作废。

首先,运行游戏。

然后,打开任务管理器(Ctrl+Alt+Delete然后点任务管理器,或者在任务栏上右键单击然后点任务管理器)。如果是简略模式,点击左下角的详细信息进入详细模式。

然后,我们可以在第一个进程选项卡中看到打开的游戏Age of Empires Definitice Edition (3),后面的(3)表示游戏有3个进程,点左边的展开箭头,可以看到三个进程,AoEDE就是主进程。我们在上面点右键,选转到详细信息,就会跳转到详细信息选项卡,并选中AoEDE.exe这个进程。但是我们点击右键、打开文件位置或者属性都是没有用的。这是我们要列表最上方的列名称上点右键、选择列,找到命令行并勾选、确定。然后我们就可以在命令行一列看到完整的路径了("C:\Program Files\WindowsApps\Microsoft.Darwin_100.1.28529.0_x64__8wekyb3d8bbwe\AoEDE.exe"),其中C:\Program Files\WindowsApps\Microsoft.Darwin__100.1.28529.0_x64_8wekyb3d8bbwe\就是我们要找的主目录。

如果不想手动输入那么长的目录,我们可以注意到,Microsoft.Darwin就是应用包的名称,我们可以通过命令来获得安装位置:

Get-AppxPackage <Name>

<Name>对于帝国时代决定版就是Microsoft.Darwin,回车运行就会得到完整的信息,包括InstallLocation。这就是游戏的安装目录了。我们执行下面的命令进入安装目录(Powershell窗口中选中内容后点击右键是复制,输入时点击右键是粘贴):

cd '<InstallLocation>'

注意<InstallLocation>两端要加上引号'",否则可能会有空格会导致命令失败。

然后我们可以用ls命令看到当前目录下的文件,这里我们需要的是appxmanifest.xml文件,我们执行下面的命令:

cat .\appxmanifest.xml

这个命令把appxmanifest.xml的内容显示到PowerShell中。我们可以找到其中的<Applications>标签,我们要的内容就在这里了,如帝国时代决定版的就是:

  <Applications>
    <Application Id="App" Executable="AoEDE.exe" EntryPoint="Windows.FullTrustApplication">
      <uap:VisualElements DisplayName="Age of Empires Definitive Edition" Square150x150Logo="SquareLogo_150x150.png" Square44x44Logo="SmallLogo_44x44.png" Description="Age of Empires: Definitive Edition" ForegroundText="light" BackgroundColor="transparent">
        <uap:SplashScreen Image="Splashscreen_1920x1080.png" />
      </uap:VisualElements>
      <Extensions>
        <uap:Extension Category="windows.protocol">
          <uap:Protocol Name="ms-xbl-68a451d4" />
        </uap:Extension>
        <uap:Extension Category="windows.protocol">
          <uap:Protocol Name="ms-xbl-multiplayer" />
        </uap:Extension>
      </Extensions>
    </Application>
  </Applications>

<Extensions>标签下,我们可以看到<uap:Protocol Name="ms-xbl-68a451d4" />ms-xbl-68a451d4就是我们要找的ProtocolName了。

另类方法

上面我们得到Package的Name之后(或者Get-AppxPackage <Name>得到更详细的PackageFullName),可以到注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\PackageRepository\Packages\<PackageFullName>\windows.protocol下看到我们要找的ProtocolName

或者在HKEY_CURRENT_USER\SOFTWARE\Classes\Extensions\ContractId\Windows.Protocol\<PackageFullName>\ActivatableClassId\<SomeString>\CustomProperties,选中之后右边的Name数据就是ProtocolName。其中<PackageFullName>就是PackageFullName<SomeString>是一串字符串,不用在意含义。

如果你的游戏安装在其他盘上

上面的方法依然有效,但我们有更简单粗暴的方法:

非常简单,其他盘上会有一个WindowsApps的目录,游戏就装在这里面了。我们还是以管理员身份打开PowerShell(在开始按钮上点右键,然后选择Windows PowerShell (管理员)即可),然后输入命令回车执行:

cd 'D:\WindowsApps'

上面的命令是进入目录,其中D是对应的盘符,根据实际情况修改。然后我们用下面的命令来查看子目录:

ls

如果你只安装了一个游戏,那么就很好办了,直接进入目录查看其中的appxmanifest.xml就可以了(方法见上面)。

如果你安装了多个游戏,一个一个打开appxmanifest.xml看吧,文件中的<DisplayName>标签中可以看到这个Package的名称。如果实在太多,那还是按照上面的在C盘中方法来吧。

添加到Steam

首先打开Steam,然后点主界面左下角的添加游戏,然后选择添加非Stema游戏,这时会打开一个添加游戏对话框,随便选一个程序即可。

然后找到我们刚才添加的程序,右键属性,上面的名称改成游戏名称,目标修改成"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"起始位置留空。

然后点设置启动选项,填写-WindowStyle "Minimized" -NoExit -Command "Start-Process <ProtocolName>:",其中<ProtocolName>替换成我们之前找到的内容,注意后面有一个英文冒号:WindowStyle参数指定PowerShell窗口的运行方式,这里设置为最小化MinimizedNoExit参数指定运行命令后不退出,退出了Steam就不会显示游戏中状态了,游戏过后我们需要手动关闭窗口。Command参数就是指定要执行的命令了。比如帝国时代决定版就是-WindowStyle "Minimized" -NoExit -Command "Start-Process ms-xbl-multiplayer:"。设置好之后确定

然后关闭属性窗口,就可以运行游戏了。

最后

没图标总觉得不好看,可以自己去找图标,然后修改了就行。

赞赏

微信赞赏支付宝赞赏

没有评论

回复

your email will keep secret. (* required).

你可以使用这些HTML标签和属性:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> .

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据