다른 응용 프로그램에서는 델파이 그리드의 셀에 프로그래밍 방식으로 한 문자를 입력해야합니다. 수동으로 수행하기 위해WinAPI를 사용하여 델파이에서 키보드 입력 시뮬레이션하기
는 다음과 같은 단계가 필요합니다 :
- 눌러 F3 버튼을 누릅니다.
- 오른쪽 화살표 키를 세 번 누릅니다.
- 스페이스 버튼을 누릅니다.
- 키보드에 'E'문자를 입력하십시오.
오른쪽 화살표 키를 누릅니다.
// Press F3 button keybd_event(VK_F3, 0, 0, 0); // Press right arrow key 3 times keybd_event(VK_RIGHT, 0, 0, 0); keybd_event(VK_RIGHT, 0, 0, 0); keybd_event(VK_RIGHT, 0, 0, 0); // Press the space button keybd_event(VK_SPACE, 0, 0, 0); // Type letter E keybd_event(Ord('E'), 0, 0, 0); // Move to the right keybd_event(VK_RIGHT, 0, 0, 0);
그러나 그것은 작동하지 않습니다. 이 코드를 실행하면 아무 일도 일어나지 않는 것 같습니다.
사용자 입력을 실제로 시뮬레이트하도록이 코드를 어떻게 수정해야합니까?
나는''virtual keyboard' (http://stackoverflow.com/a/12565963/960757)에 대해 뭔가를 만들었습니다. (많은 사람들이있을 것입니다.) 그러나 문제가 있다면,'TStringGrid'를 목표로한다면, 집중하고 키 스트로크를 시뮬레이트하는 것 외에는 다른 일을 할 수 없다고 생각합니다 ('TStringGrid'는 어떤 종류의 메시지에도 응답하지 않습니다. 셀의 텍스트를 설정할 수 있어야 함). – TLama
이 특정 응용 프로그램에서는 키보드를 통해서만 그리드에 값을 입력 할 수 있습니다. AutoHotKey 및 MS UI 자동화로 이미이 작업을 수행했지만 지금은 Delphi에서이 코드를 다시 작성해야합니다. –
목표 시스템에 200 밀리 초마다 자체적으로 활성화되는 프로그램이 있기 때문에 초점을 맞추고있는 그리드에 의존 할 수 없습니다. –