안녕하세요?
ctrl + v 말고 붙여 넣기를 하실 수 있는 분이 혹시 계시면 방법을 좀 알려 주시기 바랍니다.
다른 어플리에이션의 스트링그리드 밑의 인플레이스에디트에 데이터를 보내려고 합니다.
이 컨트럴의 핸들 값을 알면 sendmessage 등을 통해 간단하게 보낼 수 있겠지만 스트링그리드들이 여럿 있어서 클래스 이름으로는 제어할 수 없고 spy++ 등으로 알아내는 윈도우 핸들 값은 어플리케이션을 실행할 때마다 달라져서 역시 이 것으로도 제어를 할 수 없읍니다.
컨트럴들이 이름도 가지고 있지 않습니다.
그래서 어쩔 수 없이 창과 컨트럴을 활성화한 상태에서 keybd_event로 입력을 하려고 하는데 특정 문자들만 입력을 받고 ctrl 등의 입력을 거부합니다.
혹시 같은 이름의 여러 클래스들 가운데 특정 클래스를 제어하는 방법을 알고 계신 분이 계시면 이 것도 좀 알려 주시기 바랍니다.
그럼 이만.
프로그램내부에서 특별히 처리하지 않은한 키보드로 Ctrl+V를 누르나 keybd_event를 이용해서 키를 누르나 별 차이가 없을건데요...
안된다고 하셔서 제가 테스트해봤지만 잘 됩니다.
<!--CodeS-->
keybd_event(VK_CONTROL, $9D, 0, 0); // Press Ctrl
keybd_event(VkKeyScan('V'), $9E, 0, 0); // Press V
keybd_event(VkKeyScan('V'), $9E, KEYEVENTF_KEYUP, 0); // Release V
keybd_event(VK_CONTROL, $9D, KEYEVENTF_KEYUP, 0); // Release Ctrl
<!--CodeE-->
항상 즐코하세요.