python pywin32 里面操作窗体,获取窗体里面的数据,在函数GetDlgItem函数中,怎么获取第二个参数的值?

Python019

python pywin32 里面操作窗体,获取窗体里面的数据,在函数GetDlgItem函数中,怎么获取第二个参数的值?,第1张

不知道你解决了没,最近正好研究python。

hwnd=win32gui.FindWindow()这个获取窗体句柄,大概都会用;

ctrl=win32gui.FindWindowEx(hwnd,None,'窗口类名',‘标题文本’)已知控件类名或控件名时获取控件句柄,这个标题文本不一定存在,所以使用None默认值获取的是该窗口类名中第一个顺位的控件句柄。

你使用b=win32gui.GetDlgItem(edit,资源ID)最终结果是获取的是句柄,这里的资源ID其实是spy++中的窗口ID,句柄是可变的,窗口ID是不可变的。这里似乎错了,你这样子大概获取的是控件中的子项(控件有子项的话,比如Combox中的edit框),我猜的,没试过。b=win32gui.GetDlgItem(hwnd,窗口ID)是已知ID下获取某控件句柄

如果你想获取某个控件的ID则ctrlid=win32gui.GetDlgCtrlID(ctrl)这是一只某控件句柄的情况下获取该控件在应用程序中的窗口ID。

如果不知控件句柄的情况下大概可以试试spy++获取窗口ID,把窗口ID(这个是16进制的)转化成10进制带进b=win32gui.GetDlgItem(hwnd,窗口ID)大概也可以得到控件句柄。

其实就是三个函数之间的转化

ctrl=win32gui.FindWindowEx(hwnd,None,'edit',None)控件句柄

ctrlid=win32gui.GetDlgCtrlID(ctrl)控件的窗口id

ctrl2=win32gui.GetDlgItem(hwnd,ctrlid)控件句柄

print "%x" %ctrllist

print "%x" %ctrlid

print "%x" %ctrl

输出,看一下数据与spy++是否一致。然后ctrl=ctrl2

加上这行代码:

screen=pygame.display.set_mode([800,600])

其中screen是当前窗口的名字,800和600是当前窗口的宽度和高度(单位:像素)。(screen,800,600这三个数据可以随便改动)

1、把python里的imshow函数的结果,发消息到电脑系统消息里面去,注:消息ID 唯一

2、C#窗口重写接收系统消息函数,收到消息后,判断 消息ID 是为一样,一样的话把内容取出来显示即可