如何在非UWP C#项目中访问Windows.Gaming.Input?

mgdq6dx1  于 2023-01-21  发布在  Windows
关注(0)|答案(3)|浏览(204)

我见过一些在C++控制台应用程序中使用Windows.Gaming.Input的例子,但是有没有办法在非UWP C#项目中也访问它呢?
谢谢你,

rqdpfwrv

rqdpfwrv1#

我通过以下方法做到了这一点:
1.确保VisualStudio未运行。
1.在文本编辑器(如记事本)中打开项目*.csproj文件。
1.将<TargetPlatformVersion>10.0</TargetPlatformVersion>添加到*.csproj文件中。您可以将其放在<TargetFrameworkVersion/>条目之后。
1.在Visual Studio中打开项目。
1.使用nuget添加System.Runtime.WindowsRuntime引用(我使用的是v4.7.0,当时最新的稳定版本),或者手动浏览系统上的DLL文件。
1.在解决方案/项目资源管理器中,右键单击引用-〉添加引用...
1.你现在应该可以在侧面看到“通用窗口”作为一个选项。
1.添加Windows.Gaming引用。
1.在你的*.cs文件中,你会希望使用using Windows.Gaming.Input;的引用。如果没有找到引用,尝试将它包含在命名空间之外。或者你也可以尝试using global::Windows.Gaming.Input;

wixjitnu

wixjitnu2#

但是有没有办法在C#中使用UWP来访问它呢?
当然,你可以在UWP平台下用C#访问Windows.Gaming.Input

var controllers = RawGameController.RawGameControllers;
 foreach (var item in controllers)
 {
    var name =  item.DisplayName;
 }

不幸的是,没有C#项目可以参考,如果你想C#项目,请随时发布您的要求与Windows反馈中枢应用程序。

kfgdxczn

kfgdxczn3#

我一直在乔的方法工作了几天,但我不能添加Windows.Gaming.
我已经在Microsoft Visual Studio 2022(. Net 5.0)中创建了一个项目,然后我创建并更改为. Net Framework 4.8
文件. csproj

<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

    <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>net48</TargetFramework>
        <TargetPlatformVersion>10.0</TargetPlatformVersion>

        <SupportedOSPlatformVersion>7.0</SupportedOSPlatformVersion>
        <UseWpf>False</UseWpf>
        <UseWindowsForms>True</UseWindowsForms>
        <ImplicitUsings>enable</ImplicitUsings>
        <StartupObject>Service.App</StartupObject>
        <PlatformTarget>x64</PlatformTarget>
        <Prefer32Bit>False</Prefer32Bit>

        <Title>IO Service</Title>
        <Description>Assembly providing.</Description>
        <RootNamespace>Service</RootNamespace>
        <AssemblyTitle>Service</AssemblyTitle>
        <AssemblyName>Service</AssemblyName>

        <LangVersion>10.0</LangVersion>
        <GeneratePackageOnBuild>False</GeneratePackageOnBuild>
        <UserSecretsId>e6074671-c86e-45e7-9fe9-7081c2cae035</UserSecretsId>

        <Optimize>False</Optimize>
        <FileAlignment>512</FileAlignment>
        <AllowUnsafeBlocks>True</AllowUnsafeBlocks>

        <ApplicationRevision>0</ApplicationRevision>
        <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
        <ApplicationManifest>app.manifest</ApplicationManifest>
        <ApplicationIcon>Resources\Icon\App.ico</ApplicationIcon>
        <UseApplicationTrust>False</UseApplicationTrust>

        <!-- for .Net -->
        <ApplicationVisualStyles>True</ApplicationVisualStyles>
        <ApplicationHighDpiMode>SystemAware</ApplicationHighDpiMode>
        <ApplicationUseCompatibleTextRendering>False</ApplicationUseCompatibleTextRendering>
        <ApplicationDefaultFont>Microsoft Sans Serif, 8.25pt</ApplicationDefaultFont>

        <AutoGenerateBindingRedirects>False</AutoGenerateBindingRedirects>
        <UseVSHostingProcess>False</UseVSHostingProcess>

        <ErrorReport>none</ErrorReport>
        <WarningLevel>4</WarningLevel>

        <Deterministic>True</Deterministic>
        <DebugType>portable</DebugType>
        <NeutralLanguage>en-US</NeutralLanguage>

        <IsWebBootstrapper>False</IsWebBootstrapper>

    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
        <PackageReference Include="SharpCompress" Version="0.32.2" />
        <PackageReference Include="StackExchange.Redis" Version="2.2.88" />
        <PackageReference Include="System.Runtime.WindowsRuntime" Version="4.7.0" />
        <PackageReference Include="websocketsharp.core" Version="1.0.0" />
    </ItemGroup>

    <ItemGroup>
        <Reference Include="Accessibility" />
        <Reference Include="PresentationCore" />
        <Reference Include="PresentationFramework" />
        <Reference Include="System.Net.Http" />
        <Reference Include="UIAutomationClient" />
        <Reference Include="UIAutomationTypes" />
        <Reference Include="WindowsBase" />
    </ItemGroup>

    <ItemGroup>
        <Using Include="Windows.Gaming" />
    </ItemGroup>


</Project>

我安装了System.Runtime.WindowsRuntime,但是通用Windows没有添加到引用中。
image1image2
在项目属性中添加<TargetPlatformVersion>10.0</TargetPlatformVersion>全局使用显示后,我添加了Windows.Gaming,但它不工作。
image
"请救救我"

相关问题