C#으로 간단한 응용 프로그램을 작성하고 있습니다. Windows상의 어느 곳에서나 포커스가있는 요소를 감지하는 시스템 트레이에이 응용 프로그램이 필요합니다. 포커스가있는 요소가 텍스트 상자 (사용자가 텍스트를 입력 할 수있는 곳이면 어디든) 인 경우 앱은 시스템 트레이에 알림을 표시해야합니다. 내 문제는 초점을 맞춘 요소를 감지하고 확인하는 방법입니다.화면 어디에서나 포커스가있는 텍스트 상자를 감지합니다.
1
A
답변
0
절대적인 방법은 없습니다. 텍스트를 추가 할 수있는 컨트롤이 너무 많습니다.
다음 이 방법은 너무에서 잘 작동 GUITHREADINFO lpgui = new GUITHREADINFO();
IntPtr fore = GetForegroundWindow();
uint tpid = GetWindowThreadProcessId(fore, IntPtr.Zero);
lpgui.cbSize = Marshal.SizeOf(lpgui.GetType());
bool flag = GetGUIThreadInfo(tpid, out lpgui);
WINDOWINFO pwi = new WINDOWINFO();
pwi.cbSize = (uint)Marshal.SizeOf(pwi.GetType());
GetWindowInfo((IntPtr)lpgui.hwndCaret, ref pwi);
if (flag)
{
if (!(lpgui.rcCaret.Location.X == 0 && lpgui.rcCaret.Location.Y == 0))
{
//TODO
}
}
내가 사용하는 코드입니다 내 응용 프로그램에서했던 것처럼 당신은 캐럿 위치의 검색 수 있지만 모든 곳을 작동하지
, 당신이 API에 익숙하지 않은 경우 많은 응용 프로그램은, 당신이 타이머 코드 또는 이제까지 당신이
을 기원합니다 당신은 WINAPI를 사용할 필요를 배치 할 수 있습니다, 저에게 알려 주시기 바랍니다
0
이 코드를 사용하여 포커스가있는 TextBox를 확인할 수 있습니다.
foreach (Control item in this.Controls)
{
if (item is TextBox && item.Focused)
{
//Write your notification code here.
}
}
관련 문제
- 1. 화면 어디에서나 Java 마우스 동작
- 2. 포커스가있는 QLineEdit 텍스트 선택
- 3. C#에서 포커스가있는 텍스트 상자를 가져 오는 중입니까?
- 4. 텍스트 상자에 포커스가있는 문제
- 5. 포커스가있는 텍스트 영역
- 6. 포커스가있는 텍스트 상자 지우기 - ASP.NET
- 7. 화면 어디에서나 툴팁을 만드는 방법은 무엇입니까?
- 8. xlib로 실행중인 화면 보호기를 감지합니다.
- 9. 자바 스크립트에서 포커스가있는 텍스트 상자에 값을 설정하십시오
- 10. C# 포커스가있는 텍스트 상자에 텍스트 복사
- 11. 값이 비어있는 경우에만 포커스가있는 텍스트 상자
- 12. jQuery로 포커스가있는 텍스트 상자의 기본 내용 지우기
- 13. 트위터 어디에서나 Tweetbox 모달/팝업
- 14. 마지막 포커스가있는 컨트롤을 찾으십시오.
- 15. UIImageView를 움직일 때 화면 가장자리를 감지합니다.
- 16. 화면 보호기가 코코아로 활성화 될 때 감지합니다.
- 17. 셀뿐만 아니라 테이블 뷰 화면 어디에서나 터치를 감지합니까?
- 18. 텍스트 상자에 붙여 넣기를 감지합니다.
- 19. JQuery에서 gridview의 텍스트 상자를 찾습니다
- 20. 포커스가있는 팝업 창 포커스가있는 배경
- 21. 텍스트 상자를 채울 때 배경 이미지 제거
- 22. 대화 상자를 화면 중앙에 배치
- 23. Silverlight 4 포커스가있는 텍스트 상자의 배경색 설정
- 24. 현재 포커스가있는 어떤 창으로 텍스트 보내기
- 25. 다중 텍스트 뷰 및 포커스가있는 선택 윤곽
- 26. 텍스트 상자를 통해 콤보 상자를 변경하십시오. VB.NET
- 27. 텍스트 상자를 값으로 바인딩
- 28. 텍스트 상자를 잠그는 방법?
- 29. .NET에서 텍스트 상자를 반복합니다.
- 30. 2 텍스트 상자를 전달하십시오.
안녕하세요, 저는이 코드를 사용할 수 없습니다. API에 익숙하지 않아서 생각합니다. – tester
@tester이 사이트 [pinvoke] (http://www.pinvoke.net/index.aspx)에서 검색해보십시오. API 함수는 GetForegroundWindow, GetWindowThreadProcessId, GetGUIThreadInfo, GetWindowInfo 및 structs는 GUITHREADINFO, WINDOWINFO입니다. ,,, 나는이 코드가 많은 winapi 함수를 사용한다는 것을 인정한다.이 코드를 잘 실행하기 위해서는 어떻게해야하는지 잘 알아야한다. 행운을 빌어 요 :) –
나는 API 문제를 해결하고 내 응용 프로그램을 실행하지만 여전히 작동하지 않습니다. 두 조건은 모두 거짓입니다. – tester