Durante la instalación de cualquier aplicación. En general, se le pidió al usuario que cerrara todas las ventanas antes de comenzar la instalación. de lo contrario, la instalación se detendrá en el medio y le pedirá al usuario que cierre todas las ventanas abiertas. Me pidieron que agregue un código en una aplicación XXX. Cuando la aplicación se está ejecutando y si el usuario abrió cualquier otra ventana (por ejemplo, Explorar, navegador, palabra, etc.) , entonces la aplicación debería arrojar una ventana que diga que ha abierto la lista de ventanas. Te pido que por favor me sugieras cómo comenzar en C#.Obtenga la lista de ventanas abiertas C#
Respuesta
Pruebe SetWinEventHook Función de WinAPI a través de P/Invocar. Puede conectar el evento EVENT_OBJECT_CREATE
, pero no estoy 100% seguro. Nunca lo hice en C#, solo en C/C++.
Puede usar la clase System.Diagnostics.Process
para obtener la información de todos los procesos que se están ejecutando en su máquina. Luego puede intentar encontrar si la aplicación/proceso previsto se está ejecutando o no.
Puede utilizar el método GetProcesses()
o GetProcessByName()
. Consulte this msdn link para referencia. Estoy seguro de que puede haber una manera más eficiente de lograr lo mismo. HTH
Prueba esto:
var openWindowProcesses = System.Diagnostics.Process.GetProcesses()
.Where(p => p.MainWindowHandle != IntPtr.Zero && p.ProcessName != "explorer");
El openWindowProcesses
debería contener todas las aplicaciones abiertas que tienen una ventana principal activo.
Pongo p.ProcessName != "explorer"
en la expresión where porque el explorador es el proceso principal del escritorio y nunca debe cerrarse.
Para ver la ejecución de los procesos, puede usar la clase ManagementEventWatcher
. Ver this por favor.
Establecer un bucle foreach como esto para enumerar sobre todas las aplicaciones abiertas en su sistema (que tienen una ventana principal visible)
foreach (var process in Process.GetProcesses().Where(p => p.MainWindowHandle != IntPtr.Zero)) {
//do something with the process here. To display it's name, use process.MainWindowTitle
}
¿Qué sucede si una aplicación tiene múltiples ventanas visibles? – Neolisk
- 1. Cómo obtener la lista de ventanas abiertas desde xserver
- 2. minimizar todas las ventanas abiertas en C#
- 3. ¿Cómo puedo detectar cuándo se abren nuevas ventanas y/u obtener una lista de ventanas abiertas?
- 4. C# - Obtener lista de tareas abiertas
- 5. C ¿Obtenga la precisión del sistema a microsegundos en ventanas?
- 6. Obtener ubicación y el tamaño de todas las ventanas abiertas utilizando .NET (C#)
- 7. Obtenga todas las conexiones TCP abiertas mediante la aplicación utilizando C#
- 8. Cerrar ventanas que no fueron abiertas por script usando javascript
- 9. ¿Puedes cerrar todas las ventanas abiertas en capibara?
- 10. Obtenga la ruta de cada ventana del explorador con C#
- 11. Obtenga una lista de valores distintos en la Lista
- 12. tmux: ¿cómo poner 2 ventanas abiertas una al lado de la otra?
- 13. C# - Obtenga el tipo de elemento para una lista genérica
- 14. Lista de pestañas abiertas del navegador mediante programación
- 15. Python, obtenga ventanas carpetas especiales para el usuario actualmente conectado
- 16. ¿Cómo puedo enumerar las ventanas abiertas (~ EnumWindows) de otra sesión de usuario?
- 17. ¿Cómo puedo comprobar si las ventanas abiertas cierran por completo el escritorio?
- 18. SharePoint: obtenga una lista de usuarios actuales
- 19. Obtenga sumas ordenadas de una lista ordenada
- 20. Cómo obtener las referencias de todas las ventanas secundarias ya abiertas
- 21. Obtenga títulos de Windows que no sean Java en Java
- 22. ¿Cuántos triángulos máximos se pueden dibujar en ipad utilizando ventanas abiertas en 1 marco?
- 23. Enviando un mensaje a todas las ventanas/pestañas abiertas usando JavaScript
- 24. Eclipse: cómo cerrar varias ventanas
- 25. fnmatch para ventanas en C?
- 26. Es la pestaña de Chrome única en las ventanas
- 27. Windows: ¿cómo obtener una lista de todas las ventanas visibles?
- 28. Número de ventanas en VIM
- 29. ¿Cómo obtener una lista de las ventanas/procesos abiertos actuales con Java?
- 30. multilingüe uso de las ventanas de C#
para resolver el problema descrito que necesita para obtener la lista de ventanas por temporizador. ¿Y qué hay de las ventanas ocultas? – DReJ
Creo que quien hizo esta pregunta sabe sobre el uso de temporizadores y ... Y sobre ventanas ocultas; Creo que es suficiente cerrar procesos con ventanas ocultas en tales escenarios. Aunque en esta situación los procesos son más importantes que las ventanas. El programador debe verificar los procesos para descubrir cuál no debería estar abierto. Esto es fácilmente posible cambiando la expresión en el método Where. ¡Pero gracias! Voy a agregar información sobre cómo ver los procesos en mi respuesta. –
muchas gracias por su sugerencia. Una vez que implemente, le informaré el resultado – user517206