이것은 나에게는 믿기지 않지만 나는 방금 물어볼 것이라고 생각했습니다.다른 응용 프로그램의 Button_Click() 이벤트 발생
단추가있는 .NET 응용 프로그램이 있습니다. 이 응용 프로그램 소스는 기존 응용 프로그램을 편집 할 수 없습니다.
내 응용 프로그램에서 프로그래밍 방식으로 해당 버튼의 클릭 이벤트를 발생시키고 싶습니다.
이것이 가능합니까?
이것은 나에게는 믿기지 않지만 나는 방금 물어볼 것이라고 생각했습니다.다른 응용 프로그램의 Button_Click() 이벤트 발생
단추가있는 .NET 응용 프로그램이 있습니다. 이 응용 프로그램 소스는 기존 응용 프로그램을 편집 할 수 없습니다.
내 응용 프로그램에서 프로그래밍 방식으로 해당 버튼의 클릭 이벤트를 발생시키고 싶습니다.
이것이 가능합니까?
프로세스가 버튼 클릭과 같은 이벤트를 수행하기 위해 실행 중이어야합니다. 이 시점에서 버튼 클릭 이벤트를 발생시키는 방법에 대한 몇 가지 옵션이 있습니다.
두 가지 프로그램 사이의 소켓이나 파이프를 사용하는 한 가지 방법은 IPC (프로세스 간 통신)입니다. 이 옵션을 원한다면 공유 메모리를 사용할 수도 있습니다.
기본적으로 요청을 보내려면 소켓이나 파이프에서 수신 대기하는 버튼이있는 애플리케이션이 있어야합니다. 일단 수신되면, 거기에서 자신의 버튼 클릭 이벤트를 호출 할 수 있습니다.
키는 두 프로세스가 모두 실행 중이어야하며 다른 프로세스에 버튼 클릭 이벤트를 시작하라는 신호를 보내야합니다.
Mmmmmaybe ..
일단 ++ 스파이라는 응용 프로그램이 있었다 시간을 upun. 그것은 당신이 창을 검사하고
스파이가 ++ .NET으로 포팅되었습니다 등 속성, 개체 이름을 참조 할 수 (참조 [여기 링크 설명을 입력합니다] [1]
[1] : http://msdn.microsoft.com/en-us/magazine/cc163617.aspx). 너는 갈 수있어.
당신은 뒤 "기타 ControlProxy 방법"섹션에서는이 상태 경우.
" 에 창 메시지를 보낼 에 ControlProxy 및 SendMessage 메서드를 호출에서 살펴 본다 가치가 몇 가지 추가 방법이 있습니다 테스트 하네스를 만들려는 경우에 유용합니다. 예제의 경우 WM_CLICK 또는 WM_KEYDOWN 메시지를 보내어 입력 "을 시뮬레이션 할 수 있습니다. 물론
은 우아한도 안정적인 방법 :
소스 코드에 액세스 할 수 있으므로 버튼 이름 등을 찾을 수 있습니다. 그러나 "빨간 테이프"로 인해 변경 사항이 적용되지 않습니다. – Cheetah
난에 ... 나는 그것이 불가능하다고 생각하는 이유 인 이벤트 핸들러를 제기하고자하는 응용 프로그램의 소스를 편집 할 수 없습니다 아니다 처음에는 답변을 주셔서 감사합니다. – Cheetah