Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据需要多次初始化直接输入_C#_Directinput - Fatal编程技术网

C# 根据需要多次初始化直接输入

C# 根据需要多次初始化直接输入,c#,directinput,C#,Directinput,下面的代码使用SlimDx.dll初始化直接输入库。每次运行时,我只能使用它一次,例如,有一个按钮使用此代码,我想在单击此按钮时多次初始化直接输入,但它不会发生,并且仅在第一次单击时使用一次 DirectInput directInput = new DirectInput(); 如何解决此问题?仅初始化DirectInput一次?你为什么要一遍又一遍地做?因为你不能把按钮的动作和DX的初始化分开?这里还有一个我们无法用提供的信息解决的问题。在windows注册表中,有一个键存储连接的操纵手柄

下面的代码使用SlimDx.dll初始化直接输入库。每次运行时,我只能使用它一次,例如,有一个按钮使用此代码,我想在单击此按钮时多次初始化直接输入,但它不会发生,并且仅在第一次单击时使用一次

DirectInput directInput = new DirectInput();

如何解决此问题?

仅初始化DirectInput一次?你为什么要一遍又一遍地做?因为你不能把按钮的动作和DX的初始化分开?这里还有一个我们无法用提供的信息解决的问题。在windows注册表中,有一个键存储连接的操纵手柄信息。如果您初始化直接输入,此键将更新并为新连接的操纵手柄添加键,现在我想连接另一个操纵手柄并调用直接输入在注册表中创建其键,我必须关闭应用程序并再次运行它来执行此操作,但如果我可以通过按钮执行此操作,则更容易。您如何知道它仅初始化一次?在创建新的DI之前,您是否尝试过处理旧的DI?如何知道?很简单,如果你连接一个新的操纵杆并点击目标按钮,它应该通过调用DI在注册表中创建它的键,但是每次运行你只能调用DI一次,所以你应该关闭并再次运行应用程序。是的,我试过处理它。我发现在初始化DI时创建系统注册表项有点奇怪。你确定吗?你有任何支持这一说法的参考资料吗?最后,您看到密钥没有创建,并推断DI没有第二次初始化?