2017-05-23 5 views
0

저는 Windows 7 및 C#을 사용하여 C# 및 .net을 사용하여 만든 다른 GUI 응용 프로그램을 제어하는 ​​응용 프로그램을 만듭니다. 이 응용 프로그램에서는 GUI 응용 프로그램 안에있는 특정 컨트롤의 상태를 가져오고 싶습니다. 나는 그것이 "이름"속성을 기반으로 컨트롤에 핸들을 제공하는 메소드를 찾고 있습니다. 그러나 내 필요에 맞는 것을 찾을 수 없습니다. GUI 응용 프로그램의 모든 컨트롤 핸들 목록을 가져 왔지만이 목록에서 올바른 "이름"이있는 컨트롤을 검색하려면 어떻게해야합니까? 나는 친구가 Control 객체를 사용하여 Control.FromHandle을 사용하여 객체를 변환하지만, 모든 핸들에 대해 null을 반환하기 때문에 작동하지 않는 것처럼 보입니다. 어떤 아이디어?Name 속성을 기반으로 컨트롤을 찾는 방법

+1

프로세스 경계를 ​​넘어서이 작업을 시도하면 모든 것이 천천히 어려워집니다. 이것이 당신의 응용 프로그램이라면, 이것을하지 않는 천 가지 이유가 있거나 명명 된 파이프, 소켓, WCF와 같은 지원되는 .NET 프로세스 interop 메커니즘을 사용하십시오. 이것이 귀하의 응용 프로그램이 아니라면 유일한 합리적인 접근 방식은 System.Windows.Automation 네임 스페이스에서 지원하는 UI 자동화입니다. –

답변

-1

메가이 을 대해서 typeof ([typeFromYourAssembly]) ?: 도와. Assembly.GetTypes을(). ToList(). 단일 (I => i.IsSubclassOf (대해서 typeof (UserControl에)) & &을 i.Name == "[ ControlName] ")