Título: [SOURCE] Environment Util (Un set de classes para VB.Net sobre el entorno Win) Publicado por: Eleкtro en 27 Junio 2015, 19:40 pm ACTUALIZADO EL 27/JUNIO/2015 • ¿ Para que sirve esto ? EnvironmentUtil.vb es una Class con un conjunto de Classes hijas que cumplen diversas funcionalidades relacionadas con el entorno de Windows, funcionalidades que mediante la librería de classes de .NET Framework no se pueden llevar a cabo, y en algunos casos para simplificar a éstas, permite modificar muchos parámetros del sistema cómo por ejemplo la velocidad del mouse o del teclado, así cómo desde poder registrar una variable de entorno en el sistema, modificar el wallpaper del escritorio, mostrar u ocultar el escritorio o la barra de tareas, anclar o desanclar items en la barra de tareas o el menú de inicio, hasta iterar las ventanas del explorador de Windows o notificar ciertos eventos del sistema (y del registro) para afectar los cambios. En resumen, sirve para todo un poco, ya que hace un poco de casi todo, pero obviamente le faltan muchísimas posibles funcionalidades adicionales. La Class consta de más de 8.000 lineas de código, esto hace un poco compleja la manutención y depuración del código, es posible que haya algún bug que no he detectado todavía, sean tolerantes con esto y sean libres de reportarme cualquier problema para poder corregirlo. Acepto cualquier tipo de crítica y/o petición para añadirle nuevas funcionalidades a este proyecto, ya que a pesar de ser tanto código lo cierto es que por ahora cumple poquitas funciones, si les ha gustado entonces dejen su omentario y no tienen más que decirme que característica les gustaría que implementase en esta class ...la única condición es que la característica debe estar relacionada con la temática de la Class :). • ¿ Cómo lo hago funcionar ? La Class contiene varias classes hijas cuyo nombre ya da una pista sobre el tipo de funcionalidades que se pueden encontrar:
Algunas funcionalidades requieren que se añada algunas referencias al proyecto:
La Class se puede utilizar directamente copiando todo el código en una nueva Class, o también se puede compilar el código en una librería dinámica dll. A cada miembro le añadí documentación XML para IntelliSense, para entender cual es el propósito de cada miembro, y cómo hacerlo funcionar explicando cada parámetro. Además, abajo puedne ver el diagrama de Classes, y además también, en la cabecera de la Class, pueden encontrar una región que contiene un sumario de los miembros públicos de cada clase hija. Importante: Debo mencionar que yo he compartido la class "compactada" así muy "arrejuntada" o cómo quieran llamarlo pero solamente lo he hecho para que sea facil su distribuición en un único archivo. Si van a usar/compilar este proyecto, entonces lo correcto sería separar las clases hijas en distintos archivos ...sobre todo para que el mantenimiento no se vuelva una pesadilla entre tantos miles de lineas de código. • Código fuente: http://pastebin.com/2WW6j3h8 • Lista de propiedades, métodos y funciones públicas (y los types que acepta cada overload) Código
• Diagrama de Classes: (http://i.imgur.com/FhIRhzK.png) (http://i.imgur.com/ehkhEaZ.png) (http://i.imgur.com/6USNjLt.png) (http://i.imgur.com/BnQIQW4.png) (http://i.imgur.com/aiLZlbW.png) (http://i.imgur.com/kAQUBqN.png) (http://i.imgur.com/zstuyrE.png) Título: Re: [SOURCE] Environment Util (Un set de classes para VB.Net sobre el entorno Win) Publicado por: kub0x en 27 Junio 2015, 20:23 pm ¡Grandísimo aporte Elektro! ¡Enorme! Sigues en tus trece ;)
Me ha llamado la atención los métodos de notifificación, ¿a caso estás hookeando algun módulo para que te chive que carpetas (por ejemplo) se han creado en X directorio? ¿O usas algún componente COM? Saludos. Título: Re: [SOURCE] Environment Util (Un set de classes para VB.Net sobre el entorno Win) Publicado por: Eleкtro en 27 Junio 2015, 20:32 pm Gracias por comentar.
¿a caso estás hookeando algun módulo para que te chive que carpetas (por ejemplo) se han creado en X directorio? Esos métodos de notificación son un simple wrapper de la función SHChangeNotify Cita de: https://msdn.microsoft.com/en-us/library/windows/desktop/bb762118%28v=vs.85%29.aspx Notifies the system of an event that an application has performed. An application should use this function if it performs an action that may affect the Shell. Los métodos de notificación están ahí para que cada uno quiera darle los propósitos que uno quiera, es útil por ejemplo al registrar una asociación de archivo, o tras modificar los iconos del sistema, o si tienes la ventana del explorer abierta en "Mi PC" y quieres refrescar los cambios de espacio libre en los labels, o si hookeas alguna función que crea carpetas y quieres notificar al sistema la carpeta creada por algún motivo cómo has mencionado, simplemente están ahí para cualquier uso. Saludos! Título: Re: [SOURCE] Environment Util (Un set de classes para VB.Net sobre el entorno Win) Publicado por: kub0x en 27 Junio 2015, 21:08 pm Los métodos de notificación están ahí para que cada uno quiera darle los propósitos que uno quiera, es útil por ejemplo al registrar una asociación de archivo, o tras modificar los iconos del sistema, o si tienes la ventana del explorer abierta en "Mi PC" y quieres refrescar los cambios de espacio libre en los labels, o si hookeas alguna función que crea carpetas y quieres notificar al sistema la carpeta creada por algún motivo cómo has mencionado, simplemente están ahí para cualquier uso. Solo concierne a la aplicación, vale pensé que era global. Por lo demás buen trabajo, supongo que lo habrás incluido en los posts recopilatorios. Sino chincheta (sin problemas). Saludos. Título: Re: [SOURCE] Environment Util (Un set de classes para VB.Net sobre el entorno Win) Publicado por: Eleкtro en 27 Junio 2015, 21:40 pm Solo concierne a la aplicación, vale pensé que era global. Si te refieres a que si había implementado algún Hook para interceptar la eliminación de archivos de manera global o algo parecido... pues no. En cambio, si lo dices por esto: Citar Notifies the system of an event that an application has performed. An application should use this function if it performs an action that may affect the Shell. ...entonces no te dejes Saludos! |