如何在python中使用winapi选择一个comobobox? 我目前的代码如下。 它选择组合框项目,但对程序没有影响。 似乎没有事件被触发。
import win32gui
import win32api
import win32con
class CBoxChanger:
def run():
#init vars
self.count=0
#get the desktop window
lhWnd = win32gui.GetDesktopWindow()
#get the window window
win32gui.EnumChildWindows(lhWnd, self.appHandler, l)
#select toolbar
win32gui.EnumChildWindows(self.window_hwnd, self.toolBarHandler, l)
#select dialogbox
GW_CHILD=5
self.dialogbox_hwnd=win32gui.GetWindow(self.toolbar_hwnd,GW_CHILD)
#select item nr 3
index=2
win32gui.SendMessage(self.dialogbox_hwnd,win32con.CB_SETCURSEL,index,0)
def appHandler(self,lhWnd,lParam):
text = win32gui.GetWindowText(lhWnd)
if text=="WINDOWTITLE":
self.window_hwnd=lhWnd
def toolBarHandler(self,lhWnd,lParam):
self.count+=1
if self.count==5:
self.toolbar_hwnd=lhWnd
那么如何触发程序处理所选组合框上的重新连接所需的事件(如onclick或onselect事件)?
答案 0 :(得分:0)
找到了解决方案:扩展此
#select item nr 3
index=2
win32gui.SendMessage(self.dialogbox_hwnd,win32con.CB_SETCURSEL,index,0)
使用:
#select item nr 3
index=2
win32gui.SendMessage(self.dialogbox_hwnd,win32con.CB_SETCURSEL,index,0)
#trigger event
win32gui.SendMessage(self.dialogbox_hwnd, win32con.WM_LBUTTONDOWN, 0, 0)
win32gui.SendMessage(self.dialogbox_hwnd, win32con.WM_LBUTTONUP, 0, 0)
win32gui.SendMessage(self.dialogbox_hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
win32gui.SendMessage(self.dialogbox_hwnd, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
win32gui.SendMessage(self.dialogbox_hwnd, win32con.CBN_SELCHANGE)
win32gui.SendMessage(self.dialogbox_hwnd, win32con.CBN_SELENDOK)
我不确定,如果这是最简单的解决方案,但它可行