2012-03-19 10 views
0

나는 개발자에게 매우 열악한 지원을하는 회사에서 일하고있는 친구가 있습니다 (Joel Test에서 1/12).다른, 그러나 현재 실행중인 프로세스에서 함수를 호출 할 수 있습니까?

빌드 프로세스가 매우 단단히 고정되어 있으며 프로젝트 크기에 따라 배포를 위해 40+ (x2) 마우스 클릭이 필요할 수 있습니다. 그래서 저는 "win32api를 사용하여 클릭을 자동화하지 않으시겠습니까?"라고 생각했습니다. (특히 파이썬 사용). 나는 그에게 하나의 이슈를 제외하고는 아무 문제없이 잘 작동하는 정말 좋은 도구를 가지고 있습니다. 사용하는 도구에는 탐색 창이 있거나 열려 있지 않을 수도 있습니다.

단추 누르기로 열거 나 닫을 수는 있지만 어떻게 열리거나 닫을 수 있는지 잘 모르겠습니다. 빌드 프로세스와 관련이 없습니다. 유일한 문제는 열려있는 상태에 따라 마우스를 화면에서 클릭해야하는 위치가 변경된다는 것입니다. 이 응용 프로그램은 .NET으로 작성되었으며 응용 프로그램에서 패널을 토글 링하는 데 사용할 수있는 함수 호출을 제공하므로 아이디어를 찾고 난 지금까지 두 가지를 얻었습니다.

  • 디버거를 통해 프로세스에 연결하고 함수 호출을 어떻게 든 실행합니다.
  • 패널 제목 표시 줄의 위치에서 스크린 샷을 찍습니다 (Win32 API를 통해 얻었으며 패널이 숨겨져 있는지 여부에 관계없이 변경되지 않는 것으로 보입니다).

이 패널의 상태를 쉽게 파악할 수있는 방법이 있습니까? 개발자는 일반 계정 외에 자신의 컴퓨터에 관리자 계정이 주어 지므로 필요하다고 생각하지는 않지만 관리자 액세스 권한이 필요한 아이디어를 접할 수는 있습니까?

업데이트 : 창을 닫을 수있는 버튼이있는 것 같습니다. UIAVerify에서 "텍스트" "탐색" "btnClose"로 표시됩니다. AutomationId는 btnClose이지만 ControlType.Text입니다.

+1

UI와의 상호 작용을 자동화하는 "간단한 방법"은 [Windows UI 자동화 API] (http://msdn.microsoft.com/en-us/library/ms747327.aspx)를 사용하는 것입니다. –

+0

@JamesMcNellis, 대상 응용 프로그램이 dll을 구현해야하는 것처럼 보입니까? 이 경우 이해하는 모든 과정을 다시 쓰는 것이 더 쉬울 것입니다. –

+1

반드시 그렇지는 않습니다. WPF 및 Windows Forms와 같은 UI 프레임 워크는 표준, 내장 컨트롤 모두에 대한 자동화 인터페이스를 구현하므로 사용자 정의 UI가 많지 않으면 (예 : 프레임 워크의 것과 전혀 다른 독자적인 'Button'유형) '버튼'유형) UIA를 시작하는 것이 좋습니다. [UIAVerify] (http://uiautomationverify.codeplex.com/)를 다운로드하고 프로그램의 UI가 무엇을 드러내는 지 확인하는 것이 좋습니다. –

답변

0

이 패널은 어떤 기술로 만들어 졌습니까? 표준 GDI 또는 WPF입니까? GDI 인 경우에는 HWND가 있어야합니다. 클래스 이름이나 창 제목을 통해이 HWND를 찾을 수 있어야합니다. 일단 HWND가 있으면 너비를 알 수 있습니다. WPF로 작성된 경우에는 잘 모르겠지만 스눕은 이런 종류의 일을하므로 가능하다는 것을 알고 있습니다.

+0

VB 나 C# .NET으로 작성된 것 같습니다. –

관련 문제