Hola que tal, les platico quiero hacer click en ciertas partes especificas de las ventanas, pero tengo un problema con SendMessage de plano no me ha funcionado nada de click solo la instrucción de cerrar, en cuanto a postmessage a veces me funciona pero como que solo lee una coordenada y si es por como mando el dato pero igual sigue funcionar como quiero así tengo mi código
ACTUALIZO ESTUVE INVESTIGANDO E HICE UNAS PRUENAS CON 1 COORDENA 500 500 Y USANDO EL METODO MakeLParam pero ahora solo me da clicks ahi aun que cambie las cordenadas cerrelas ventanas y el proyecto lo volvi a depurar y sigue solo dando click ahi
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll")]
static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);//Aqui igual forma ya intente usar IntPtr en wParam y lParam y nada
const int WM_LBUTTONDOWN = 0x0201;
const int WM_LBUTTONUP = 0x0202;
//Este lo use para intentar mandar coordenadas para postmessage pero aquí si no hace nada cuando uso este metodo
private int MakeLParam(int x, int y)
{
return ((y << 16) | (x & 0xFFFF));
}
private void button1_Click(object sender, EventArgs e)
{
SendMessageClick(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
}
private void SendMessageClick(int x, int y)
{
int selectedIndex = cbxWindows.SelectedIndex;
IntPtr hWnd = GetOpenWindows()[selectedIndex].hWnd;
if (hWnd != IntPtr.Zero)
{
IntPtr lParam = (IntPtr)((y << 16) | x);
PostMessage(hWnd, WM_LBUTTONDOWN, 1, x);
PostMessage(hWnd, WM_LBUTTONUP, 0, y);
/* SendMessage(hWnd, WM_LBUTTONDOWN, IntPtr.Zero, lParam);
SendMessage(hWnd, WM_LBUTTONUP, IntPtr.Zero, lParam);*/
}
}