掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ctrl + v のエミュレーション (ID:52215)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは、ヒカルです。 SendInputを使ってみました。 もっと汎用的にこれを関数化してみたいのですが、 VBのRedim PreserveみたいにINPUT構造体の配列を 引き伸ばしてあげたいのですが、newとかmallocとか 調べているのですがちょっと難しくてです。 関数化なので構造体をグローバルな変数で 使わないと、呼び出しでローカルな構造体を 渡して、またこれを戻り値で呼び出し元に 返してあげないとダメですので、このあたりの 処理にまだ自信がありません。 このあたりも含めましてアドバイスお願いします。 INPUT KeyInputs[4]; int KeyInputCount = 0; void KeybdInput(Byte VKey, Bool Flags){ KeyInputCount++; KeyInputs[KeyInputCount - 1].Itype = INPUT_KEYBOARD; KeyInputs[KeyInputCount - 1].ki.wVk = VKey; KeyInputs[KeyInputCount - 1].ki.wScan = MapVirtualKey(wVk, 0); if (Flags) { KeyInputs[KeyInputCount - 1].ki.dwFlags = KEYEVENTF_EXTENDEDKEY || KEYEVENTF_KEYUP; }else{ KeyInputs[KeyInputCount - 1].ki.dwFlags = KEYEVENTF_EXTENDEDKEY || 0; } KeyInputs[KeyInputCount - 1].ki.time = 0; KeyInputs[KeyInputCount - 1].ki.dwExtraInfo = 0; } //呼び出し KeybdInput(VK_SHIFT, 0); KeybdInput('V', 0); KeybdInput('V', true); KeybdInput(VK_SHIFT, true); SendInput(KeyInputCount, KeyInputs, sizeof(INPUT);
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.