我正在尝试在任务栏应用程序图标上侦听鼠标单击事件,以使用 python 在 Windows 中当前运行的应用程序。在下面的示例中,我使用 python 来启动 Internet Explorer 应用程序。应用程序启动后,我使用 FindWindow windows API 函数来获取窗口 ID/句柄。
有没有办法使用 Windows API 或其他方法来监听用户在 Internet Explorer 任务栏图标上的鼠标点击?单击任务栏中的 IE 图标时,我需要打印一条消息。
这是我目前正在使用的代码:
from win32gui import GetWindowText, GetForegroundWindow, FindWindow
import win32api, win32gui
import win32con
import sys, os
os.system('"C:\Program Files (x86)\Internet Explorer\iexplore.exe"') #open internet explorer application.. this will make the internet explorer icon appear in the taskbar..
window_id = FindWindow(0, 'Internet Explorer') #find the newly opened IE window's id/handle
print (window_id)
class test:
def __init__(self, **kwargs):
super(test, self).__init__(**kwargs)
self.oldWndProc = win32gui.SetWindowLong(window_id, win32con.GWL_WNDPROC, self.MyWndProc)
self.msgdict = {}
for name in dir(win32con):
if name.startswith("WM_"):
value = getattr(win32con, name)
self.msgdict[value] = name
print (self.msgdict) #I can access all the win32 window events using this dictionary..
#listener to track win32 window events related to the newly opened internet explorer window..
#how do I track when the internet explorer icon is CLICKED in the task bar??
def MyWndProc(self, hWnd, msg, wParam, lParam):
print (self.msgdict.get(msg)) #none of the window events print here..
return win32gui.CallWindowProc(self.oldWndProc, hWnd, msg, wParam, lParam)
t = test()