レジストリの設定
レジストリは、構成、調整、およびユーザー設定情報の格納を目的としてジョイスティック インターフェイスによって使用されます。 また、調整プログラム用にカスタマイズされたテキストを格納するためにも使用されます。 Windows 95/98/Me のジョイスティック調整プログラムは、ジョイスティックに固有の調整中にユーザーに指示を提供するために、レジストリを介してカスタマイズできます。
値は 5 つのグループに分類されます。
OEM によって提供され、INF ファイル (前述) からインストールされた元のデータ。
ユーザー値
現在のレジストリ設定には、格納する値 (標準ポーリングの代わりとなる値) と、機能、調整された値、およびミニドライバー データが格納されるキーの 2 つの部分があります。
関連付けられたミニドライバーを持たないデバイスをポーリングし、標準のポーリングを置き換えるために使用するミニドライバーは、REGSTR_VAL_JOYCALLOUT という名前のキーで定義できます。 この機能は DirectX 3.0 の新機能でした。 値は、コントロール パネルの詳細設定ページで、JOY_HWS_ISGAMEPORTDRIVER フラグが設定されているすべてのミニドライバーを含む一覧から、ユーザーが新しいグローバル ドライバーを選択すると設定されます。
その他の設定は、REGSTR_KEY_JOYCURR キーに格納されます。 デバイスが最初に特定のジョイスティック ID に構成されると、コントロール パネルは、REGSTR_PATH_JOYOEM の関連する OEM キーからREGSTR_KEY_JOYCURR キーに値をコピーします。 このキーの下の各キー値の名前には、名前の一部としてジョイスティック ID が含まれているため、ジョイスティックごとに独自の設定を持つことができます。 REGSTR_VAL_JOYOEMNAME 値は関連する REGSTR_VAL_JOYNOEMNAME にコピーされ、存在する場合は REGSTR_VAL_JOYOEMCALLOUT 値が REGSTR_VAL_JOYNOEMCALLOUT にコピーされます。 REGSTR_VAL_JOYOEMDATA 値は、REGSTR_VAL_JOYNCONFIG 値の最初の 2 つのダブルワードとして使用され、その値の全体は次のように定義されます (展開されている場合)。
struct {
/* usage settings, copied from REGSTR_VAL_JOYOEMNAME */
struct {
DWORD dwFlags;
DWORD dwNumButtons;
} hws;
/* usage flags, described below */
DWORD dwUsageSettings;
struct {
/* values returned by hardware during calibration */
struct {
/* minimums for each axis */
struct {
DWORD dwX;
DWORD dwY;
DWORD dwZ;
DWORD dwR;
DWORD dwU;
DWORD dwV;
} jpMin;
/* maximums for each axis */
struct {
DWORD dwX;
DWORD dwY;
DWORD dwZ;
DWORD dwR;
DWORD dwU;
DWORD dwV;
} jpMax;
/* center positions for each axis */
struct
{
DWORD dwX;
DWORD dwY;
DWORD dwZ;
DWORD dwR;
DWORD dwU;
DWORD dwV;
} jpCenter;
} jrvHardware;
/* POV values returned by hardware during calibration */
DWORD dwPOVValues[JOY_POV_NUMDIRS];
/* calibration flags, described below */
DWORD dwCalFlags;
} hwv;
/* type of joystick, described below */
DWORD dwType;
/* reserved for OEM drivers */
DWORD dwReserved;
};
使用法の設定は、次の値の組み合わせです。
設定 | 値 | 説明 |
---|---|---|
JOY_US_HASRUDDER | 0x00000001 | ラダーで構成されたジョイスティック |
JOY_US_PRESENT | 0x00000002 | ジョイスティックが実際に存在するか |
JOY_US_ISOEM | 0x00000004 | ジョイスティックは OEM によって定義されたタイプである |
JOY_US_RESERVED | 0x80000000 | 予約されています。 |
調整フラグは、次の値の組み合わせです。
フラグ | 値 | 説明 |
---|---|---|
JOY_ISCAL_XY | 0x00000001 | XY が調整済み |
JOY_ISCAL_Z | 0x00000002 | Z が調整済み |
JOY_ISCAL_R | 0x00000004 | R が調整済み |
JOY_ISCAL_U | 0x00000008 | U が調整済み |
JOY_ISCAL_V | 0x00000010 | V が調整済み |
JOY_ISCAL_POV | 0x00000020 | POV が調整済み |
dwType メンバーは、定義済みのジョイスティックの種類を表す数値を保持します。 OEM 調整ユーティリティでこの値を設定する場合は、Mmddk.h で定義されている値の範囲外の値を設定する必要があります。 標準のコントロール パネルによってリセットされるため、値の正確性はそれほど重要ではありません。
現在の設定
これらのレジストリ設定は、「INF ファイルの作成」で説明されているように、INF ファイルからのインストール時、および起動時のデバイス列挙時に設定されます。
保存された設定
現在のジョイスティック設定を保存すると、REGSTR_KEY_JOYCURR キーの下に保存されている REGSTR_VAL_JOYNCONFIG も、OEM 定義の設定の取得元と同じ名前のサブキーの REGSTR_KEY_JOYSETTINGS キーの下に書き込まれます (OEM 以外の設定は、"predef" と種類を示す番号で構成されたサブキーに保存されます)。 ジョイスティックを交換した場合でも保存された設定は維持され、そのジョイスティックを再度使用したときに、保存された設定が現在の設定に戻されます。 これらのレジストリ値は、コントロール パネルによってのみ使用されます。
ドライバーの設定
REGSTR_VAL_JOYUSERVALUES という名前の単一の値には、以下で説明する構造体が格納されます。 この構造体は、アプリケーションがデータのスケーリング、センタリング、またはデッド ゾーンの定義を要求するときに、VJoyD によってデータを操作する方法を指定します。
struct {
/* value at which to time-out internal joystick polling */
DWORD dwTimeOut;
/* range of values app wants returned for axes */
struct {
/* minimums for each axis */
struct {
DWORD dwX;
DWORD dwY;
DWORD dwZ;
DWORD dwR;
DWORD dwU;
DWORD dwV;
} jpMin;
/* maximums for each axis */
struct {
DWORD dwX;
DWORD dwY;
DWORD dwZ;
DWORD dwR;
DWORD dwU;
DWORD dwV;
} jpMax;
/* center positions for each axis */
struct {
DWORD dwX;
DWORD dwY;
DWORD dwZ;
DWORD dwR;
DWORD dwU;
DWORD dwV;
} jpCenter;
} jrvRanges;
/* area around center to be considered as "dead". specified as */
/* a percentage (0-100). Only X & Y handled by system driver */
struct {
DWORD dwX;
DWORD dwY;
DWORD dwZ;
DWORD dwR;
DWORD dwU;
DWORD dwV;
} jpDeadZone;
}
ユーザー値、現在の設定、保存された設定はすべて、「現在の」ジョイスティック ドライバーに属するパスの下のレジストリに格納されます。 ドライバーがインストールされている各ジョイスティック デバイスには、Msjstick.drv<xxxx> という形式のパス REGSTR_PATH_JOYCONFIGの下にキーがあります。ここで、xxxx はキー名を一意に保つために使用される 4 桁の数値です。 この数は、インストールされているマルチメディア (サウンド、ビデオ、ゲーム コントローラー) ドライバーの数に関連します。 Msjstick.drv は、起動時に各ゲーム コントローラー ドライバーの構成に初期化されます。 一度に 1 つの構成しか処理できないので、それぞれが最後の構成を置き換え、「現在の」ドライバーが初期化される最後のドライバーになります。 つまり、新しいドライバーをインストールすると、ユーザーは現在の設定をすべて失う可能性があるため、これらのレジストリ値へのパスが常に同じであるという前提でミニドライバーを構成することはできません。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示