Microsoft MVP성태의 닷넷 이야기
다른 프로그램의 컨트롤 건드려보기_추가질문 [링크 복사], [링크+제목 복사],
조회: 17409
글쓴 사람
임동찬 (dngchn.im at samsung.com)
홈페이지
첨부 파일
 

제가 구현하고자 하는 것에 대해 구체적으로 말씀드리자면,
타겟 프로그램이 있고, 이는 UI에 하나의 grid 형태의 컨트롤을 갖고 있습니다.
제가 지금까지 알아낸 것은,
해당 grid 컨트롤의 윈도우 핸들,
사용된 그 grid의 ActiveX (dll 파일을 갖고 있어, C#에서 레퍼런스 추가하여 인터롭을 통해 이벤트 및 메서드를 이용할 수 있습니다.)
타겟 프로그램의 버튼 클릭이나 텍스트박스 내용 읽어내기는 윈도우 핸들을 이용하여 가능합니다만,
위 grid 내부의 내용을 읽어내고 싶은데, 방법을 못찾고 있습니다.
SPY와 같은 유틸리티를 통해서도 grid 까지는 접근가능한데,
grid 내부의 각 셀 단위까지는 접근할 수 없습니다.
...
최종적으로는 타겟 프로그램 UI의 grid 컨트롤이 받는 이벤트를 모두 다 받아 처리하고 싶지만,
그러기에 앞서 이 grid의 내용을 읽어낼 수 있을까요?








[최초 등록일: ]
[최종 수정일: 11/10/2010]


비밀번호

댓글 작성자
 



2010-11-10 08시45분
Grid 같은 경우, 보통 내부 Cell 들은 별도의 HWND를 갖지 않고 단순히 "그려지는" 요소에 불과합니다. 따라서, 이런 경우는 명시적으로 Grid에서 그러한 자료를 액세스할 수 있는 메서드를 제공해야 합니다. (또는 윈도우 메시지.)

예를 들어 보면, WM_GET_CELL (LO_WPARAM = x, HI_WPARAM = y) 이라는 윈도우 메시지를 Grid가 제공해야겠지요.
문제가 하나 더 있습니다. 대부분의 사용자 정의 윈도우 메시지는 데이터 마샬링을 프로세스 주소 공간밖으로 할 것에 대한 배려가 거의 없다고 보시면 됩니다. 즉, 설령 그런 윈도우 메시지를 제공해준다고 해도 "다른 프로세스"로부터 윈도우 핸들만으로 알아내는 것은 대부분 불가능합니다.

kevin25

1  2  [3]  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5916한예지 donator9/3/202313033Thread.Sleep(500), await Task.Delay(500), Task.Delay(500) 차이점이 궁금합니다. [2]
5915한예지 donator8/30/202314205비동기 코드를 for 문 안에 작성한 경우 제어 변수가 올바르게 동작하지 않는 이유가 궁금합니다. [3]
5914한상욱8/11/202313879.net wpf에서 skiasharp 의 skelement 를 canvas로 사용 하고 있습니다. [1]
5913김태우8/10/202313480지역변수로 이해하는 메서드매개변수 게시글 댓글 [3]
5912guest4/25/202318866[참고 - 초보용] Sqlite 디비는 double이 없고 Real이 대신합니다 [3]
5911guest4/24/202312832Form1.cs와 외부 class.cs와 통신 (static async method포함) [4]파일 다운로드1
5910guest4/24/202312201Async 메서드와 try~catch [1]
5909guest4/22/202313628Visual Studio 구매 시(1인 개발자) [4]
5908guest4/22/202313015텅빈 원그리기 [5]
5907민성4/21/202312929안녕하세요 서버 백업 문제에 대해서 [2]
5906guest4/21/202313251Dispatcher 서비스 구현 질문 [1]
5905guest4/20/202314169tabControl의 tabPage가 여러 개일 때 순서를 바꾸기가 까다롭네요 [5]
5904guest4/18/202314400[신규자료첨부] DLL 'SQLite.Interop.dll'을 찾을 수 없습니다 [4]파일 다운로드1
5903guest4/18/202313109fileSystemWatcher 이벤트 관련 질문입니다 [2]
5902guest4/17/202314236c#으로 USB 관련 질문 [2]
5901guest4/17/202311786내솔루션 판매 시 1.0.0.0 폴더와 Sqlite 배포 [5]
5900guest4/17/202314660DLL 'SQLite.Interop.dll'을 찾을 수 없습니다 [2]파일 다운로드1
5899guest4/17/202312777Dictionary와 Linq [4]
5898차가워4/17/202312482CNTK 교육 문의 [1]
5897guest4/17/202312192Socket스레드와 UI thread [4]
5896HAN4/16/202312133c언어 return 에 대해 궁금한게 있어요. [1]파일 다운로드1
5895guest4/15/202312432Drag and Drop - 모든 컨트롤 [2]
5894송부장4/14/202314205[질문] Visual Studio 2022에서 '도구 상자 항목 선택'의 'COM 구성 요소' 탭에서 ActiveX 목록이 보이지 않습니다. [3]파일 다운로드2
5893감사합니...4/14/202312048오라클 OLEDB방식 접속 후 SELECT 'TEST' TEST_VALUE FROM DUAL의 값이 이상합니다. [1]
5892한무4/14/202311950C# 으로 백그라운드에서 워드를 실행하여 매크로 실행이 가능 할까요? [2]
5891리세4/14/202313192안녕하세요.C# 서버프로그램에서의 Mysql 쿼리문제(다중쿼리 실행)에 대해 문의드립니다. [2]
1  2  [3]  4  5  6  7  8  9  10  11  12  13  14  15  ...