Delphi 프로젝트에서 키가 눌려진 기간을 감지하고 사용자에게 경고하는 방법을 찾고 있습니다.키를 얼마나 오래 누르고 있었는지 어떻게 알 수 있습니까?
나는 채팅 프로그램을 작성 중이며 W 키와 같은 편지를 보류중인 사람이 채팅 상자에 스팸을 보내고 있는지 확인해야합니다. 델파이 7에서 무엇을하려고하는지 샘플을 알려 드리겠습니다 :
//Looking up if key in use and held for lets say 20 seconds
if (GetAsyncKeyState(Byte(VkKeyScan('W'))) shl 20) <> 0 then
begin
ShowMessage('W Key Held down too long!');
end;
GetAsyncKeyState에서 해당 정보를 제공할지 여부는 확실하지 않습니다. 그렇지 않다면, 무엇을 할 것인가?
'WM_KEYDOWN'과'WM_KEYUP' 메시지를 듣는 것이 더 쉬울까요? –
각 사용자마다 다를 수있는 키보드 반복 속도/반복 지연 (시스템 전체 매개 변수)이 있습니다. 나는 당신이 그것을 고려해야한다고 생각합니다. – kobik
IIRC, 키 누름의 창 메시지에는 실제로 생성 된 반복 횟수가 포함됩니다. – mj2008