ddddddddddっ導入
「キーボーddddddddddッドが壊れた」とは、2016年07月15日に、「2ちゃんねる」という日本再ddddddddddっ大級のddddddddddっ電子掲示板サイトに投稿されたスレddddddddddddddddddddddッドの一つddddddddddっです。
そのスレddddddddddddddddddddddッドについては下のddddddddddっ動画ddddddddddっで詳しく説明されていますのddddddddddっで、ご存じない方はぜひ一ddddddddddっ度ご覧くddddddddddっださい。
完成品
(流石に飽きてきたと思うので元に戻します。)
Readme.txtの書き方についてはこちらのサイトを参考にさせていただきました。
使い方
「キーボーddddddddddッドが壊れた.exe」をダブルクリックして実行するだけです。
Windows Defenderに止められるかもしれませんが、悪いことはしていないので大丈夫です。
タスクトレイに常駐するので、不要になったときは右クリックから終了できます。
使用中の様子
なかなかに酷いです。スレ主さんの状況を再現できたのではないでしょうか。
ソースコード
このプログラムは実行中、キー入力を監視します。Dキーのキーダウンイベントが発生したらそのイベントをキャンセルして、代わりにDキーを12回キーダウンさせます。12回という定数はスレタイから特定しました。
こちら記事を参考に(ほぼコピペ)させていただきました。
// ---------- キー入力をするところのみ抜粋 ---------- //
bool preve = false; // 無限ループ防止用変数
int HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
switch ((int)wParam)
{
case 256: // キーダウンイベントの場合
short keyCode = (short)Marshal.ReadInt32(lParam); // キーコードを取得
if (keyCode == 68 & !preve) // Dキー(キーコード68)なら
{
preve = true; // 無限ループ防止
for (int i = 0; i < 12; i++) // 12回繰り返す
{
Thread.Sleep(1); // 1ms待つ(リアル感を出すため)
keyInput.Input(keyCode); // Dキーをダウン
}
preve = false;
return 1; // キーイベントをキャンセル
} else
{
break;
}
}
return 0; // その他のキーなら何もせずスルー
}
GitHubに公開しました。不要なコードなどがありましたら、どなたかアドバイスいただけると幸いです。
あとがき
スレ主さんは、悪意(笑)のある誰かが作ったこのようなクソアプリを、知らず知らずのうちにダウンロードしてしまっていたのかもしれませんね。
参考にさせていただいたサイト様
・タスクトレイに常駐について
・キーフックについて