He estado buscando, y no he encontrado cómo lo haría desde C#.C# - Envío de mensajes a Google Chrome desde la aplicación C#
yo quería hacer, así que podría decirle a Google Chrome para ir Adelante, Volver, Abrir una nueva pestaña, Cerrar pestaña, abierto una nueva ventana, y cerrar ventana de mi Aplicación C#.
he hecho algo similar con el uso de WinAmp
[DllImport("user32", EntryPoint = "SendMessageA")]
private static extern int SendMessage(int Hwnd, int wMsg, int wParam, int lParam);
y algunos otros. Pero no sé qué mensaje enviar o cómo encontrar a qué ventana se lo debe pasar, ni nada.
Entonces, ¿alguien podría mostrarme cómo enviaría esos 6 comandos a Chrome desde C#? gracias
EDIT: Ok, me votaron a la baja, por lo que tal vez no fui lo suficientemente claro, o la gente está asumiendo que no intenté resolver esto por mi cuenta.
En primer lugar, no soy muy bueno con todo el material de DllImport. Todavía estoy aprendiendo cómo funciona todo.
He encontrado cómo hacer la misma idea en winamp hace unos años, y estaba mirando mi código. Lo hice para poder omitir una canción, regresar, reproducir, pausar y detener el winamp de mi código C#. Comencé importando:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr FindWindow([MarshalAs(UnmanagedType.LPTStr)] string lpClassName, [MarshalAs(UnmanagedType.LPTStr)] string lpWindowName);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int SendMessageA(IntPtr hwnd, int wMsg, int wParam, uint lParam);
[DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
public static extern int GetWindowText(IntPtr hwnd, string lpString, int cch);
[DllImport("user32", EntryPoint = "FindWindowExA")]
private static extern int FindWindowEx(int hWnd1, int hWnd2, string lpsz1, string lpsz2);
[DllImport("user32", EntryPoint = "SendMessageA")]
private static extern int SendMessage(int Hwnd, int wMsg, int wParam, int lParam);
Luego, el código que encontré utilizar usó estas constantes para los mensajes que envío.
const int WM_COMMAND = 0x111;
const int WA_NOTHING = 0;
const int WA_PREVTRACK = 40044;
const int WA_PLAY = 40045;
const int WA_PAUSE = 40046;
const int WA_STOP = 40047;
const int WA_NEXTTRACK = 40048;
const int WA_VOLUMEUP = 40058;
const int WA_VOLUMEDOWN = 40059;
const int WINAMP_FFWD5S = 40060;
const int WINAMP_REW5S = 40061;
que tendría la hwnd (el programa para enviar el mensaje a) por:
IntPtr hwnd = FindWindow(m_windowName, null);
entonces me gustaría enviar un mensaje a ese programa:
SendMessageA(hwnd, WM_COMMAND, WA_STOP, WA_NOTHING);
I Supongo que haría algo muy similar a esto para Google Chrome. pero no sé cuáles deberían ser algunos de esos valores, busqué en Google tratando de encontrar la respuesta, pero no pude, y por eso pregunté aquí. Así que mi pregunta es ¿cómo puedo obtener los valores para:
m_windowName y WM_COMMAND
y luego, los valores para los diferentes comandos, hacia adelante, volver, nueva pestaña, cerrar pestaña, nueva ventana, cerrar ventana?
Estoy mirando, y no veo nada que me ayude a lograr lo que estoy tratando de hacer. No quiero recompilar Chrome ni nada. Quiero poder enviarle a Chrome un pequeño mensaje que diga "volver" o lo que sea. No quiero cambiar Chrome en absoluto. Hazlo todo desde C# – Joel