Asistente de claves 8, ve a buscar el identificador. Algunos solo tienen el nombre de la clase de ventana y ningún título de ventana. ¿Qué debo hacer?
Primero necesita obtener el identificador de la ventana, que debe encontrarse usando la siguiente función:
FindWindow encuentra la ventana a través del nombre de la clase\título de la ventana.
Atravesar la ventana de nivel superior EnumWindows
Atravesar la función de devolución de llamada de la ventana EnumWindowProc
Atravesar todas las ventanas secundarias de la ventana principal EnumChildWindows
Regresar al punto de la ventana principal La ventana secundaria childwindowfromPoint.
ChildWindowFromPointEx tiene un parámetro adicional UINT, que se utiliza para ignorar ventanas secundarias invisibles, no válidas y transparentes.
Obtiene la ventana GetWindow que no tiene relación con la ventana especificada.
ObtenerTopWindow de la ventana secundaria con el orden z más grande en la ventana principal.
Obtiene la ventana GetNextWindow de la ventana especificada con el mismo nivel de diferencia de orden z de 1.
Identificador
La función SendMessage no requiere un título de ventana, solo un identificador.
LRESULT envía mensaje (
HWND hWnd, //identificador de ventana de destino
UINT Msg, //Mensaje a enviar
WPARAM wParam, //El primer parámetro del mensaje
LPARAM lParam //El segundo parámetro del mensaje
);
O use la función keybd_event, primero use la función SetForegroundWindow Establece la ventana de destino como ventana de primer plano.
VOID keybd_event(
Byte bVk, //código de clave virtual
Byte bScan, //código de escaneo de hardware
DWORD dwFlags, //Especificar indicadores para diferentes opciones de funciones
DWORD dwExtraInfo //Datos adicionales relacionados con las pulsaciones de teclas
);
Suplemento:
El El primero: entro a un juego, uso CE para encontrar la dirección de la memoria, luego salgo del juego y verifico la dirección de la memoria. Estas dos direcciones de memoria son diferentes. ¿Hay alguna manera de hacer que la dirección de memoria sea la misma cada vez? ¿U otra solución?
Debería ser imposible mantener la dirección de memoria sin cambios cada vez. El sistema asigna memoria cada vez que se ejecuta el juego. ¿Cómo lo controlas?
Segundo: quiero que el mouse se mueva a un cierto punto para realizar operaciones con el mouse cuando el valor de la memoria alcance un cierto valor. ¿Cómo escribir código fuente?
Defina una variable de puntero p, el tipo depende del valor que necesite.
P=dirección de memoria.
Si (*p==este valor)
{
//mousemove
}