ボタンがクリックされているかどうかを知るためにWindowsメッセージを使用するプログラムがあります:
IntPtr GetMsg(int nCode, IntPtr wParam, IntPtr lParam)
{
if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
{
int vkCode = Marshal.ReadInt32(lParam);
if ((Keys)vkCode == Keys.SomeKey)
{
/*Functions*/
}
}
}
ボタンはどこでも押すことができ、プログラムは引き続きそれらを処理します。
問題は、ユーザーが特定のボタンを押しているときはいつでも、ボタンが実行する機能が短時間に何度も繰り返されることです。また、機能はそれほど重くはありませんが、コンピューターがフリーズしたり、数秒間動作が遅くなったりします。
ボタンが押されていることがわかっている場合は、その機能を 1 回だけ実行します。
ボタンが押されていることを示す Windows メッセージにフラグまたは何かがありますか?