Red de conocimiento informático - Problemas con los teléfonos móviles - En Python pywin32, opera un formulario y obtiene los datos en el formulario. ¿Cómo se obtiene el valor del segundo parámetro en la función GetDlgItem?

En Python pywin32, opera un formulario y obtiene los datos en el formulario. ¿Cómo se obtiene el valor del segundo parámetro en la función GetDlgItem?

No sé si lo habéis solucionado, pero he estado estudiando Python recientemente.

hwnd=win32gui.FindWindow() probablemente se use para obtener el identificador de la ventana

ctrl=win32gui.FindWindowEx(hwnd,None,'nombre de clase de ventana','texto del título '; ) Obtenga el identificador de control cuando se conozca el nombre de la clase de control o el nombre del control. Este texto de título no necesariamente existe, por lo que se utiliza el valor predeterminado Ninguno para obtener el identificador de control con el primer orden en el nombre de la clase de ventana.

Cuando usa b=win32gui.GetDlgItem(editar, ID de recurso), el resultado final es obtener el identificador. El identificador del recurso aquí es en realidad el ID de la ventana en spy++. La identificación no está disponible. Parece incorrecto aquí. Lo que obtienes probablemente son los subelementos en el control (si el control tiene subelementos, como el cuadro de edición en Combbox), supongo, pero no lo he probado. b=win32gui.GetDlgItem(hwnd, ID de ventana) es para obtener el identificador de un determinado control con un ID conocido

Si desea obtener el ID de un determinado control, entonces ctrlid=win32gui.GetDlgCtrlID( ctrl) Este es un control determinado. En el caso de un identificador de control, obtenga el ID de la ventana del control en la aplicación.

Si no conoce el identificador de control, probablemente pueda probar spy++ para obtener el ID de la ventana, convertir el ID de la ventana (esto es hexadecimal) a decimal y llevarlo a b=win32gui.GetDlgItem(hwnd). , ID de ventana) probablemente también pueda obtener el identificador de control.

De hecho, es la conversión entre tres funciones

ctrl=win32gui.FindWindowEx(hwnd,None,'edit',None) controlador de control

ctrlid = win32gui.GetDlgCtrlID(ctrl) ID de ventana del control

ctrl2=win32gui.GetDlgItem(hwnd,ctrlid) identificador de control

imprimir "%x" %ctrllist

print "%x" %ctrlid

print "%x" %ctrl

Salida para ver si los datos son consistentes con spy++. Entonces ctrl=ctrl2