2010-02-01 4 views
1

SendMessage/PostMessage를 사용하여 일부 키를 응용 프로그램 텍스트 상자로 보내려고합니다. 필자는 Microsoft Spyxx를 사용하여이 텍스트 상자의 클래스 이름을 가져 왔습니다. 이제는 동일한 클래스 - Name ("WindowsForms10.EDIT.app.0.2e0c681")과 동일한 Window-name을 가진이 애플리케이션에 여러 텍스트 상자가 있다는 문제점이 있습니다.FindWindowEx - 클래스 이름이 같은 여러 텍스트 상자가있는 경우 텍스트 상자 선택

올바른 핸들을 얻는 방법은 무엇입니까?

추신 : 예를 들어 특정 소유자와 텍스트 상자를 검색 할 수 있습니다 : 나는 2008

답변

0

음을 표현하는 비주얼 C#과 C#으로 코딩하고있어, 당신이 사용할 수있는 textboxe에 대해 알고 무언가가 있어야합니다 앞의 하위 창이 무엇인지 확인하십시오 ... 컨트롤에 레이블이 있으면 레이블을 먼저 찾은 다음 컨트롤의 오른쪽에있는 컨트롤을 찾을 수 있습니다.

0

다른 HWND 값은 API 함수

에 대해 동일한 결과를 반환하는 경우
[DllImport("user32.dll")] 
public static extern int GetClassNameW(HandleRef hWnd, [MarshalAs(UnmanagedType.LPWStr)] StringBuilder className, int nMaxCount); 

[DllImport("user32.dll")] 
public static extern int GetWindowTextLength(HandleRef hWnd); 

[DllImport("user32.dll")] 
public static extern int GetWindowTextW(HandleRef hWnd, [MarshalAs(UnmanagedType.LPWStr)] StringBuilder text, int maximum); 
당신은 객체가 양식에 존재하는 위치에 기반하여 수정을 할 필요 붙어있을 수

public struct WindowPlacement { 
    public int length; 
    public int flags; 
    public int showCmd; 
    public Point minPosition; 
    public Point maxPosition; 
    public Rectangle normalPosition; 
} 

[DllImport("user32.dll")] 
public static extern bool GetWindowPlacement(HandleRef hWnd, ref WindowPlacement position); 
관련 문제