1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

クソアプリAdvent Calendar 2021

Day 2

キーボーddddddddddッドを壊してみた

Last updated at Posted at 2022-04-02

ddddddddddっ導入

「キーボーddddddddddッドが壊れた」とは、2016年07月15日に、「2ちゃんねる」という日本再ddddddddddっ大級のddddddddddっ電子掲示板サイトに投稿されたスレddddddddddddddddddddddッドの一つddddddddddっです。

そのスレddddddddddddddddddddddッドについては下のddddddddddっ動画ddddddddddっで詳しく説明されていますのddddddddddっで、ご存じない方はぜひ一ddddddddddっ度ご覧くddddddddddっださい。

完成品

(流石に飽きてきたと思うので元に戻します。)

Readme.txtの書き方についてはこちらのサイトを参考にさせていただきました。

使い方

「キーボーddddddddddッドが壊れた.exe」をダブルクリックして実行するだけです。
Windows Defenderに止められるかもしれませんが、悪いことはしていないので大丈夫です。
スクリーンショット 2022-04-02 215113.png
タスクトレイに常駐するので、不要になったときは右クリックから終了できます。
スクリーンショット 2022-04-02 215037.png

使用中の様子

なかなかに酷いです。スレ主さんの状況を再現できたのではないでしょうか。
output.gif

ソースコード

このプログラムは実行中、キー入力を監視します。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に公開しました。不要なコードなどがありましたら、どなたかアドバイスいただけると幸いです。

あとがき

スレ主さんは、悪意(笑)のある誰かが作ったこのようなクソアプリを、知らず知らずのうちにダウンロードしてしまっていたのかもしれませんね。

参考にさせていただいたサイト様
タスクトレイに常駐について
キーフックについて

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?