これに反対票を投じる前に、ネット上に投稿された方法が私にはうまくいかないので、これを言いたいと思います。
HKEY_CURRENT_USER\Control Panel\Accessibility\StickyKeys
に移動し、フラグを10
、26
、250
、506
に変更しようとしましたが、名前を付けても、まだ名前が付けられていません。無効にします。ところで、表示されるポップアップと実際のスティッキーキー機能の両方を無効にしたいのですが。
コントロールパネルからコンピューターの簡単操作の部分に移動して無効にすると、Flags
が250
でHKEY_CURRENT_USER\Control Panel\Accessibility\StickyKeys
に変更されますが、手動で250と入力すると、動作しません。したがって、スティッキーキーの設定も別の場所に保存する必要があると思います。
ところで、レジストリキーでスティッキーキーを無効にするプログラムを書いているので、コントロールパネルからコンピューターの簡単操作を使用できなくなります。
では、なぜレジストリキーの変更は、私ではなく、ネット上の他の人々のために機能するのでしょうか。私はWindows764ビットを使用しています。ありがとう。
この記事が役立つと思います: http://msdn.Microsoft.com/en-us/library/windows/desktop/ee416808(v = vs.85).aspx
2番目の例を見ると、基本的に必要なものが得られることがわかります。以下のコード(WinMainメソッドを除く)を別のファイルに入れて、プログラムに呼び出させることができます。
STICKYKEYS g_StartupStickyKeys = {sizeof(STICKYKEYS), 0};
TOGGLEKEYS g_StartupToggleKeys = {sizeof(TOGGLEKEYS), 0};
FILTERKEYS g_StartupFilterKeys = {sizeof(FILTERKEYS), 0};
INT WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int )
{
// Save the current sticky/toggle/filter key settings so they can be restored them later
SystemParametersInfo(SPI_GETSTICKYKEYS, sizeof(STICKYKEYS), &g_StartupStickyKeys, 0);
SystemParametersInfo(SPI_GETTOGGLEKEYS, sizeof(TOGGLEKEYS), &g_StartupToggleKeys, 0);
SystemParametersInfo(SPI_GETFILTERKEYS, sizeof(FILTERKEYS), &g_StartupFilterKeys, 0);
// Disable when full screen
AllowAccessibilityShortcutKeys( false );
// Restore back when going to windowed or shutting down
AllowAccessibilityShortcutKeys( true );
}
void AllowAccessibilityShortcutKeys( bool bAllowKeys )
{
if( bAllowKeys )
{
// Restore StickyKeys/etc to original state and enable Windows key
STICKYKEYS sk = g_StartupStickyKeys;
TOGGLEKEYS tk = g_StartupToggleKeys;
FILTERKEYS fk = g_StartupFilterKeys;
SystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(STICKYKEYS), &g_StartupStickyKeys, 0);
SystemParametersInfo(SPI_SETTOGGLEKEYS, sizeof(TOGGLEKEYS), &g_StartupToggleKeys, 0);
SystemParametersInfo(SPI_SETFILTERKEYS, sizeof(FILTERKEYS), &g_StartupFilterKeys, 0);
}
else
{
// Disable StickyKeys/etc shortcuts but if the accessibility feature is on,
// then leave the settings alone as its probably being usefully used
STICKYKEYS skOff = g_StartupStickyKeys;
if( (skOff.dwFlags & SKF_STICKYKEYSON) == 0 )
{
// Disable the hotkey and the confirmation
skOff.dwFlags &= ~SKF_HOTKEYACTIVE;
skOff.dwFlags &= ~SKF_CONFIRMHOTKEY;
SystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(STICKYKEYS), &skOff, 0);
}
TOGGLEKEYS tkOff = g_StartupToggleKeys;
if( (tkOff.dwFlags & TKF_TOGGLEKEYSON) == 0 )
{
// Disable the hotkey and the confirmation
tkOff.dwFlags &= ~TKF_HOTKEYACTIVE;
tkOff.dwFlags &= ~TKF_CONFIRMHOTKEY;
SystemParametersInfo(SPI_SETTOGGLEKEYS, sizeof(TOGGLEKEYS), &tkOff, 0);
}
FILTERKEYS fkOff = g_StartupFilterKeys;
if( (fkOff.dwFlags & FKF_FILTERKEYSON) == 0 )
{
// Disable the hotkey and the confirmation
fkOff.dwFlags &= ~FKF_HOTKEYACTIVE;
fkOff.dwFlags &= ~FKF_CONFIRMHOTKEY;
SystemParametersInfo(SPI_SETFILTERKEYS, sizeof(FILTERKEYS), &fkOff, 0);
}
}
}
うまくいけば、これが役立つでしょう。
しばらく前に調べたところ、最後の構成を保持していると思われる別のキーがあったことがわかりました。Software\ Microsoft\Windows NT\CurrentVersion\Accessibility\Configuration
空の値(および上記の値をそれぞれのキーに)を挿入するだけで、それで十分です。