トップページ > 記事閲覧
ジョイパッドのguidProductを取得したい
名前:lltcggie 日時: 2015/12/28 00:57

いつもお世話になっています。 接続されているジョイパッドの種類を特定するためにデバイスのVIDとPIDを取得したいと思っています。 そこでDIDEVICEINSTANCE::guidInstanceを取得してそこからVIDとPIDを求めようとしているのですが、現在のDXライブラリにはDIDEVICEINSTANCE::guidInstanceを取得する方法がありません。 よろしければDIDEVICEINSTANCE::guidInstanceを追加していただけないでしょうか?
メンテ

Page: 1 |

Re: ジョイパッドのguidProductを取得したい ( No.1 )
名前:管理人 日時:2015/12/28 21:46

非公開関数で GetJoypadGUID という関数がありまして、こちらでデバイスの GUID を取得することができます // ジョイパッドのGUIDを得る int GetJoypadGUID( int PadIndex, GUID *GuidBuffer ) ; ただ、こちらの関数が使用できるのはデバイスの状態取得に DirectInput を使用している場合のみで、 Xbox360コントローラなど XInput に対応しているデバイスでは使うことができません XInput が使用されているかどうかは CheckJoypadXInput の戻り値で確認することができます // 指定の入力デバイスが XInput に対応しているかどうかを取得する // ( 戻り値 TRUE:XInput対応の入力デバイス // FALSE:XInput非対応の入力デバイス // -1:エラー ) // ( DX_INPUT_KEY や DX_INPUT_KEY_PAD1 など、キーボードが絡むタイプを InputType に渡すとエラーとなり -1 を返します ) int CheckJoypadXInput( int InputType ) ; あと、もし XInput を使用したくない、という場合は SetUseXInputFlag( FALSE ) ; を DxLib_Init 呼び出し前に 実行してください // XInput を使用するかどうかを設定する( TRUE:XInput を使用する( デフォルト )  FALSE:XInput を使用しない ) int SetUseXInputFlag( int Flag ) ;
メンテ
Re: ジョイパッドのguidProductを取得したい ( No.2 )
名前:lltcggie 日時:2015/12/28 23:03

すいません。本文に致命的な間違いがありました… ご迷惑をおかけして申しわけありませんでした。 タイトルにある通り、取得したいのはDIDEVICEINSTANCE::guidInstanceではなくDIDEVICEINSTANCE::guidProductの方でした。 DIDEVICEINSTANCE::guidProductを取得する関数は非公開関数の中にもなかったため要望を書かせていただいた次第です。 もしよろしければ実装していただけると幸いです。
メンテ
Re: ジョイパッドのguidProductを取得したい ( No.3 )
名前:管理人 日時:2015/12/29 11:41

すみません、私も気付いていませんでした GetJoypadGUID に guidProduct を取得するための引数を追加しましたので、よろしければ こちらのバージョンをダウンロードしてください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 第二引数が guidProduct を取得するための引数となります // ジョイパッドのGUIDを得る int GetJoypadGUID( int PadIndex, GUID *GuidInstanceBuffer, GUID *GuidProductBuffer = NULL ) ;
メンテ
Re: ジョイパッドのguidProductを取得したい ( No.4 )
名前:lltcggie(解決) 日時:2015/12/30 03:16

無事にguidProductを取得することが出来ました。 対応していただきありがとうございます!
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存