Saltar al contenido

C# – ¿Cómo puedo cambiar el nombre de una ventana de proceso que comencé?

Buscamos en el mundo online y así de esta forma regalarte la respuesta a tu problema, en caso de inquietudes déjanos tu inquietud y respondemos con mucho gusto.

Solución:

Puedes hacerlo usando P/Invocar:

[DllImport("user32.dll")]
static extern int SetWindowText(IntPtr hWnd, string text);



private void StartMyNotepad()

    Process p = Process.Start("notepad.exe");
    Thread.Sleep(100);  // <-- ugly hack
    SetWindowText(p.MainWindowHandle, "My Notepad");

El trasfondo del truco feo en el ejemplo de código es que parece que si llamas a SetWindowText inmediatamente después de iniciar el proceso, el título no cambiará. Tal vez el mensaje termine demasiado pronto en la cola de mensajes del Bloc de notas, por lo que el bloc de notas establecerá el título nuevamente después.

También tenga en cuenta que este es un cambio muy breve; si el usuario selecciona Archivo -> Nuevo (o hace cualquier otra cosa que haga que el Bloc de notas actualice el título de la ventana), el título original volverá...

De hecho, lo arreglé yo mismo y funciona perfectamente. Gracias de cualquier manera.

[DllImport("user32.dll")]
static extern SetWindowText(IntPtr hWnd, string windowName);

IntPtr handle = p.MainWindowHandle;
SetWindowText(handle, "This is my new title");

No puede hacerlo en C#, pero puede hacerlo usando una API de bajo nivel. Inyecte un hilo en el proceso, llame a SetWindowText() desde él

Si guardas algún pregunta y disposición de limar nuestro división eres capaz de ejecutar una interpretación y con deseo lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *