El problema de actualizar la pantalla en el juego QQ usando VB.
Función de declaración privada FindWindow Lib "user32 "alias" FindWindowA" (ByVal lpClassName es una cadena, ByVal lpWindowName es una cadena) es larga
Función de declaración privada getwindowtextlib "usuario 32" alias "GetWindowTextA" (ByVal Hwnd es Long, ByVal lpString es String, ByVal cch es Long) es Long
Función de declaración privada GetWindow Lib "usuario 32" (ByVal Hwnd tiene la misma longitud, ByVal wCmd es la misma length)
Función de declaración privada GetDesktopWindow Lib "user32 "() es Long
Función de declaración privada GetClassName Lib "user32 "alias" GetClassNameA" (ByVal Hwnd es Long, ByVal lpClassName es String , ByVal nMaxCount es Long) es Long
Función de declaración privada SendMessage Lib "usuario 32" alias "SendMessage a" (ByVal Hwnd es Long, ByVal wMsg es Long, ByVal wParam es Long, ByVal lParam es String) es Long
Función de declaración privada SetWindowPos Lib " usuario 32 "(ByVal Hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal w flags As Long)Long
Declaración privada biblioteca sub-sleep "kernel 32" (ByVal dw milisegundos as long)
Función de declaración privada PostMessage Lib "usuario 32" alias "PostMessageA" (ByVal Hwnd es Long, ByVal wMsg es Long, ByVal wParam es Long, ByVal lParam es Long) es Long
Constante privada WM_SETTEXT = ampHC
Constante privada GW_HWNDFIRST = 0
Constante privada GW_HWNDNEXT = 2
Constante privada GW_CHILD = 5
Constante privada WM_KEYDOWN = ampH100
Constante privada WM_KEYUP = ampH101< / p>
Dim A() As Long 'Definir matriz.
Subcomando privado 1_Click()
Temp = True
Establecer Ai como un número entero
Marcar Ak como un número entero
Dim Hwnd tiene la misma longitud, l tiene la misma longitud
Dim s es una cadena, T es una cadena
List1.
claro
Hwnd = GetDesktopWindow()
Hwnd = GetWindow(Hwnd, GW_CHILD o GW_HWNDFIRST)
Y Hwnd lt gt0
Hwnd = GetWindow(Hwnd, GW_HWNDNEXT)
s = String(256, Chr(0))
GetClassName Hwnd, s, 255
s = Reemplazar( s, Chr(0), "")
T = String(256, Chr(0))
GetWindowText Hwnd, T, 255
T = Reemplazar( T,Chr(0),"")
Actividades múltiples
Si derecha (s, 11) = "8:10011:0" e izquierda (s, 4) = " afx:" y t = "QQ game "Entonces el nombre de la clase de ventana debe coincidir.
"EnumallHandleswnd" enumera todos los controles/ventanas secundarios.
Finalizar si...
Fila
Si lista 1. ListCount gt entonces 0
ReDim A(0 a List1. ListCount - 1) es tan largo
Etiqueta I como un número entero
Para i = 0 para bajar enlazado ( A)
A(i) = Val(Mid(Lista1. Lista (uno), 4))
T = medio (lista1.lista (i), instr ( list1. lista (i), "tipo de identificador principal") 6).
T = Left(T, 8)
Si T lt gt entonces "cuadro combinado"
A(i) = 0
Terminará si...
Siguiente yo
Otro
Temp = False
MsgBox "Ventana de juego no encontrada", vbCritical, "Error"
Conector de salida
Terminará si...
Si list1.
ListCount gt entonces 0
Para i = 0 al límite inferior (A)
si A(I) lt entonces 0
l = SendMessage(A); ( i), WM_SETTEXT, 0, " aaaaaa " ampChr(0))
Dormir 10
Múltiples actividades
l = PostMessage(A(i), WM_KEYDOWN, vbKeyReturn, 0)
Dormir 10
Múltiples actividades
l = PostMessage(A(i), WM_KEYUP, vbKeyReturn, 0)
Dormir 10
Múltiples actividades
Terminará si...
A mi lado
Terminará si...
Conector final
Controlador de subenumeración privado (ByVal Hwnd As Long)
Dim hn tiene la misma longitud
Dim firsthd. Mientras Long
Dim s es una cadena, T es una cadena
firsthd = GetWindow(Hwnd, GW_CHILD)
firsthd = GetWindow(firsthd, GW_HWNDFIRST)
hn = firsthd
cuando hn lt gt0
s = string(256, Chr(0))
£255
s = Reemplazar(s, Chr(0), "")
T = String(256, Chr(0))
GetClassName Hwnd, T, 255< / p>
T = Reemplazar(T,Chr(0),"")
Actividades múltiples
Si s = "Editar " entonces 'si satisface el requisito, se agregará a la lista.
Lista1. AddItem "identificador:" hn amp "identificador principal: " Hwnd amp " Class amp: " s&p. "Tipo de identificador principal:" ; T ampvbCrLf
Terminará si...
EnumAllHandles hn 'Búsqueda recursiva, no suelte los controles secundarios.
hn = GetWindow(hn, GW_HWNDNEXT)
Si hn = firsthd, sale de Do
Loop
Conector final
Subcomando privado 2_Click()
Finalizar conector