Pregunta

Sé que esto puede no ser una buena práctica, pero aún así es algo que me gustaría implementar.

Tengo una aplicación WPF Windows que solo quiero ejecutar una instancia de.Si el usuario intenta volver a iniciar el programa, una caja de mensajes mostrará que el programa ya se está ejecutando.Este cheque se realiza en app.xaml.cs.

tan bueno.Todo funciona como se esperaba.

Me gustaría expandir esta funcionalidad para dar enfoque y llevar la ventana general del programa al frente del escritorio de los usuarios, sobre otras ventanas y aplicaciones.He probado numerosos enfoques, pero no puedo conseguir que funcione.Esto también debe suceder en app.xaml.cs donde pruebo si la aplicación ya se está ejecutando.

¡No es posible hacer esto en WPF?He intentado Pinvokes y otras cosas, pero nada parece funcionar para mí.

mejor saludos

Nicki

¿Fue útil?

Solución 2

Encontré una solución.

Agregar una referencia a VisualBasic da acceso a interactiva. APAPXIVICIONE, lo que puede activar cualquier proceso dado un proceso, que ya había implementado.

Esta página me dio la solución Contactivate en C #

Revise el proceso de ejecución de la siguiente manera

Process currentProcess = Process.GetCurrentProcess();
        var runningProcess = (from process in Process.GetProcesses()
                              where
                                process.Id != currentProcess.Id &&
                                process.ProcessName.Equals(
                                  currentProcess.ProcessName,
                                  StringComparison.Ordinal)
                              select process).FirstOrDefault();
        if (runningProcess != null)
        {
            Microsoft.VisualBasic.Interaction.AppActivate(runningProcess.Id);
            return;
        }

Otros consejos

¿Ha intentado activarlo?

Application.Current.MainWindow.Activate();

Por supuesto, si desea permanecer en la cima en todo momento que:

Application.Current.MainWindow.Topmost = true;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top