我正在用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
}
}
這樣正常工作太許多應用程序,你可以放在一個計時器該代碼,或者您希望
什麼都必須使用WINAPI,請告訴我,如果你不熟悉的API
0
您可以使用此代碼來檢查焦點文本框。
foreach (Control item in this.Controls)
{
if (item is TextBox && item.Focused)
{
//Write your notification code here.
}
}
相關問題
- 1. 使用Java檢測鼠標在屏幕上的任意位置
- 2. 在cocos2d中檢測觸摸*屏幕上的任何位置*
- 3. 屏幕上任意位置的光標下的RGB值
- 4. 顯示的UIImageView在屏幕上的任意位置
- 5. 點擊在屏幕任意位置刪除
- 6. 在屏幕上的任意位置打印信函
- 7. 通過按下屏幕上的任意位置來取消UIActionSheet
- 8. 在屏幕上的任意位置滑動Android
- 9. 檢測iPhone屏幕上的亮/暗點
- 10. 如何解決文本框在屏幕上的位置
- 11. 在文本框上設置焦點
- 12. 檢查Silverlight控件是否在屏幕上的任意位置按下鼠標?
- 13. Obj-C - 通過在UITextView屏幕上的任意位置點擊關閉鍵盤?
- 14. 如何在點擊屏幕上的任意位置時刪除登錄面板
- 15. IE8 jQuery傳播 - 點擊屏幕上的任意位置激活滾動
- 16. 檢索屏幕上的UITextField位置
- 17. 檢查屏幕上的鼠標位置
- 18. JavaFX:如何在屏幕上的任何位置檢測鼠標/按鍵事件?
- 19. 檢測Toucan事件發生在屏幕上的位置
- 20. 如何檢測UICollectionView上的屏幕位置?
- 21. 點擊頁面上的任意位置顯示全屏div
- 22. 位置在黑莓屏幕上點擊
- 23. iOS自定義輸入視圖位於屏幕上的任意位置?
- 24. 使用wpf在窗口上的任何位置檢測文本框
- 25. 如何檢測屏幕上
- 26. 如何通過Typescript檢測頁面上的任意位置(Angular2)
- 27. 如何檢測任意鼠標位置(x,y)上的元素?
- 28. 如何讓文本框的值在屏幕上的所需位置上顯示
- 29. 檢測UISearchBar焦點在文本字段
- 30. 如何在Adobe Air的文本框中檢測焦點
嗨,我不能使用這段代碼。我想因爲我不熟悉api。 – tester
@tester請嘗試在本站搜索,[pinvoke](http://www.pinvoke.net/index.aspx),api函數是GetForegroundWindow,GetWindowThreadProcessId,GetGUIThreadInfo,GetWindowInfo ,,結構是GUITHREADINFO,WINDOWINFO ,,,我承認,這段代碼使用了很多winapi函數,你需要研究如何處理它們以便很好地運行這些代碼。祝你好運:) –
我解決了API問題,並運行我的應用程序,但仍然無法正常工作,兩種情況都是錯誤的。 – tester