キーボードのチャタリングを修正する


メカニカルキーボードでチャタリングが起きた際に、ソフトウェア制御でキーの出力を修正する方法です。
いったんチャタリングが起きたらスイッチを交換する以外に根本の解決はできないので、あくまで一時的な回避方法と考えてください。

AutoHotkeyを使います。
ふだんから使っている人は、常駐させているスクリプトにコードを書き加えるだけでいいです。
使ってない人は導入後、以下を参考にスクリプトを記述して常駐させておきます。

例えばキーボードのaがチャタるようになった場合:

$a::
    Send {a down}
    Sleep 100
    Send {a up}
Return

大事なのは、ホットキーの行頭の修飾シンボル$です。これがないと出力されたaが再びホットキーを作動させて、無限ループに陥ってしまいます。その場合、エラーを吐いてスクリプトは正常に動作しません。
Sleepの間隔は、ミリ秒単位です。このタイミングをゆるめに設定することで、チャタリングを修正します。ゆるくすればするほど逆に意図的な連打で遅れを感じるようになるので、好みに合わせて調整してみてください。

対象のキーがaならa、bならbと記述すればいいですが、特殊キーを対象とする場合の記述方法はリファレンスを参照してください。

以上、AHKを使用した簡易的なチャタリングの修正方法でした。

 

WindowsのWebCacheを停止する方法


長年の悩みだったWebCacheV01.datの書き込みをやめさせる方法がわかったので書いておく

IEを使ってるわけでもないのにネットに接続するたび生成されるこのファイルは、XPの頃から厄介な機能の一つだったんですが、
このたび遅ればせながら8.1から10にOSを入れ替えまして、今まで使ってたFirefoxをそのまま使用したところ読み込みがやたら遅くなってたんです。
それで原因を調べたところ、Firefoxのキャッシュを読み込むたびにtaskhostw.exeが怪しい動きをしてまして。プロセスのスレッドをたどったところ、ESENTがdbになんかをコミットしてるらしく、それがどうもWebCacheのdbぽかったんですよ。
それでふとWebCacheフォルダをのぞいたところ、見つけました。Wininetがすごい量のログを吐き出してるのを。512KBの.logファイルがずらずらと、ちょっとweb巡回しただけでその容量1GB以上。
端からWebCacheフォルダごとRAMディスクの廃棄場に直行させてたので実害はなかったんですが、CドライブのSSDにそのまま置いてたらえらいことでした。
そこで最初はログを停止させる方法を調べてたんですが、その際偶然にもWebCacheそのものを完全に無効化させる方法を知ってしまいまして。
以下がその方法です。

[HKEY_CLASSES_ROOT\AppID\{3eb3c877-1f16-487c-9050-104dbcd66683}]
[HKEY_CLASSES_ROOT\CLSID\{0358b920-0ac7-461f-98f4-58e32cd89148}]
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{0358b920-0ac7-461f-98f4-58e32cd89148}]

レジストリーエディタを開き、これら3つのキーをまるごと削除します。
そのままでは削除できないので、アクセス権を変更するために所有者を変更する必要があります。管理者でもユーザーでもどっちでもいいです、どうせ消すので。
これだけであの厄介なWebCacheは機能を停止しますが、念のためにタスクスケジューラの\Microsoft\Windows\WininetにあるCacheTaskも削除したほうがいいです。クラスIDを削除した状態でこいつが動き出すと、また余計なエラーを吐くだけなので。
無効にするだけでもいいんですが、勝手に有効になることがウィンドウズの場合よくありますから。

というわけで、Firefoxは8.1の頃と同じ動きを取り戻しました。
最初、win10 ネット 遅い とかで検索したらDefenderのせいだとかいう記事ばかりで、もとからDefender無効にしてる自分には当てはまらないしおかしいなと思ったんですよ。
案の定俺環だったわけですが、Wininetがログを吐き続けた原因もだいたいわかってます。実はIEを削除した状態でインストールしたんですよ、win10を。だからIEさえ入ってれば、WebCacheの機能がうざかったとしてもネットが遅くなることはなかったんですよね、たぶん。
けどIEを入れるとなったらまたインストールイメージから作り直しかーめんどくせーなーとか思ってて。まあ結果IEなしでもふつうにやってけることがわかったんでよかったです。

以上、WindowsのWebCacheを停止する方法でした。
不具合が出るたびにWebCacheV01.datを削除とか非効率なことをやってる人たちに教えてあげたい……

人気の投稿