簡體   English   中英

使用C#將鼠標單擊發送到任務欄中的按鈕

[英]Sending a mouse click to a button in the taskbar using C#

在我目前正在處理的應用程序中,要求是將外部應用程序的窗口帶到前台。 進行Win32 API調用(如BringWindowToTop和SetForeground窗口)始終不起作用。 這是由於Windows XP中的一些限制。 我想要做的是發送模擬鼠標單擊任務欄上的窗口按鈕,我希望將窗口放在前面。 有誰知道這有可能嗎?

請查看http://www.codeproject.com/KB/dialog/dlgboxtricks.aspx上的“如何關注2K / XP”部分,因為這正是您所需要的。 我不會去任務欄路線,因為任務欄可能被隱藏或根本不存在。

這是可能的。 但它非常粗略。 您的應用程序也可能會破壞下一版本的Windows,因為它沒有文檔。 你需要做的是找到任務欄的窗口句柄,然后找到代表按鈕的子窗口的窗口句柄,然后發送一個WM_MOUSEDOWN(我認為)消息。

這里有點找到任務欄的窗口句柄:

http://www.codeproject.com/

FWIW,對BringWindowToTop / SetForeground的限制是存在的,因為當窗口竊取焦點時它會引起刺激。 如果你在企業環境中工作,這可能無關緊要。 請記住它。 :)

我在一個需要模擬點擊和鼠標移動的程序中使用它;

全局鼠標和鍵盤庫

說實話,我從未遇到過在XP / Vista / 2003/2000上將窗口帶到前台的問題。

您需要確保執行以下操作:

  1. 檢查是否IsIconic(最小化)
  2. 如果#1結果為true,則調用ShowWindow傳遞SW_RESTORE
  3. 然后調用SetForegroundWindow

我從來沒有遇到過這些問題我能想到的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM