﻿<?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>CRaZy TeaM &#187; C#</title>
	<atom:link href="http://www.crazyteam.es/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.crazyteam.es</link>
	<description>Artículos sobre noticias de informática, programación y juegos en red</description>
	<lastBuildDate>Mon, 08 Mar 2010 20:21:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ejemplo LINQ con XML</title>
		<link>http://www.crazyteam.es/c/ejempo-linq-con-xml/</link>
		<comments>http://www.crazyteam.es/c/ejempo-linq-con-xml/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 20:02:05 +0000</pubDate>
		<dc:creator>Víctor</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Framework 3.5]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=217</guid>
		<description><![CDATA[Aqui está el ejemplo de linq con ficheros xml.
Voy a seguir trabajando con los mismos datos que en el ejemplo anterior. El fichero xml queda así:

&#60;libros&#62;
&#160; &#160;&#60;libro&#62;
&#160; &#160; &#160; &#60;titulo&#62;Pascal 7&#60;/titulo&#62;
&#160; &#160; &#160; &#60;autor&#62;Luis Joyanes&#60;/autor&#62;
&#160; &#160;&#60;/libro&#62;
&#160; &#160;&#60;libro&#62;
&#160; &#160; &#160; &#60;titulo&#62;Enciclopedia de C#&#60;/titulo&#62;
&#160; &#160; &#160; &#60;autor&#62;Francisco javier Ceballos &#60;/autor&#62;
&#160; &#160;&#60;/libro&#62;
&#160; &#160;&#60;libro&#62;
&#160; &#160; &#160; &#60;titulo&#62;El código Davinci&#60;/titulo&#62;
&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Aqui está el ejemplo de linq con ficheros xml.</p>
<p>Voy a seguir trabajando con los mismos datos que en el ejemplo anterior. El fichero xml queda así:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;libros<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;libro<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;titulo<span class="re2">&gt;</span></span></span>Pascal 7<span class="sc3"><span class="re1">&lt;/titulo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;autor<span class="re2">&gt;</span></span></span>Luis Joyanes<span class="sc3"><span class="re1">&lt;/autor<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;/libro<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;libro<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;titulo<span class="re2">&gt;</span></span></span>Enciclopedia de C#<span class="sc3"><span class="re1">&lt;/titulo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;autor<span class="re2">&gt;</span></span></span>Francisco javier Ceballos <span class="sc3"><span class="re1">&lt;/autor<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;/libro<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;libro<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;titulo<span class="re2">&gt;</span></span></span>El código Davinci<span class="sc3"><span class="re1">&lt;/titulo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;autor<span class="re2">&gt;</span></span></span>Dan Brown <span class="sc3"><span class="re1">&lt;/autor<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;/libro<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;libro<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;titulo<span class="re2">&gt;</span></span></span>Ángeles y demonios<span class="sc3"><span class="re1">&lt;/titulo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;autor<span class="re2">&gt;</span></span></span>Dan Brown<span class="sc3"><span class="re1">&lt;/autor<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;/libro<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/libros<span class="re2">&gt;</span></span></span></div>
</div>
<p>Antes de nada hay que hacer un &#8220;using&#8221; al linq de xml</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">using</span> <span class="co3">System.Xml.Linq</span><span class="sy0">;</span></div>
</div>
<p>Este método hace la ordenación por título de todos los libros</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">private</span> <span class="kw1">void</span> ordenaLinqXML<span class="br0">&#40;</span><span class="kw4">string</span> path<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="co1">//Cargamos el documento xml (path es la dirección donde está el xml)</span><br />
XDocument cargaDocumento <span class="sy0">=</span> XDocument.<span class="me1">Load</span><span class="br0">&#40;</span>path<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//Creamos la query</span><br />
var query <span class="sy0">=</span> from libro <span class="kw1">in</span> cargaDocumento.<span class="me1">Descendants</span><span class="br0">&#40;</span><span class="st0">&quot;libro&quot;</span><span class="br0">&#41;</span><br />
orderby libro.<span class="me1">Element</span><span class="br0">&#40;</span><span class="st0">&quot;titulo&quot;</span><span class="br0">&#41;</span>.<span class="me1">Value</span><br />
select <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a><br />
<span class="br0">&#123;</span><br />
Titulo <span class="sy0">=</span> libro.<span class="me1">Element</span><span class="br0">&#40;</span><span class="st0">&quot;titulo&quot;</span><span class="br0">&#41;</span>.<span class="me1">Value</span>,<br />
Autor <span class="sy0">=</span> libro.<span class="me1">Element</span><span class="br0">&#40;</span><span class="st0">&quot;autor&quot;</span><span class="br0">&#41;</span>.<span class="me1">Value</span><br />
<span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="co1">//Mostramos el resultado de la ordenación en un ListBox</span><br />
<span class="kw1">foreach</span><span class="br0">&#40;</span>var libAux <span class="kw1">in</span> query<span class="br0">&#41;</span><br />
lbLinq.<span class="me1">Items</span>.<span class="me1">Add</span><span class="br0">&#40;</span>libAux.<span class="me1">Titulo</span><span class="sy0">+</span><span class="st0">&quot; &nbsp;- &nbsp;&quot;</span><span class="sy0">+</span>libAux.<span class="me1">Autor</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Este método hace la ordenación por título de todos los libros de &#8220;Dan Brown&#8221;</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">private</span> <span class="kw1">void</span> selectLinqXML<span class="br0">&#40;</span><span class="kw4">string</span> path<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="co1">//Cargamos el documento xml (path es la dirección donde está el xml)</span><br />
XDocument cargaDocumento <span class="sy0">=</span> XDocument.<span class="me1">Load</span><span class="br0">&#40;</span>path<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//Creamos la query</span><br />
var query <span class="sy0">=</span> from libro <span class="kw1">in</span> cargaDocumento.<span class="me1">Descendants</span><span class="br0">&#40;</span><span class="st0">&quot;libro&quot;</span><span class="br0">&#41;</span><br />
where libro.<span class="me1">Element</span><span class="br0">&#40;</span><span class="st0">&quot;autor&quot;</span><span class="br0">&#41;</span>.<span class="me1">Value</span>.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">Equals</span><span class="br0">&#40;</span><span class="st0">&quot;Dan Brown&quot;</span><span class="br0">&#41;</span><br />
orderby libro.<span class="me1">Element</span><span class="br0">&#40;</span><span class="st0">&quot;titulo&quot;</span><span class="br0">&#41;</span>.<span class="me1">Value</span><br />
select <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a><br />
<span class="br0">&#123;</span><br />
Titulo <span class="sy0">=</span> libro.<span class="me1">Element</span><span class="br0">&#40;</span><span class="st0">&quot;titulo&quot;</span><span class="br0">&#41;</span>.<span class="me1">Value</span>,<br />
Autor <span class="sy0">=</span> libro.<span class="me1">Element</span><span class="br0">&#40;</span><span class="st0">&quot;autor&quot;</span><span class="br0">&#41;</span>.<span class="me1">Value</span><br />
<span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="co1">//Mostramos el resultado de la ordenación en un ListBox</span><br />
<span class="kw1">foreach</span> <span class="br0">&#40;</span>var libAux <span class="kw1">in</span> query<span class="br0">&#41;</span><br />
lbLinq.<span class="me1">Items</span>.<span class="me1">Add</span><span class="br0">&#40;</span>libAux.<span class="me1">Titulo</span> <span class="sy0">+</span> <span class="st0">&quot; &nbsp;- &nbsp;&quot;</span> <span class="sy0">+</span> libAux.<span class="me1">Autor</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Como podeis ver la query se escribe de forma parecida al ejemplo anterior, la diferencia es que para acceder a los valores hay que poner:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;">libro.<span class="me1">Element</span><span class="br0">&#40;</span><span class="st0">&quot;ELEMENTO AL QUE QUEREMOS ACCEDER&quot;</span><span class="br0">&#41;</span>.<span class="me1">Value</span></div>
</div>
<p>Aunque la gran diferencia es esta:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;">select <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a><br />
<span class="br0">&#123;</span><br />
Titulo <span class="sy0">=</span> libro.<span class="me1">Element</span><span class="br0">&#40;</span><span class="st0">&quot;titulo&quot;</span><span class="br0">&#41;</span>.<span class="me1">Value</span>,<br />
Autor <span class="sy0">=</span> libro.<span class="me1">Element</span><span class="br0">&#40;</span><span class="st0">&quot;autor&quot;</span><span class="br0">&#41;</span>.<span class="me1">Value</span><br />
<span class="br0">&#125;</span><span class="sy0">;</span></div>
</div>
<p>Con esto, estamos creando las propiedades &#8220;Titulo&#8221; y &#8220;Autor&#8221; en cada uno de los elementos que va a tener la colección que recojamos de la query, y se hace en tiempo de <strong>EJECUCIÓN </strong></p>
<p>Espero que os sirva de ayuda. Un saludo!</p>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/c/ejemplo-linq/" title="Ejemplo LINQ en C#">Ejemplo LINQ en C#</a></li><li><a href="http://www.crazyteam.es/c/%c2%bfque-es-linq/" title="¿Que es LINQ?">¿Que es LINQ?</a></li><li><a href="http://www.crazyteam.es/c/como-obtener-el-identificador-de-la-cpu-en-c/" title="Como obtener el identificador de la CPU en C#">Como obtener el identificador de la CPU en C#</a></li><li><a href="http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/" title="Iniciar una aplicación cuando arranca el PocketPC">Iniciar una aplicación cuando arranca el PocketPC</a></li><li><a href="http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/" title="Control de volumen por código en Compact Framework C#">Control de volumen por código en Compact Framework C#</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/c/ejempo-linq-con-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ejemplo LINQ en C#</title>
		<link>http://www.crazyteam.es/c/ejemplo-linq/</link>
		<comments>http://www.crazyteam.es/c/ejemplo-linq/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 18:25:49 +0000</pubDate>
		<dc:creator>Víctor</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Framework 3.5]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=196</guid>
		<description><![CDATA[Lo dicho, os dejo unos ejemplos de LINQs
Creo una clase &#8220;Libro&#8221; que tiene un &#8220;Título&#8221; y un &#8220;Autor&#8221;

public class Libro
&#123;
//Propiedades
public string Titulo &#123; get; set; &#125;
public string Autor &#123; get; set; &#125;
//Constructor
public Libro&#40;string titulo, string autor&#41;
&#123;
this.Titulo = titulo;
this.Autor = autor;
&#125;
&#125;

* Si veis un poco rara la forma de declarar las propiedades y no lo entendeis [...]]]></description>
			<content:encoded><![CDATA[<p>Lo dicho, os dejo unos ejemplos de LINQs</p>
<p>Creo una clase &#8220;Libro&#8221; que tiene un &#8220;Título&#8221; y un &#8220;Autor&#8221;</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">public</span> <span class="kw4">class</span> Libro<br />
<span class="br0">&#123;</span><br />
<span class="co1">//Propiedades</span><br />
<span class="kw1">public</span> <span class="kw4">string</span> Titulo <span class="br0">&#123;</span> get<span class="sy0">;</span> set<span class="sy0">;</span> <span class="br0">&#125;</span><br />
<span class="kw1">public</span> <span class="kw4">string</span> Autor <span class="br0">&#123;</span> get<span class="sy0">;</span> set<span class="sy0">;</span> <span class="br0">&#125;</span></p>
<p><span class="co1">//Constructor</span><br />
<span class="kw1">public</span> Libro<span class="br0">&#40;</span><span class="kw4">string</span> titulo, <span class="kw4">string</span> autor<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="kw1">this</span>.<span class="me1">Titulo</span> <span class="sy0">=</span> titulo<span class="sy0">;</span><br />
<span class="kw1">this</span>.<span class="me1">Autor</span> <span class="sy0">=</span> autor<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>* Si veis un poco rara la forma de declarar las propiedades y no lo entendeis me poneis un comentario y haré otro árticulo sobre el tema.</p>
<p>Con este método creo una lista de libros con la que voy a hacer el ejemplo del LINQ</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">private</span> List cargaLibros<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="co1">//Creamos una lista con libros</span><br />
List &nbsp;libros <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> List<br />
<span class="br0">&#123;</span><br />
<a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Libro<span class="br0">&#40;</span><span class="st0">&quot;Pascal 7&quot;</span>, <span class="st0">&quot;Luis Joyanes&quot;</span><span class="br0">&#41;</span>,<br />
<a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Libro<span class="br0">&#40;</span><span class="st0">&quot;Enciclopedia C#&quot;</span>, <span class="st0">&quot;Francisco javier Ceballos&quot;</span><span class="br0">&#41;</span>,<br />
<a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Libro<span class="br0">&#40;</span><span class="st0">&quot;El código Davinci&quot;</span>,<span class="st0">&quot;Dan Brown&quot;</span><span class="br0">&#41;</span>,<br />
<a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Libro<span class="br0">&#40;</span><span class="st0">&quot;Ángeles y demonios&quot;</span>,<span class="st0">&quot;Dan Brown&quot;</span><span class="br0">&#41;</span><br />
<span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="kw1">return</span> libros<span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p><strong>**bLinq es un ListBox en el que muestro los resultados de los LINQs</strong><br />
Ejemplo de ordenación con LINQ:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">private</span> <span class="kw1">void</span> ordenaLINQ<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
List libros <span class="sy0">=</span> cargaLibros<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//Ordeno los libros por el título</span><br />
var query <span class="sy0">=</span> from lib <span class="kw1">in</span> libros<br />
orderby lib.<span class="me1">Titulo</span><br />
select lib<span class="sy0">;</span><br />
<span class="co1">//Muestro los libros ordenados</span><br />
<span class="kw1">foreach</span> <span class="br0">&#40;</span>Libro lib <span class="kw1">in</span> query<span class="br0">&#41;</span><br />
lbLinq.<span class="me1">Items</span>.<span class="me1">Add</span><span class="br0">&#40;</span>lib.<span class="me1">Titulo</span> <span class="sy0">+</span><span class="st0">&quot; &nbsp;- &nbsp;&quot;</span><span class="sy0">+</span>lib.<span class="me1">Autor</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Mismo ejemplo de ordenación pero con la nomenclatura simplificada de LINQ</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">private</span> <span class="kw1">void</span> ordenaLINQ1Simplificado<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
List libros <span class="sy0">=</span> cargaLibros<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
libros <span class="sy0">=</span> libros.<span class="me1">OrderBy</span><span class="br0">&#40;</span>p <span class="sy0">=&amp;</span>gt<span class="sy0">;</span>p.<span class="me1">Titulo</span><span class="br0">&#41;</span>.<span class="me1">ToList</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//Muestro los libros ordenados</span><br />
<span class="kw1">foreach</span> <span class="br0">&#40;</span>Libro lib <span class="kw1">in</span> libros<span class="br0">&#41;</span><br />
lbLinq.<span class="me1">Items</span>.<span class="me1">Add</span><span class="br0">&#40;</span>lib.<span class="me1">Titulo</span> <span class="sy0">+</span> <span class="st0">&quot; &nbsp;- &nbsp;&quot;</span> <span class="sy0">+</span> lib.<span class="me1">Autor</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>En este ejemplo hacemos una consulta sobre la lista que devuelve los libros de Dan Brown ordenados por el título</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">private</span> <span class="kw1">void</span> selecLINQ1<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
List libros <span class="sy0">=</span> cargaLibros<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//Selecciono los libros de Dan Brown y los ordeno por título</span><br />
var query <span class="sy0">=</span> from lib <span class="kw1">in</span> libros<br />
where lib.<span class="me1">Autor</span>.<span class="me1">Equals</span><span class="br0">&#40;</span><span class="st0">&quot;Dan Brown&quot;</span><span class="br0">&#41;</span><br />
orderby lib.<span class="me1">Titulo</span><br />
select lib<span class="sy0">;</span><br />
<span class="co1">//Muestro los libros</span><br />
<span class="kw1">foreach</span> <span class="br0">&#40;</span>Libro lib <span class="kw1">in</span> query<span class="br0">&#41;</span><br />
lbLinq.<span class="me1">Items</span>.<span class="me1">Add</span><span class="br0">&#40;</span>lib.<span class="me1">Titulo</span> <span class="sy0">+</span> <span class="st0">&quot; &nbsp;- &nbsp;&quot;</span> <span class="sy0">+</span> lib.<span class="me1">Autor</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Mismo ejemplo anterior con la nomenclatura simplificada de LINQ</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">private</span> <span class="kw1">void</span> selectLINQ1Simplificado<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
List libros <span class="sy0">=</span> cargaLibros<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
libros <span class="sy0">=</span> libros.<span class="me1">Where</span><span class="br0">&#40;</span>p <span class="sy0">=&amp;</span>gt<span class="sy0">;</span> p.<span class="me1">Autor</span> <span class="sy0">==</span> <span class="st0">&quot;Dan Brown&quot;</span><span class="br0">&#41;</span>.<span class="me1">OrderBy</span><span class="br0">&#40;</span>p <span class="sy0">=&amp;</span>gt<span class="sy0">;</span> p.<span class="me1">Titulo</span><span class="br0">&#41;</span>.<span class="me1">ToList</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//Muestro los libros</span><br />
<span class="kw1">foreach</span> <span class="br0">&#40;</span>Libro lib <span class="kw1">in</span> libros<span class="br0">&#41;</span><br />
lbLinq.<span class="me1">Items</span>.<span class="me1">Add</span><span class="br0">&#40;</span>lib.<span class="me1">Titulo</span> <span class="sy0">+</span> <span class="st0">&quot; &nbsp;- &nbsp;&quot;</span> <span class="sy0">+</span> lib.<span class="me1">Autor</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Espero que os sirva. Un saludo!</p>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/c/ejempo-linq-con-xml/" title="Ejemplo LINQ con XML">Ejemplo LINQ con XML</a></li><li><a href="http://www.crazyteam.es/c/%c2%bfque-es-linq/" title="¿Que es LINQ?">¿Que es LINQ?</a></li><li><a href="http://www.crazyteam.es/c/como-obtener-el-identificador-de-la-cpu-en-c/" title="Como obtener el identificador de la CPU en C#">Como obtener el identificador de la CPU en C#</a></li><li><a href="http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/" title="Iniciar una aplicación cuando arranca el PocketPC">Iniciar una aplicación cuando arranca el PocketPC</a></li><li><a href="http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/" title="Control de volumen por código en Compact Framework C#">Control de volumen por código en Compact Framework C#</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/c/ejemplo-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Que es LINQ?</title>
		<link>http://www.crazyteam.es/c/%c2%bfque-es-linq/</link>
		<comments>http://www.crazyteam.es/c/%c2%bfque-es-linq/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 11:10:34 +0000</pubDate>
		<dc:creator>Víctor</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Framework 3.5]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=145</guid>
		<description><![CDATA[LINQ (Language Integrated Query) son un cojunto de clases que permiten hacer consultas del tipo SQL dentro de tipos nativos del framework (bases de datos relacionales, objetos enumerables e incluso XMLs).
Estas clases están disponibles a partir del Framework 3.5


Hasta ahora el programador debía conocer el lenguaje SQL para consultas a Bases de datos relacionales y [...]]]></description>
			<content:encoded><![CDATA[<p>LINQ (Language Integrated Query) son un cojunto de clases que permiten hacer consultas del tipo SQL dentro de tipos nativos del framework (bases de datos relacionales, objetos enumerables e incluso XMLs).</p>
<p>Estas clases están disponibles a partir del Framework 3.5</p>
<p><a href="http://www.crazyteam.es/wp-content/uploads/2008/11/linq_arquitecture.gif"><img class="aligncenter size-full wp-image-152" title="linq_arquitecture" src="http://www.crazyteam.es/wp-content/uploads/2008/11/linq_arquitecture.gif" alt="" width="500" height="353" /></a></p>
<p style="text-align: center;">
<p>Hasta ahora el programador debía conocer el lenguaje SQL para consultas a Bases de datos relacionales y XQuery-XPath para trabajar con XMLs . Con LINQ el programador se puede abstraer de la capa de persistencia de datos utilizando un único lenguaje de consulta y manipulación, sin tener que preocuparse del tipo de colección con el que está trabajando.</p>
<p>En breve pondré ejemplos de LINQ sobre elementos en memoria, LINQ sobre bases de datos y LINQ sobre XML.</p>
<p>Espero que os sirva. Saludos!!</p>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/c/ejempo-linq-con-xml/" title="Ejemplo LINQ con XML">Ejemplo LINQ con XML</a></li><li><a href="http://www.crazyteam.es/c/ejemplo-linq/" title="Ejemplo LINQ en C#">Ejemplo LINQ en C#</a></li><li><a href="http://www.crazyteam.es/c/como-obtener-el-identificador-de-la-cpu-en-c/" title="Como obtener el identificador de la CPU en C#">Como obtener el identificador de la CPU en C#</a></li><li><a href="http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/" title="Iniciar una aplicación cuando arranca el PocketPC">Iniciar una aplicación cuando arranca el PocketPC</a></li><li><a href="http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/" title="Control de volumen por código en Compact Framework C#">Control de volumen por código en Compact Framework C#</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/c/%c2%bfque-es-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como obtener el identificador de la CPU en C#</title>
		<link>http://www.crazyteam.es/c/como-obtener-el-identificador-de-la-cpu-en-c/</link>
		<comments>http://www.crazyteam.es/c/como-obtener-el-identificador-de-la-cpu-en-c/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 14:06:44 +0000</pubDate>
		<dc:creator>Víctor</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=132</guid>
		<description><![CDATA[Este método devuelve una lista con los identificadores de todas las cpus que tiene el equipo en el que se ejecuta.

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.IO;
using System.Management; //Esta hay que referenciarla, si no viene referenciada por defecto.
private List&#60;string&#62; idCPU&#40;&#41;
&#123;
ManagementObjectSearcher searcher = new
ManagementObjectSearcher&#40;&#34;SELECT * FROM Win32_Processor&#34;&#41;;
List&#60;string&#62; listProcessor = new List&#60;string&#62;&#40;&#41;;
foreach &#40;ManagementObject wmi_HD in searcher.Get&#40;&#41;&#41;
&#123;
listProcessor.Add&#40;wmi_HD&#91;&#34;ProcessorID&#34;&#93;.ToString&#40;&#41;&#41;;
&#125;
return listProcessor;
&#125;

Esto a [...]]]></description>
			<content:encoded><![CDATA[<p>Este método devuelve una lista con los identificadores de todas las cpus que tiene el equipo en el que se ejecuta.</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">using</span> <span class="co3">System</span><span class="sy0">;</span><br />
<span class="kw1">using</span> <span class="co3">System.Collections.Generic</span><span class="sy0">;</span><br />
<span class="kw1">using</span> <span class="co3">System.Text</span><span class="sy0">;</span><br />
<span class="kw1">using</span> <span class="co3">System.Data</span><span class="sy0">;</span><br />
<span class="kw1">using</span> <span class="co3">System.IO</span><span class="sy0">;</span><br />
<span class="kw1">using</span> <span class="co3">System.Management</span><span class="sy0">;</span> <span class="co1">//Esta hay que referenciarla, si no viene referenciada por defecto.</span></p>
<p><span class="kw1">private</span> List<span class="sy0">&lt;</span><span class="kw4">string</span><span class="sy0">&gt;</span> idCPU<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
ManagementObjectSearcher searcher <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a><br />
ManagementObjectSearcher<span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM Win32_Processor&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
List<span class="sy0">&lt;</span><span class="kw4">string</span><span class="sy0">&gt;</span> listProcessor <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> List<span class="sy0">&lt;</span><span class="kw4">string</span><span class="sy0">&gt;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">foreach</span> <span class="br0">&#40;</span>ManagementObject wmi_HD <span class="kw1">in</span> searcher.<span class="me1">Get</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
listProcessor.<span class="me1">Add</span><span class="br0">&#40;</span>wmi_HD<span class="br0">&#91;</span><span class="st0">&quot;ProcessorID&quot;</span><span class="br0">&#93;</span>.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw1">return</span> listProcessor<span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Esto a mi me sirvió para temas de encriptación de ficheros. Espero que os ayude.</p>
<p>Saludos!!</p>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/c/ejempo-linq-con-xml/" title="Ejemplo LINQ con XML">Ejemplo LINQ con XML</a></li><li><a href="http://www.crazyteam.es/c/ejemplo-linq/" title="Ejemplo LINQ en C#">Ejemplo LINQ en C#</a></li><li><a href="http://www.crazyteam.es/c/%c2%bfque-es-linq/" title="¿Que es LINQ?">¿Que es LINQ?</a></li><li><a href="http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/" title="Iniciar una aplicación cuando arranca el PocketPC">Iniciar una aplicación cuando arranca el PocketPC</a></li><li><a href="http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/" title="Control de volumen por código en Compact Framework C#">Control de volumen por código en Compact Framework C#</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/c/como-obtener-el-identificador-de-la-cpu-en-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iniciar una aplicación cuando arranca el PocketPC</title>
		<link>http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/</link>
		<comments>http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 07:07:39 +0000</pubDate>
		<dc:creator>Víctor</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Compact Framework]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=110</guid>
		<description><![CDATA[Para iniciar una aplicación de forma automática cuando arranca el PocketPC hay que escribir su dirección en el siguiente fichero.
\Windows\Inicio
Espero que os sirva. Un saludo
Artículos RelacionadosControl de volumen por código en Compact Framework C#Bloqueo y suspensión del Pocket PC por codigoApplication.Startup en Compact FrameworkTransparencias en C# Compact FrameworkEjemplo LINQ con XML]]></description>
			<content:encoded><![CDATA[<p>Para iniciar una aplicación de forma automática cuando arranca el PocketPC hay que escribir su dirección en el siguiente fichero.</p>
<p><strong>\Windows\Inicio</strong></p>
<p>Espero que os sirva. Un saludo</p>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/" title="Control de volumen por código en Compact Framework C#">Control de volumen por código en Compact Framework C#</a></li><li><a href="http://www.crazyteam.es/c/bloqueo-y-suspension-de-pda-por-codigo/" title="Bloqueo y suspensión del Pocket PC por codigo">Bloqueo y suspensión del Pocket PC por codigo</a></li><li><a href="http://www.crazyteam.es/c/applicationstartup-en-compact-framework/" title="Application.Startup en Compact Framework">Application.Startup en Compact Framework</a></li><li><a href="http://www.crazyteam.es/c/transparencias-en-c-compact-framework/" title="Transparencias en C# Compact Framework">Transparencias en C# Compact Framework</a></li><li><a href="http://www.crazyteam.es/c/ejempo-linq-con-xml/" title="Ejemplo LINQ con XML">Ejemplo LINQ con XML</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Control de volumen por código en Compact Framework C#</title>
		<link>http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/</link>
		<comments>http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 06:19:19 +0000</pubDate>
		<dc:creator>Víctor</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Compact Framework]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=63</guid>
		<description><![CDATA[Aqui pongo otra clase que ha hecho Carlitros para controlar el volumen por código

public class ControlVolumen
&#123;
//Estas constantes contienen los niveles de volumen de la PDA
const int OFF = 1;
const int VERY_LOW = 858993459;
const int LOW = 1717986918;
const int NORMAL = -1717986919;
const int HIGH = -858993460;
const int VERY_HIGH = -1;
&#91;DllImport&#40;&#34;coredll.dll&#34;&#41;&#93;
private static extern int waveOutSetVolume&#40;IntPtr hwo, int [...]]]></description>
			<content:encoded><![CDATA[<p>Aqui pongo otra clase que ha hecho Carlitros para controlar el volumen por código</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">public</span> <span class="kw4">class</span> ControlVolumen<br />
<span class="br0">&#123;</span><br />
<span class="co1">//Estas constantes contienen los niveles de volumen de la PDA</span><br />
<span class="kw1">const</span> <span class="kw4">int</span> OFF <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span><br />
<span class="kw1">const</span> <span class="kw4">int</span> VERY_LOW <span class="sy0">=</span> <span class="nu0">858993459</span><span class="sy0">;</span><br />
<span class="kw1">const</span> <span class="kw4">int</span> LOW <span class="sy0">=</span> <span class="nu0">1717986918</span><span class="sy0">;</span><br />
<span class="kw1">const</span> <span class="kw4">int</span> NORMAL <span class="sy0">=</span> <span class="sy0">-</span><span class="nu0">1717986919</span><span class="sy0">;</span><br />
<span class="kw1">const</span> <span class="kw4">int</span> HIGH <span class="sy0">=</span> <span class="sy0">-</span><span class="nu0">858993460</span><span class="sy0">;</span><br />
<span class="kw1">const</span> <span class="kw4">int</span> VERY_HIGH <span class="sy0">=</span> <span class="sy0">-</span><span class="nu0">1</span><span class="sy0">;</span></p>
<p><span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;coredll.dll&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">private</span> <span class="kw1">static</span> <span class="kw1">extern</span> <span class="kw4">int</span> waveOutSetVolume<span class="br0">&#40;</span>IntPtr hwo, <span class="kw4">int</span> dwVolume<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;coredll.dll&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">private</span> <span class="kw1">static</span> <span class="kw1">extern</span> <span class="kw4">int</span> waveOutGetVolume<span class="br0">&#40;</span>IntPtr hwo, <span class="kw1">ref</span> <span class="kw4">int</span> dwVolume<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> Apagado<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
waveOutSetVolume<span class="br0">&#40;</span>IntPtr.<span class="me1">Zero</span>, OFF<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> MuyBajo<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
waveOutSetVolume<span class="br0">&#40;</span>IntPtr.<span class="me1">Zero</span>, VERY_LOW<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> Bajo<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
waveOutSetVolume<span class="br0">&#40;</span>IntPtr.<span class="me1">Zero</span>, LOW<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> Normal<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
waveOutSetVolume<span class="br0">&#40;</span>IntPtr.<span class="me1">Zero</span>, NORMAL<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> Alto<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
waveOutSetVolume<span class="br0">&#40;</span>IntPtr.<span class="me1">Zero</span>, HIGH<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> MuyAlto<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
waveOutSetVolume<span class="br0">&#40;</span>IntPtr.<span class="me1">Zero</span>, VERY_HIGH<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> SubirVolumen<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="kw4">int</span> vol <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br />
waveOutGetVolume<span class="br0">&#40;</span>IntPtr.<span class="me1">Zero</span>, <span class="kw1">ref</span> vol<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">switch</span> <span class="br0">&#40;</span>vol<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="kw1">case</span> <span class="br0">&#40;</span>OFF<span class="br0">&#41;</span><span class="sy0">:</span><br />
MuyBajo<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span></p>
<p><span class="kw1">case</span> <span class="br0">&#40;</span>VERY_LOW<span class="br0">&#41;</span><span class="sy0">:</span><br />
Bajo<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span></p>
<p><span class="kw1">case</span> <span class="br0">&#40;</span>LOW<span class="br0">&#41;</span><span class="sy0">:</span><br />
Normal<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span></p>
<p><span class="kw1">case</span> <span class="br0">&#40;</span>NORMAL<span class="br0">&#41;</span><span class="sy0">:</span><br />
Alto<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span></p>
<p><span class="kw1">case</span> <span class="br0">&#40;</span>HIGH<span class="br0">&#41;</span><span class="sy0">:</span><br />
MuyAlto<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span></p>
<p><span class="kw1">case</span> <span class="br0">&#40;</span>VERY_HIGH<span class="br0">&#41;</span><span class="sy0">:</span><br />
MessageBox.<span class="me1">Show</span><span class="br0">&#40;</span><span class="st0">&quot;Volumen a tope&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> BajarVolumen<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="kw4">int</span> vol <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br />
waveOutGetVolume<span class="br0">&#40;</span>IntPtr.<span class="me1">Zero</span>, <span class="kw1">ref</span> vol<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">switch</span> <span class="br0">&#40;</span>vol<span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
<span class="kw1">case</span> <span class="br0">&#40;</span>OFF<span class="br0">&#41;</span><span class="sy0">:</span><br />
MessageBox.<span class="me1">Show</span><span class="br0">&#40;</span><span class="st0">&quot;Sin sonido&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span></p>
<p><span class="kw1">case</span> <span class="br0">&#40;</span>VERY_LOW<span class="br0">&#41;</span><span class="sy0">:</span><br />
Apagado<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span></p>
<p><span class="kw1">case</span> <span class="br0">&#40;</span>LOW<span class="br0">&#41;</span><span class="sy0">:</span><br />
MuyBajo<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span></p>
<p><span class="kw1">case</span> <span class="br0">&#40;</span>NORMAL<span class="br0">&#41;</span><span class="sy0">:</span><br />
Bajo<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span></p>
<p><span class="kw1">case</span> <span class="br0">&#40;</span>HIGH<span class="br0">&#41;</span><span class="sy0">:</span><br />
Normal<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span></p>
<p><span class="kw1">case</span> <span class="br0">&#40;</span>VERY_HIGH<span class="br0">&#41;</span><span class="sy0">:</span><br />
Alto<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
break<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Espero que os sirva. Saludos!</p>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/" title="Iniciar una aplicación cuando arranca el PocketPC">Iniciar una aplicación cuando arranca el PocketPC</a></li><li><a href="http://www.crazyteam.es/c/bloqueo-y-suspension-de-pda-por-codigo/" title="Bloqueo y suspensión del Pocket PC por codigo">Bloqueo y suspensión del Pocket PC por codigo</a></li><li><a href="http://www.crazyteam.es/c/applicationstartup-en-compact-framework/" title="Application.Startup en Compact Framework">Application.Startup en Compact Framework</a></li><li><a href="http://www.crazyteam.es/c/transparencias-en-c-compact-framework/" title="Transparencias en C# Compact Framework">Transparencias en C# Compact Framework</a></li><li><a href="http://www.crazyteam.es/c/ejempo-linq-con-xml/" title="Ejemplo LINQ con XML">Ejemplo LINQ con XML</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Bloqueo y suspensión del Pocket PC por codigo</title>
		<link>http://www.crazyteam.es/c/bloqueo-y-suspension-de-pda-por-codigo/</link>
		<comments>http://www.crazyteam.es/c/bloqueo-y-suspension-de-pda-por-codigo/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 10:05:23 +0000</pubDate>
		<dc:creator>Víctor</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Compact Framework]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=30</guid>
		<description><![CDATA[Con esta clase que ha desarrollado Carlitros podemos bloquear (barra de inicio y teclado hardware) y suspender una PDA por código.

public class BloquearPDA
&#123;
#region DLL&#8217;s
&#91;DllImport&#40;&#34;Coredll.dll&#34;, EntryPoint = &#34;FindWindow&#34;&#41;&#93;
private static extern System.IntPtr FindWindow&#40;string lpClassName, string lpWindowName&#41;;
&#91;DllImport&#40;&#34;coredll.dll&#34;, EntryPoint = &#34;EnableWindow&#34;&#41;&#93;
private static extern bool EnableWindow&#40;IntPtr hWnd, bool value&#41;;
&#91;DllImport&#40;&#34;gx.dll&#34;, EntryPoint = &#34;#9&#34;&#41;&#93;
public static extern int GXOpenInput&#40;&#41;;
&#91;DllImport&#40;&#34;gx.dll&#34;, EntryPoint = &#34;#3&#34;&#41;&#93;
public static [...]]]></description>
			<content:encoded><![CDATA[<p>Con esta clase que ha desarrollado Carlitros podemos bloquear (barra de inicio y teclado hardware) y suspender una PDA por código.</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw1">public</span> <span class="kw4">class</span> BloquearPDA<br />
<span class="br0">&#123;</span><br />
<span class="co2">#region DLL&#8217;s</span><br />
<span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;Coredll.dll&quot;</span>, EntryPoint <span class="sy0">=</span> <span class="st0">&quot;FindWindow&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">private</span> <span class="kw1">static</span> <span class="kw1">extern</span> <span class="kw5">System</span>.<span class="me1">IntPtr</span> FindWindow<span class="br0">&#40;</span><span class="kw4">string</span> lpClassName, <span class="kw4">string</span> lpWindowName<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;coredll.dll&quot;</span>, EntryPoint <span class="sy0">=</span> <span class="st0">&quot;EnableWindow&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">private</span> <span class="kw1">static</span> <span class="kw1">extern</span> <span class="kw4">bool</span> EnableWindow<span class="br0">&#40;</span>IntPtr hWnd, <span class="kw4">bool</span> value<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;gx.dll&quot;</span>, EntryPoint <span class="sy0">=</span> <span class="st0">&quot;#9&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">extern</span> <span class="kw4">int</span> GXOpenInput<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;gx.dll&quot;</span>, EntryPoint <span class="sy0">=</span> <span class="st0">&quot;#3&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">extern</span> <span class="kw4">int</span> GXCloseInput<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="br0">&#91;</span>DllImport<span class="br0">&#40;</span><span class="st0">&quot;coredll.dll&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
<span class="kw1">private</span> <span class="kw1">static</span> <span class="kw1">extern</span> <span class="kw1">void</span> GwesPowerOffSystem<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co2">#endregion</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> BloqueaBarraInicio<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
IntPtr taskBarHandle<span class="sy0">;</span><br />
taskBarHandle <span class="sy0">=</span> FindWindow<span class="br0">&#40;</span><span class="st0">&quot;HHTaskBar&quot;</span>, <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
EnableWindow<span class="br0">&#40;</span>taskBarHandle, <span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> DesbloquearBarraInicio<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
IntPtr taskBarHandle<span class="sy0">;</span><br />
taskBarHandle <span class="sy0">=</span> FindWindow<span class="br0">&#40;</span><span class="st0">&quot;HHTaskBar&quot;</span>, <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
EnableWindow<span class="br0">&#40;</span>taskBarHandle, <span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> BloquearTeclasPDA<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
GXOpenInput<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> DesbloquearTeclasPDA<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
GXCloseInput<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw1">void</span> SuspenderPDA<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
GwesPowerOffSystem<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>Espero que os sirva. Un saludo!!</p>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/" title="Iniciar una aplicación cuando arranca el PocketPC">Iniciar una aplicación cuando arranca el PocketPC</a></li><li><a href="http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/" title="Control de volumen por código en Compact Framework C#">Control de volumen por código en Compact Framework C#</a></li><li><a href="http://www.crazyteam.es/c/applicationstartup-en-compact-framework/" title="Application.Startup en Compact Framework">Application.Startup en Compact Framework</a></li><li><a href="http://www.crazyteam.es/c/transparencias-en-c-compact-framework/" title="Transparencias en C# Compact Framework">Transparencias en C# Compact Framework</a></li><li><a href="http://www.crazyteam.es/c/ejempo-linq-con-xml/" title="Ejemplo LINQ con XML">Ejemplo LINQ con XML</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/c/bloqueo-y-suspension-de-pda-por-codigo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application.Startup en Compact Framework</title>
		<link>http://www.crazyteam.es/c/applicationstartup-en-compact-framework/</link>
		<comments>http://www.crazyteam.es/c/applicationstartup-en-compact-framework/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 11:26:38 +0000</pubDate>
		<dc:creator>Víctor</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Compact Framework]]></category>

		<guid isPermaLink="false">http://bwaha.wordpress.com/?p=25</guid>
		<description><![CDATA[En framework para acceder a la url desde la que se está ejecutando la aplicación se utiliza la sentencia Application.Startup que devuelve un string con la dirección.
Si queremos hacer esto mismo en Compact Framework nos llevamos la sorpresa de que no existe esta sentencia o alguna parecida.
La solución es la siguiente

String path = Path.GetDirectoryName&#40;System.Reflection.Assembly.
GetExecutingAssembly&#40;&#41;.GetModules&#40;&#91;0&#93;.FullyQualifiedName&#41;

Espero que [...]]]></description>
			<content:encoded><![CDATA[<p>En framework para acceder a la url desde la que se está ejecutando la aplicación se utiliza la sentencia Application.Startup que devuelve un string con la dirección.</p>
<p>Si queremos hacer esto mismo en Compact Framework nos llevamos la sorpresa de que no existe esta sentencia o alguna parecida.</p>
<p>La solución es la siguiente</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;"><span class="kw4">String</span> path <span class="sy0">=</span> Path.<span class="me1">GetDirectoryName</span><span class="br0">&#40;</span><span class="kw5">System.<span class="me1">Reflection</span></span>.<span class="me1">Assembly</span>.<br />
<span class="me1">GetExecutingAssembly</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">GetModules</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">FullyQualifiedName</span><span class="br0">&#41;</span></div>
</div>
<p>Espero que os sirva de ayuda. Saludos!!!</p>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/" title="Iniciar una aplicación cuando arranca el PocketPC">Iniciar una aplicación cuando arranca el PocketPC</a></li><li><a href="http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/" title="Control de volumen por código en Compact Framework C#">Control de volumen por código en Compact Framework C#</a></li><li><a href="http://www.crazyteam.es/c/bloqueo-y-suspension-de-pda-por-codigo/" title="Bloqueo y suspensión del Pocket PC por codigo">Bloqueo y suspensión del Pocket PC por codigo</a></li><li><a href="http://www.crazyteam.es/c/transparencias-en-c-compact-framework/" title="Transparencias en C# Compact Framework">Transparencias en C# Compact Framework</a></li><li><a href="http://www.crazyteam.es/c/ejempo-linq-con-xml/" title="Ejemplo LINQ con XML">Ejemplo LINQ con XML</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/c/applicationstartup-en-compact-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transparencias en C# Compact Framework</title>
		<link>http://www.crazyteam.es/c/transparencias-en-c-compact-framework/</link>
		<comments>http://www.crazyteam.es/c/transparencias-en-c-compact-framework/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 09:45:36 +0000</pubDate>
		<dc:creator>Ignacio Sánchez</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Compact Framework]]></category>
		<category><![CDATA[transparencias]]></category>

		<guid isPermaLink="false">http://bwaha.wordpress.com/?p=4</guid>
		<description><![CDATA[Hemos conseguido hacer transparencias en C#, aunque no es nada facil como sería meter un gif/png con colores Alpha. Aquí hay que usar un croma y quitarlo en el rectandulo donde queramos pintarlo.
El código necesario es:

Image img = recursos.imagen;
ImageAttributes attr = new ImageAttributes&#40;&#41;;
Color color = Color.FromArgb&#40;0, 0, 0&#41;;
attr.SetColorKey&#40;color, color&#41;;
g.DrawImage&#40;img, rectDestino, posX, posY, img.width, img.height, Graphics.Pixel,color&#41;;

Expliquemos [...]]]></description>
			<content:encoded><![CDATA[<p>Hemos conseguido hacer transparencias en C#, aunque no es nada facil como sería meter un gif/png con colores Alpha. Aquí hay que usar un croma y quitarlo en el rectandulo donde queramos pintarlo.</p>
<p>El código necesario es:</p>
<div class="codesnip-container" >
<div class="csharp codesnip" style="font-family:monospace;">Image img <span class="sy0">=</span> recursos.<span class="me1">imagen</span><span class="sy0">;</span><br />
ImageAttributes attr <span class="sy0">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> ImageAttributes<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
Color color <span class="sy0">=</span> Color.<span class="me1">FromArgb</span><span class="br0">&#40;</span>0, 0, 0<span class="br0">&#41;</span><span class="sy0">;</span><br />
attr.<span class="me1">SetColorKey</span><span class="br0">&#40;</span>color, color<span class="br0">&#41;</span><span class="sy0">;</span><br />
g.<span class="me1">DrawImage</span><span class="br0">&#40;</span>img, rectDestino, posX, posY, img.<span class="me1">width</span>, img.<span class="me1">height</span>, Graphics.<span class="me1">Pixel</span>,color<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>Expliquemos esto un poco con unos pasos básicos:</p>
<ol>
<li>El procedimiento se basa en un croma sobre la imagen (parecido al fondo verde del hombre del tiempo)</li>
<li>img: imagen del tipo Image que queremos pintar</li>
<li>attr: los atributos que daremos a la imagen</li>
<li>color: el color usado en el croma de la imagen</li>
<li>attr.SetColorKey: método que indica cual es el color del croma. Se pasan dos atributos de tipo Color que indican el color de bajo y el color de alto (para rangos de colores que usaremos en la transparencia). En CF tienen que ser el mismo, puesto que no acepta rango de color para la transparencia.</li>
<li>rectDestino: Es necesario tener un rectangulo de destino para pintar la imagen, pues es de donde se aplicará la imagen sin el croma</li>
</ol>
<p>A continuación se muestra una imagen de prueba de que funciona:</p>
<p><a title="Transparencia c# CF" href="http://bwaha.files.wordpress.com/2008/02/dibujo.png"><img style="border:0 none;" src="http://bwaha.files.wordpress.com/2008/02/dibujo.png" alt="Transparencia c# CF" /></a></p>
<p>Aquí hemos usado el croma 0,0,0 (Color.black), aunque no es el más recomendabl, y se comprueba la transparencia (aunque también las rebabillas, que hay que pulir con chotopop)</p>
<p>Ahora se están haciendo pruebas con animaciones de imagenes&#8230; a ver como acaba la cosa&#8230;</p>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/c/iniciar-una-aplicacion-cuando-arranca-el-pocketpc/" title="Iniciar una aplicación cuando arranca el PocketPC">Iniciar una aplicación cuando arranca el PocketPC</a></li><li><a href="http://www.crazyteam.es/c/control-de-volumen-por-codigo-en-compact-framework/" title="Control de volumen por código en Compact Framework C#">Control de volumen por código en Compact Framework C#</a></li><li><a href="http://www.crazyteam.es/c/bloqueo-y-suspension-de-pda-por-codigo/" title="Bloqueo y suspensión del Pocket PC por codigo">Bloqueo y suspensión del Pocket PC por codigo</a></li><li><a href="http://www.crazyteam.es/c/applicationstartup-en-compact-framework/" title="Application.Startup en Compact Framework">Application.Startup en Compact Framework</a></li><li><a href="http://www.crazyteam.es/c/ejempo-linq-con-xml/" title="Ejemplo LINQ con XML">Ejemplo LINQ con XML</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/c/transparencias-en-c-compact-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
