<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Indalcasa &#187; Microsoft</title>
	<atom:link href="http://www.indalcasa.com/tag/microsoft/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.indalcasa.com</link>
	<description>Un blog de tecnologia</description>
	<lastBuildDate>Tue, 03 Jan 2012 15:14:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Controlar eventos de Windows en C#</title>
		<link>http://www.indalcasa.com/programacion/dotnet-csharp/controlar-eventos-de-windows-en-csharp/</link>
		<comments>http://www.indalcasa.com/programacion/dotnet-csharp/controlar-eventos-de-windows-en-csharp/#comments</comments>
		<pubDate>Sun, 09 Sep 2007 22:24:11 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[.Net (C#)]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[EventHandler]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Manejador de eventos.]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Sistema]]></category>
		<category><![CDATA[SystemEvents]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://84.20.10.74/~indalcas/?p=13</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/dotnet-csharp/controlar-eventos-de-windows-en-csharp/' addthis:title='Controlar eventos de Windows en C# ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>En .Net hay una clase que dispone de una serie de eventos propios del sistema operativo, que nos permite manejar o ser advertidos de ciertas modificaciones en el mismo, como podría ser el caso de modificaciones de hora, pantalla, etc. para aplicarlas sobre la aplicación y que esta no haga extraños. La clase encargada de [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/dotnet-csharp/controlar-eventos-de-windows-en-csharp/' addthis:title='Controlar eventos de Windows en C# ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/dotnet-csharp/controlar-eventos-de-windows-en-csharp/' addthis:title='Controlar eventos de Windows en C# ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>En <strong>.Net</strong> hay una clase que dispone de una serie de eventos propios del sistema operativo, que nos permite manejar o ser advertidos de ciertas modificaciones en el mismo, como podría ser el caso de modificaciones de hora, pantalla, etc. para aplicarlas sobre la aplicación y que esta no haga extraños.</p>
<p>La clase encargada de eventualizar ciertas acciones del sistema operativo se encuentra dentro del espacio de nombres <strong>Microsoft.Win32</strong> y se trata de la clase abstracta y no heredable <strong>SystemEvents</strong>. Esta clase provee de los diferentes tipos de eventos que listo a continuación con una breve descripción.</p>
<ul>
<li><strong>DisplaySettingsChanged</strong>:  se produce cuando el usuario cambia la configuración de pantalla.</li>
<li><strong>DisplaySettingsChanging</strong>: se produce cuando la configuración de pantalla esta cambiando.</li>
<li><strong>EventsThreadShutdown</strong>: se produce antes de que finalice el subproceso que escucha los subprocesos del sistema.</li>
<li><strong>InstalledFontsChanged</strong>: se produce cuando el usuario agrega o quita fuentes del sistema.</li>
<li><strong>LowMemory</strong>: se produce cuando el sistema se queda sin memoria RAM disponible.</li>
<li><strong>PaletteChanged</strong>: se produce cuando el usuario cambia a una aplicación que utiliza una paleta diferente.</li>
<li><strong>PowerModeChanged</strong>: se produce cuando el usuario suspende o reanuda el sistema.</li>
<li><strong>SessionEnded</strong>: se produce cuando el usuario cierra sesión o apaga el sistema.</li>
<li><strong>SessionEnding</strong>: se produce cuando el usuario intenta cerrar sesión o apagar el sistema.</li>
<li><strong>SessionSwitch</strong>: se produce cuando se cambia la sesión entre usuarios.</li>
<li><strong>TimeChanged</strong>: se produce cuando se cambia la hora del sistema.</li>
<li><strong>TimerElapsed</strong>: se produce cuando ha transcurrido el intervalo de un temporizador de Windows.</li>
<li><strong>UserPreferenceChanged</strong>: se produce cuando cambian las preferencias del usuario.</li>
<li><strong>UserPreferenceChanging</strong>: se produce cuando van a cambiar las preferencias del usuario.</li>
</ul>
<p>De esta pequeña lista no he probado todas, pero si algunas con un correcto funcionamiento. Hay muchos eventos que pueden ser utilizados como el hecho de la memoria baja para lanzar el recolector de basura o el control de cierre de sistema para guardar los datos en memoria en un archivo.</p>
<p>Para utilizarlas se utilizaría el siguiente código:</p>
<blockquote>
<pre class="csharp"> <span style="color: #0600FF;">using</span> <span style="color: #000000;">Microsoft.<span style="color: #0000FF;">Win32</span></span>;
 ...
 <span style="color: #0000FF;">SystemEvents</span>.<span style="color: #0000FF;">TimeChanged</span> +=
   <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">EventHandler</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">message</span><span style="color: #000000;">&#41;</span>;
 ...
 <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> message<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, EventArgs e<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
   MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Han cambiado la hora del sistema.&quot;</span><span style="color: #000000;">&#41;</span>;
 <span style="color: #000000;">&#125;</span></pre>
</blockquote>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/dotnet-csharp/controlar-eventos-de-windows-en-csharp/' addthis:title='Controlar eventos de Windows en C# ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/dotnet-csharp/controlar-eventos-de-windows-en-csharp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

