todos quitar password nueva_password nick los ircop hispano founder desconectado comandos chathispano cambiar ban administrador c# winapi irc

quitar - ¿Cómo escribir y enviar texto a mIRC en C#/ Win32?



quitar ban irc (1)

En una pregunta anterior, le pregunté cómo enviar texto al Bloc de notas . Me ayudó muchísimo. Para la parte 2, aquí hay una versión simplificada del mismo mIRC aplicado:

[DllImport("User32.dll", EntryPoint = "FindWindow")] public static extern IntPtr FindWindow(String lpClassName, String lpWindowName); [DllImport("user32.dll", EntryPoint = "FindWindowEx")] public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); [DllImport("User32.dll")] public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam); IntPtr mainHandle = FindWindow("mIRC", null); IntPtr serverHandle = FindWindowEx(mainHandle, new IntPtr(0), "MDIClient", null); IntPtr chanHandle = FindWindowEx(serverHandle, new IntPtr(0), "mIRC_Channel", null); IntPtr editHandle = FindWindowEx(chanHandle, new IntPtr(0), "Edit", null); SendMessage(editHandle, 0x000C, 0, textBox1.Text);

Esto me parece correcto, ¡excepto que no funciona! ¿Es que los nombres de las ventanas son incorrectos (MDIClient, mIRC_Channel y Edit)? Estos son valores que encontré en un sitio web buscando en Google "FindWindowEx mIRC".

1.) ¿Qué estoy haciendo mal en lo de arriba?

2.) Como referencia, ¿existe en general una forma fácil de encontrar todos los nombres de Ventana para usar con FindWindowEx() ?


Este código funciona para mí (mirc 6.31):

IntPtr mainHandle = FindWindow("mIRC", null); IntPtr serverHandle = FindWindowEx(mainHandle, new IntPtr(0), "MDIClient", null); IntPtr chanHandle = FindWindowEx(serverHandle, new IntPtr(0), "mIRC_Channel", null); IntPtr editHandle = FindWindowEx(chanHandle, new IntPtr(0), "richEdit20A", null); SendMessage(editHandle, 0x000C, 0, "Hello World");

Observe la clase de ventana modificada (richedit20A en lugar de editar). Acabo de encontrar la clase correcta usando Spy ++.

En cuanto a los identificadores de ventana, una posibilidad es usar la API EnumWindows o EnumChildWindows .