<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-613910526169410652</id><updated>2012-01-30T08:48:37.175+01:00</updated><category term='Visual Basic'/><category term='Windows Mobile'/><category term='VB.Net'/><category term='Joomla'/><category term='Compartir'/><category term='BlackBerry'/><category term='Sql Server'/><title type='text'>Programación Total</title><subtitle type='html'>Todo sobre el Desarrollo de aplicaciones, Visual Basic, .NET, Java, J2ME, C++, HTML, BlackBerry, Pocket</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-975314158269182734</id><published>2011-02-27T16:14:00.002+01:00</published><updated>2011-02-27T16:20:21.528+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Compartir'/><title type='text'>¿Quieres compartir tu código?, codr.cc es la solución!</title><content type='html'>&lt;b&gt;codr.cc &lt;/b&gt;es una página creada para compartir código.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Al entrar te sale como una especie de bloc de notas donde pordras escribir tu codigo, tambien tienes la posibilidad de usar un archivo que tengas guardado en tu pc. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Le das a Create Code y te lo mostrara bien presentado e indicandote que url tendrán que usar para ver tu código. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este es un ejemplo -&gt; &lt;a href="http://codr.cc/068E7FC51D"&gt;http://codr.cc/068E7FC51D&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-975314158269182734?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/975314158269182734/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2011/02/quieres-compartir-tu-codigo-codrcc-es.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/975314158269182734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/975314158269182734'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2011/02/quieres-compartir-tu-codigo-codrcc-es.html' title='¿Quieres compartir tu código?, codr.cc es la solución!'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-1697521334903388405</id><published>2010-07-13T15:52:00.002+02:00</published><updated>2010-07-13T15:55:05.608+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><title type='text'>Llamar DLL de Visual Basic .NET en Visual Basic 6</title><content type='html'>&lt;h3 id="tocHeadRef"&gt;Instrucciones para exponer tipos de .NET a COM&lt;/h3&gt;&lt;script type="text/javascript"&gt;                 loadTOCNode(2, 'moreinformation');             &lt;/script&gt;Cuando desea exponer tipos en un ensamblado de  Microsoft .NET a aplicaciones de modelo de objetos componentes (COM),  considerar los siguientes requisitos de interoperabilidad de COM en  tiempo de diseño. Administrado tipos (&lt;b&gt; clase &lt;/b&gt;, &lt;b&gt; interfaz &lt;/b&gt;,  &lt;b&gt; estructura &lt;/b&gt;, &lt;b&gt; enumeración &lt;/b&gt; y otros) interactúan bien con  las aplicaciones de cliente COM cuando siga estas directrices:       &lt;ul&gt;&lt;li&gt;Definir  interfaces y implementar explícitamente en las clases.       Interoperabilidad COM proporciona un mecanismo para generar  automáticamente una interfaz que contiene todos los miembros de la clase  y los miembros de su clase base. Sin embargo, es mejor proporcionar  interfaces explícitas y implementar de forma explícita.&lt;/li&gt;&lt;li&gt;Declarar  tipos administrados todos los que desea exponer a COM como pública.  Sólo los tipos públicos en un ensamblado están registrados y exportar a  la biblioteca de tipo. Por tanto, sólo los tipos públicos son visibles  para COM. &lt;/li&gt;&lt;li&gt;Declarar a todos los miembros de tipo (métodos,  propiedades, campos y eventos) que desee exponer a COM como pública. Los  miembros de tipos públicos también deben ser públicos sean visibles  para COM. De forma predeterminada, todos los tipos públicos y miembros  son visibles. Utilice el atributo &lt;b&gt; ComVisibleAttribute &lt;/b&gt; si tiene  que ocultar un miembro de tipo o miembro visibilidad de controles para  las aplicaciones de cliente COM o de un tipo.&lt;/li&gt;&lt;li&gt;Los tipos deben  tener un constructor predeterminado público para ejecutarse a través de  COM administrado, tipos públicos son visibles para COM. Sin embargo, sin  un constructor público predeterminado (un constructor sin argumentos),  COM los clientes no pueden crear una instancia del tipo. Los clientes  COM pueden utilizar el tipo si el tipo es crear instancias en otra forma  y se devuelve al cliente COM la instancia. Puede incluir constructores  sobrecargados que aceptan argumentos distintos para estos tipos. Sin  embargo, los constructores que aceptan argumentos sólo se pueden llamar  desde código administrado (. NET).&lt;/li&gt;&lt;li&gt;Tipos no pueden ser  abstractas. Ni los clientes COM como .NET los clientes pueden crear  instancias de tipos abstractos.&lt;/li&gt;&lt;li&gt;Utilice la plantilla &lt;b&gt;  clasecom &lt;/b&gt; en Visual Basic .NET o en Visual Basic 2005. Cuando agrega  una nueva clase que desea exponer a las aplicaciones COM, considere el  uso la plantilla &lt;b&gt; clasecom &lt;/b&gt; que se proporciona mediante Visual  Basic.NET o Visual Basic 2005. La plantilla &lt;b&gt; clasecom &lt;/b&gt; crea una  clase que incluye el atributo &lt;b&gt; COMClassAttribute &lt;/b&gt; y genera GUID  para el CLSID, el identificador de interfaz y su identificador que  exponen su tipo. Además, la plantilla &lt;b&gt; clasecom &lt;/b&gt; crea un  constructor público sin parámetros. Esta es la forma más fácil para  crear una nueva clase que sigue las instrucciones para crear tipos de  COM al que se puede llamar.&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="tocHeadRef"&gt;Registrando el  ensamblado de .NET para interoperabilidad COM y creando una biblioteca  de tipo&lt;/h3&gt;&lt;script type="text/javascript"&gt;                 loadTOCNode(2, 'moreinformation');             &lt;/script&gt;Para Visual Basic 6.0 interactuar correctamente con  un componente administrado, debe registrar el ensamblado para  interoperabilidad COM y generar una biblioteca de tipo. Este registro  debe realizarse en cada equipo donde un COM aplicación cliente  interactúa con el ensamblado. La biblioteca de tipo proporciona  información de tipo sobre los tipos expuestos en el ensamblado a las  aplicaciones de cliente COM.      El proceso para hacer esto depende de  si está trabajando en el equipo de desarrollo o en el equipo de destino.&lt;br /&gt;&lt;br /&gt;En  el equipo de desarrollo Visual Studio.NET o Microsoft Visual Studio  2005 automáticamente crea una biblioteca de tipo y lo registra durante  el proceso de generación si está activada la casilla de verificación &lt;strong class="uiterm"&gt; Registrar para interoperabilidad COM &lt;/strong&gt; en  Propiedades de &lt;b&gt; configuración &lt;/b&gt; del proyecto. Si utilizó la  plantilla &lt;b&gt; clasecom &lt;/b&gt; cuando creó la clase, Visual Studio .NET o  Visual Studio 2005 selecciona automáticamente el de &lt;strong class="uiterm"&gt; Registrar para interoperabilidad COM &lt;/strong&gt; casilla  de verificación. Para comprobar que está activada la casilla de  verificación &lt;strong class="uiterm"&gt; Registrar para interoperabilidad  COM &lt;/strong&gt; en Visual Studio .NET o Visual Studio 2005, siga estos  pasos:      &lt;ol&gt;&lt;li&gt;Inicie Visual Studio .NET o Visual Studio 2005.&lt;/li&gt;&lt;li&gt;Abra  la solución que contiene el proyecto que desea generar la  interoperabilidad COM.&lt;/li&gt;&lt;li&gt;En el menú &lt;strong class="uiterm"&gt; Ver &lt;/strong&gt;,  haga clic en &lt;strong class="uiterm"&gt; Solution Explorer &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;En  el Explorador de soluciones, haga clic con el botón secundario del  mouse en el proyecto que desea generar la interoperabilidad COM y, a  continuación, haga clic en &lt;strong class="uiterm"&gt; Propiedades &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Haga  clic en &lt;strong class="uiterm"&gt; Propiedades de configuración &lt;/strong&gt;  y, a continuación, haga clic en el nodo &lt;strong class="uiterm"&gt; Build &lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;  Nota &lt;/b&gt; En Visual Studio 2005, haga clic en &lt;strong class="uiterm"&gt;  compilar &lt;/strong&gt; en el panel izquierdo.&lt;/li&gt;&lt;li&gt;Haga clic para  seleccionar el &lt;strong class="uiterm"&gt; Register for COM Interop &lt;/strong&gt;  casilla de verificación. Esta opción sólo está habilitada en los  proyectos de biblioteca de clases.&lt;/li&gt;&lt;li&gt;Haga clic en &lt;strong class="uiterm"&gt; Aceptar &lt;/strong&gt; para cerrar el &lt;strong class="uiterm"&gt;  propiedad páginas &lt;/strong&gt; cuadro de diálogo.&lt;/li&gt;&lt;/ol&gt;Si no está  instalado Visual Studio .NET o Visual Studio 2005 o si tiene que generar  manualmente y registrar un archivo de biblioteca (.tlb) de tipo para el  ensamblado administrado, utilice la herramienta Registro de ensamblados  (RegAsm.exe) con el &lt;b&gt; / TLB &lt;/b&gt; cambiar. También se debe utilizar el  modificador &lt;b&gt; / código base &lt;/b&gt; si el ensamblado administrado es un  ensamblado privado y desea colocar el ensamblado administrado en una  carpeta diferente del proceso de host (EXE).&lt;br /&gt;&lt;br /&gt;Un ensamblado  privado se implementa con una aplicación y está disponible para uso  exclusivo de esa aplicación. Otras aplicaciones no comparten el  ensamblado privado. Ensamblados privados están diseñados para instalarse  en la misma carpeta que el proceso de host (EXE). Con una aplicación de  cliente COM, esto implica que el ensamblado se encuentra en la misma  carpeta que esa aplicación.      Un ensamblado compartido está  disponible para uso por varias aplicaciones en el equipo. Para crear un  ensamblado compartido, debe firmar el ensamblado con un nombre seguro e  instalar al ensamblado en la caché de ensamblados global (GAC) en el  equipo de destino.&lt;br /&gt;&lt;br /&gt;Para obtener más información acerca de cómo  firmar el ensamblado con un nombre seguro e instale al ensamblado en la  caché de ensamblados global (GAC), visite el siguiente sitio Web de  Microsoft:&lt;div class="indent"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/xc31ft41%28vs.71%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/xc31ft41(vs.71).aspx&lt;/a&gt;&lt;span class="pLink"&gt;              (http://msdn2.microsoft.com/en-us/library/xc31ft41(vs.71).aspx)         &lt;/span&gt;&lt;span class="kb_space"&gt;&lt;/span&gt;&lt;/div&gt;Debe utilizar ambos  el &lt;b&gt; / tlb: &lt;/b&gt; modificador y el &lt;b&gt; / la código base &lt;/b&gt; cambiar al  registrar el ensamblado. El &lt;b&gt; / tlb: &lt;/b&gt; modificador genera y  registra una biblioteca de tipo, y el modificador &lt;b&gt; / código base &lt;/b&gt;  registra la ubicación del ensamblado administrado en el registro de  Windows. Si no utiliza el modificador &lt;b&gt; / código base &lt;/b&gt; y no se ha  instalado el ensamblado en la caché de ensamblados global (GAC), debe  colocar una copia del ensamblado en la carpeta de cada aplicación de  cliente COM (EXE) para que se puede encontrar el ensamblado de common  language Runtime (CLR).&lt;br /&gt;&lt;br /&gt;Para generar y registrar una biblioteca  de tipo y registrar la ubicación del ensamblado administrado, escriba el  comando siguiente en el símbolo del sistema: &lt;div class="indent"&gt;&lt;span class="userInput"&gt; /tlb de Regasm &lt;var&gt;AssemblyName.dll&lt;/var&gt;: &lt;var&gt;FileName.tlb&lt;/var&gt;  /CODEBASE &lt;/span&gt;&lt;/div&gt;&lt;h4 id="tocHeadRef"&gt;Crear un ensamblado al que  se puede llamar de COM en Visual Basic .NET&lt;/h4&gt;&lt;script type="text/javascript"&gt;             loadTOCNode(3, 'moreinformation');         &lt;/script&gt;&lt;ol&gt;&lt;li&gt;Inicie Visual Studio .NET o Visual Studio 2005.  &lt;/li&gt;&lt;li&gt;En el menú &lt;strong class="uiterm"&gt; archivo &lt;/strong&gt;,  seleccione &lt;strong class="uiterm"&gt; nuevo &lt;/strong&gt; y, a continuación,  haga clic en &lt;strong class="uiterm"&gt; proyecto &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;En &lt;strong class="uiterm"&gt; Tipos de proyecto &lt;/strong&gt;, haga clic en &lt;strong class="uiterm"&gt; Proyectos de Visual Basic &lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Nota &lt;/b&gt;  En Visual Studio2005 haga clic en &lt;strong class="uiterm"&gt; Visual Basic &lt;/strong&gt;  bajo &lt;strong class="uiterm"&gt; Tipos de proyecto &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;En &lt;strong class="uiterm"&gt; plantillas &lt;/strong&gt;, haga clic en &lt;strong class="uiterm"&gt; Class Library &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Denomine el proyecto  TestProj y, a continuación, haga clic en &lt;strong class="uiterm"&gt; Aceptar  &lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;De manera predeterminada se crea Class1.&lt;/li&gt;&lt;li&gt;En  el menú &lt;strong class="uiterm"&gt; Ver &lt;/strong&gt;, haga clic en &lt;strong class="uiterm"&gt; Solution Explorer &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Haga clic con el  botón secundario del mouse en &lt;strong class="uiterm"&gt; Class1.vb &lt;/strong&gt;  y, a continuación, haga clic en &lt;strong class="uiterm"&gt; Eliminar &lt;/strong&gt;.  Haga clic en &lt;strong class="uiterm"&gt; Aceptar &lt;/strong&gt; para confirmar  la eliminación del archivo de origen Class1.vb.&lt;/li&gt;&lt;li&gt;En el menú &lt;strong class="uiterm"&gt; proyecto &lt;/strong&gt;, haga clic en &lt;strong class="uiterm"&gt;  Agregar clase &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;En &lt;strong class="uiterm"&gt; plantillas &lt;/strong&gt;,  haga clic en &lt;strong class="uiterm"&gt; Clase COM &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Asigne  a la clase COMClass1.vb el nombre y, a continuación, haga clic en &lt;strong class="uiterm"&gt; Abrir &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;COMClass1 se crea con el código  siguiente. &lt;div class="kb_codebody"&gt;&lt;div class="kb_codecontent"&gt;&lt;code&gt;&lt;/code&gt;&lt;pre class="code"&gt;&lt;comclass(comclass1.classid,&gt; _&lt;br /&gt;Public Class ComClass1&lt;br /&gt;&lt;br /&gt;#Region "COM GUIDs"&lt;br /&gt;  ' These  GUIDs provide the COM identity for this class&lt;br /&gt;  ' and its COM interfaces. If you change them, existing&lt;br /&gt;  ' clients will no longer be able to access the class.&lt;br /&gt;  Public Const ClassId As String = "6DB79AF2-F661-44AC-8458-62B06BFDD9E4"&lt;br /&gt;  Public Const InterfaceId As String = "EDED909C-9271-4670-BA32-109AE917B1D7"&lt;br /&gt;  Public Const EventsId As String = "17C731B8-CE61-4B5F-B114-10F3E46153AC"&lt;br /&gt;#End Region&lt;br /&gt;&lt;br /&gt;  ' A creatable COM class must have a Public Sub New()&lt;br /&gt;  ' without parameters. Otherwise, the class will not be&lt;br /&gt;  ' registered in the COM registry and cannot be created&lt;br /&gt;  ' through CreateObject.&lt;br /&gt;  Public Sub New()&lt;br /&gt;      MyBase.New()&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;End Class&lt;/comclass(comclass1.classid,&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Agregue la siguiente función a  COMClass1. &lt;div class="kb_codebody"&gt;&lt;div class="kb_codecontent"&gt;&lt;code&gt;&lt;/code&gt;&lt;pre class="code"&gt;   Public Function myFunction() As Integer&lt;br /&gt;    Return 100&lt;br /&gt; End Function&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;En el Explorador de  soluciones, haga clic con el botón secundario en &lt;strong class="uiterm"&gt;&lt;var&gt;Project  Name&lt;/var&gt;&lt;/strong&gt; y, a continuación, haga clic en &lt;strong class="uiterm"&gt; Propiedades &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;En &lt;strong class="uiterm"&gt;  Propiedades de configuración &lt;/strong&gt;, haga clic en &lt;strong class="uiterm"&gt; Generar &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Compruebe que se comprueba la  &lt;strong class="uiterm"&gt; Registrar para interoperabilidad COM &lt;/strong&gt;  está activada y, a continuación, haga clic en &lt;strong class="uiterm"&gt;  Aceptar &lt;/strong&gt;. &lt;/li&gt;&lt;li&gt;En el menú &lt;strong class="uiterm"&gt; Generar &lt;/strong&gt;,  haga clic en &lt;strong class="uiterm"&gt; Generar soluciones &lt;/strong&gt; para  generar el proyecto.&lt;/li&gt;&lt;li&gt;Inicie Visual Basic 6.0.&lt;/li&gt;&lt;li&gt;En el menú  &lt;strong class="uiterm"&gt; archivo &lt;/strong&gt;, haga clic en &lt;strong class="uiterm"&gt; Nuevo proyecto &lt;/strong&gt; y, a continuación, haga clic  para seleccionar &lt;strong class="uiterm"&gt; EXE estándar &lt;/strong&gt; en el  cuadro de diálogo &lt;strong class="uiterm"&gt; Nuevo proyecto &lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;De  forma predeterminada, se crea un formulario que se denomina Form1.&lt;/li&gt;&lt;li&gt;En  el menú &lt;strong class="uiterm"&gt; proyecto &lt;/strong&gt;, haga clic en &lt;strong class="uiterm"&gt; referencias &lt;/strong&gt;. &lt;/li&gt;&lt;li&gt;En la lista &lt;strong class="uiterm"&gt; Referencias disponibles &lt;/strong&gt;, haga doble clic para  seleccionar &lt;strong class="uiterm"&gt; TestProj &lt;/strong&gt; y, a  continuación, haga clic en &lt;strong class="uiterm"&gt; Aceptar &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Agregue  un botón de comando al formulario.&lt;/li&gt;&lt;li&gt;Haga doble clic en &lt;strong class="uiterm"&gt; Command1 &lt;/strong&gt; para abrir el código de ventana.&lt;/li&gt;&lt;li&gt;Agregue  el código siguiente al evento &lt;b&gt; Command1_Click &lt;/b&gt;. &lt;div class="kb_codebody"&gt;&lt;div class="kb_codecontent"&gt;&lt;code&gt;&lt;/code&gt;&lt;pre class="code"&gt;Dim myObject As TestProj.COMClass1&lt;br /&gt;Set myObject = New TestProj.COMClass1&lt;br /&gt;MsgBox myObject.myFunction&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;En el menú &lt;strong class="uiterm"&gt; Ejecutar &lt;/strong&gt;, haga clic en &lt;strong class="uiterm"&gt;  iniciar &lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Haga clic en el botón de comando.&lt;br /&gt;&lt;br /&gt;Debe  recibir un mensaje que muestra 100.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Sacado del soporte de Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-1697521334903388405?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/1697521334903388405/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2010/07/llamar-dll-de-visual-basic-net-en.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/1697521334903388405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/1697521334903388405'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2010/07/llamar-dll-de-visual-basic-net-en.html' title='Llamar DLL de Visual Basic .NET en Visual Basic 6'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-3468317174614972175</id><published>2010-05-24T10:25:00.007+02:00</published><updated>2010-05-24T12:59:37.607+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joomla'/><title type='text'>Joomla - Añadir mas campos al registro de usuario</title><content type='html'>Buenas, veamos como podemos añadir facilmente más campos al registro de un usuario sin necesidad de ningun tipo de extensión.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En esté ejemplo yo añadire el campo Empresa.&lt;br /&gt;&lt;br /&gt;Bueno, lo primero es añadir los campos en la base de datos.&lt;br /&gt;&lt;br /&gt;Vas a la tabla &lt;span style="font-weight: bold;"&gt;jos_users&lt;/span&gt; y añades los campos necesarios, en mi caso añado empresa.&lt;br /&gt;&lt;br /&gt;Lo segundo es editar el formulario de registro para añadir los campos que queramos.&lt;br /&gt;&lt;br /&gt;Esté es el archivo del formulario &lt;span style="font-weight: bold;"&gt;/components/com_user/views/register/tmpl/default.php&lt;/span&gt; . Lo editamos con cualquier procesador de texto, por ejemplo el bloc de notas.&lt;br /&gt;&lt;br /&gt;Si sabemos de HTML os sera muy facil editarlo.&lt;br /&gt;&lt;br /&gt;Para el que no:&lt;br /&gt;&lt;br /&gt;Lo que hay entre &lt;span style="font-weight: bold;"&gt;&amp;lt;tr&gt; &amp;lt;/tr&gt;&lt;/span&gt;   es una fila del formulario, es decir, el texto descriptivo y el campo blanco para escribir.&lt;br /&gt;&lt;br /&gt;Pues nos copiamos uno, por ejemplo el del usuario:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;lt;label id="usernamemsg" for="username"&gt;&lt;br /&gt;Username:&lt;br /&gt;&amp;lt;/label&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;input id="username" name="username" value="" type="text" style="font-size: 40px;"&gt;escape($this-&gt;user-&gt;get( 'username' ));?&gt;" class="inputbox required validate-username" maxlength="25" /&gt; *&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Ese lo volvemos a pegar debajo y procederemos  a editarlo.&lt;br /&gt;&lt;br /&gt;Yo cambiaria todos los "username" por "empresa" y quitaria del atributo class "validate-username"&lt;br /&gt;&lt;br /&gt;Me quedaría así:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&amp;lt;label id="empresamsg" for="empresa"&gt;&lt;br /&gt;Empresa:&lt;br /&gt;&amp;lt;/label&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;input id="empresa" name="empresa" size="40" value="" type="text"&gt;escape($this-&gt;user-&gt;get( 'empresa' ));?&gt;" class="inputbox required" maxlength="25" /&gt; *&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Guardamos los cambios y podriamos probar la página para ver los resultados.&lt;br /&gt;&lt;br /&gt;Este formulario usa un objeto JTABLE de joomla que carga los datos del form sobre la tabla , es decir,  en ningun momento ese componente usa SQL puro.&lt;br /&gt;&lt;br /&gt;Así que tenemos que añadirle la propiedad "empresa" ¿Como? Pues , buscamos el archivo &lt;span style="font-weight: bold;"&gt;/libraries/joomla/database/table/user.php&lt;/span&gt; y lo editamos con el bloc de notas.&lt;br /&gt;&lt;br /&gt;Simplemente tenemos que añadir la declaracion de la variable.&lt;br /&gt;&lt;br /&gt;Cogiendo por ejemplo de nuevo el username existe este texto en el archivo&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;/**&lt;br /&gt;* The login name&lt;br /&gt;*&lt;br /&gt;* @var string&lt;br /&gt;*/&lt;br /&gt;var $username        = null;&lt;i nput="" id="username" name="username" value="" type="text" size="40px"&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;i nput="" id="username" name="username" value="" type="text" size="40px"&gt;&lt;br /&gt;&lt;br /&gt;pues tendriamos que añadir, (yo no le pondre comentarios)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;var $empresa = null;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Importante: Está variable tiene que llamarse exactamente igual que el nombre del campo de la base de datos.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Guardamos y listo! A probarlo!&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-3468317174614972175?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/3468317174614972175/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2010/05/joomla-anadir-mas-campos-al-registro-de.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/3468317174614972175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/3468317174614972175'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2010/05/joomla-anadir-mas-campos-al-registro-de.html' title='Joomla - Añadir mas campos al registro de usuario'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-429134294498659412</id><published>2010-01-27T13:55:00.003+01:00</published><updated>2010-01-27T14:04:31.371+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.NET - Capturar la rueda del ratón</title><content type='html'>Para capturar el movimiento de la rueda del ratón se usa el evento &lt;span style="font-weight: bold;"&gt;MouseWheel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para capturar si se mueve hacia arriba o hacia abajo se usa el argumento&lt;span style="font-weight: bold;"&gt; Delta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lo que devuelbe Delta es:&lt;br /&gt;&lt;br /&gt;     Si es hacia arriba devuelve un &lt;span style="color: rgb(0, 0, 153);"&gt;Integer &lt;/span&gt;con el valor &lt;span style="font-weight: bold;"&gt;120&lt;/span&gt;&lt;br /&gt;     Si es hacia abajo devuelve un &lt;span style="color: rgb(0, 0, 153);"&gt;Integer &lt;/span&gt;con el valor &lt;span style="font-weight: bold;"&gt;-120&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un ejemplo:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Private &lt;/span&gt;Sub Form1_MouseWheel(&lt;span style="color: rgb(0, 0, 153);"&gt;ByVal &lt;/span&gt;sender &lt;span style="color: rgb(0, 0, 153);"&gt;As Object&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 153);"&gt;ByVal &lt;/span&gt;e &lt;span style="color: rgb(0, 0, 153);"&gt;As&lt;/span&gt; System.Windows.Forms.MouseEventArgs) &lt;span style="color: rgb(0, 0, 153);"&gt;Handles &lt;/span&gt;Me.MouseWheel&lt;br /&gt;&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 153);"&gt;Select Case&lt;/span&gt; e.Delta&lt;br /&gt;           &lt;span style="color: rgb(0, 0, 153);"&gt;Case &lt;/span&gt;120&lt;br /&gt;               &lt;span style="color: rgb(0, 102, 0);"&gt;'Se ha movido hacia arriba&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: rgb(0, 0, 153);"&gt;Case &lt;/span&gt;-120&lt;br /&gt;               &lt;span style="color: rgb(0, 102, 0);"&gt;'Se ha movido hacia abajo.&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;     End Select&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    End Sub&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Un uso que se me ocurre por ejemplo es aumentar o disminuir una variable Zoom.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-429134294498659412?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/429134294498659412/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2010/01/vbnet-capturar-la-rueda-del-raton.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/429134294498659412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/429134294498659412'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2010/01/vbnet-capturar-la-rueda-del-raton.html' title='VB.NET - Capturar la rueda del ratón'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-902199735659432207</id><published>2010-01-19T12:22:00.003+01:00</published><updated>2010-01-19T13:01:01.183+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.NET - Subir fichero a un servidor por FTP</title><content type='html'>Para subir un fichero a un servidor mediante FTP, ¡¡solo hay que usar una linea!!&lt;br /&gt;&lt;br /&gt;Y la linea es........................................................................&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;My&lt;/span&gt;.Computer.Network.UploadFile("FicheroASubir", "CarpetayNombreDelFicheroEnServidor", "UsuarioFTP", "ContraseñaFTP", &lt;span style="color: rgb(0, 0, 153);"&gt;True&lt;/span&gt; o &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt;, 500)&lt;/blockquote&gt;&lt;br /&gt;Donde &lt;span style="color: rgb(0, 0, 153);"&gt;True&lt;/span&gt; o &lt;span style="color: rgb(0, 0, 153);"&gt;False &lt;/span&gt;es si quieres mostrar una pantallita con el progreso de la subida.&lt;br /&gt;&lt;br /&gt;500 es el TimeOut. (Tiempo de espera por si falla)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-902199735659432207?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/902199735659432207/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2010/01/vbnet-subir-fichero-un-servidor-por-ftp.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/902199735659432207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/902199735659432207'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2010/01/vbnet-subir-fichero-un-servidor-por-ftp.html' title='VB.NET - Subir fichero a un servidor por FTP'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-2625620987319949155</id><published>2009-10-22T12:52:00.005+02:00</published><updated>2009-10-22T13:00:42.120+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.NET - Hacer una espera o pausa</title><content type='html'>Alguna vez es posible que &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;necesitéis&lt;/span&gt; que el programa espere un tiempo antes de hacer algo.&lt;br /&gt;&lt;br /&gt;Bueno la forma de hacerlo es:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;System.Threading.Thread.Sleep(ElTiempoaEsperar)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Cuando llegue &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;ahí&lt;/span&gt; el programa esperara el tiempo en  milisegundos que le indiquemos.&lt;br /&gt;&lt;br /&gt;Por ejemplo, si queremos que espere 3 segundos sería así:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;System.Threading.Thread.Sleep(3000)&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-2625620987319949155?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/2625620987319949155/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/10/vbnet-hacer-una-espera.html#comment-form' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/2625620987319949155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/2625620987319949155'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/10/vbnet-hacer-una-espera.html' title='VB.NET - Hacer una espera o pausa'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-2975642899246318443</id><published>2009-09-14T18:18:00.003+02:00</published><updated>2009-09-14T18:23:12.610+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net - Comprobar si tu programa está en ejecución.</title><content type='html'>Función para comprobar si tu programa está en ejecución.&lt;br /&gt;&lt;br /&gt;Te puede servir para que tu programa se ejecute solo una vez.&lt;br /&gt;&lt;br /&gt;Te devuelve true si ya está en ejecución.&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Function &lt;span style="color: rgb(0, 0, 0);"&gt;ProgramaEjecutado&lt;/span&gt;&lt;/span&gt;() &lt;span style="color: rgb(0, 0, 102);"&gt;As Boolean&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 102);"&gt;   If &lt;/span&gt;UBound(System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess.ProcessName)) &gt; 0 &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            Return True&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        Else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            Return False&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;        End If&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    End Function&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-2975642899246318443?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/2975642899246318443/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/09/vbnet-comprobar-si-tu-programa-esta-en.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/2975642899246318443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/2975642899246318443'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/09/vbnet-comprobar-si-tu-programa-esta-en.html' title='VB.Net - Comprobar si tu programa está en ejecución.'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-2459735128112759801</id><published>2009-06-19T10:49:00.009+02:00</published><updated>2009-06-19T12:07:00.894+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net Dibujar con degradado con Drawin2D</title><content type='html'>Vamos a ver como podemos darle bonitos colores a nuestros controles a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;través&lt;/span&gt; de la &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;librería&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Drawin&lt;/span&gt;2D&lt;br /&gt;&lt;br /&gt;En este ejemplo vamos a hacerlo con un &lt;span style="font-weight: bold;"&gt;Panel&lt;/span&gt;, aunque se puede utilizar con cualquier contenedor que tenga el evento &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Paint&lt;/span&gt;&lt;/span&gt; y se pueda poner &lt;span style="font-weight: bold;"&gt;transparente&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;El resultado sería como este:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_hFacphaKc8Y/SjtSbHs5hTI/AAAAAAAAF7A/BwYzOt1woOA/s1600-h/PanelColoreado.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 140px;" src="http://3.bp.blogspot.com/_hFacphaKc8Y/SjtSbHs5hTI/AAAAAAAAF7A/BwYzOt1woOA/s200/PanelColoreado.JPG" alt="" id="BLOGGER_PHOTO_ID_5348959608309908786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bueno vamos al &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;lió&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lo primero insertamos en el formulario el Panel, y le ponemos en la propiedad &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;BackColor&lt;/span&gt;&lt;/span&gt; en &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Transparente&lt;/span&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;(que está en la pestaña &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Web&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Ahora nos vamos al código e importamos la &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;librería&lt;/span&gt;:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Imports&lt;/span&gt; System.Drawing.Drawing2D&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;Ahora nos vamos al evento &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Paint&lt;/span&gt; &lt;/span&gt;del panel&lt;span style="font-style: italic;"&gt;. &lt;/span&gt;Y ponemos esto:&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Dim&lt;/span&gt; &lt;/span&gt;Brocha &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;LinearGradientBrush&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Dim&lt;/span&gt; &lt;/span&gt;Superficie &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Graphics&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Dim&lt;/span&gt; &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Rectangulo&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;Rectangle&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Dim&lt;/span&gt; &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Lapiz&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;Pen&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Try&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style="color: rgb(0, 102, 0);"&gt;'&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_22"&gt;Aquí&lt;/span&gt; igualamos la variable superficie a los argumentos del panel&lt;/span&gt;&lt;br /&gt;       Superficie = e.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Graphics&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            '&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_24"&gt;Aquí&lt;/span&gt; seleccionaremos el color del borde (yo lo he puesto azul oscuro)&lt;/span&gt;&lt;br /&gt;       &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Lapiz&lt;/span&gt; = &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;New&lt;/span&gt; &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;Pen&lt;/span&gt;(Color.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;Navy&lt;/span&gt;, 1)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            'Le damos el tamaño al &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_29"&gt;rectángulo&lt;/span&gt;, cero a la altura y cero a la izquierda y&lt;br /&gt;'el tamaño usamos las propiedades del Panel&lt;/span&gt;&lt;br /&gt;       &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;Rectangulo&lt;/span&gt; = &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;New&lt;/span&gt; &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;Rectangle&lt;/span&gt;(0, 0, Panel1.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;Width&lt;/span&gt;, Panel1.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;Height&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            '&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_37"&gt;Aquí&lt;/span&gt; elegimos los colores del degradado y la forma del degradado&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            '&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_38"&gt;Aquí&lt;/span&gt; esta puesto &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;ForwardDiagonal&lt;/span&gt;, es decir, de esquina superior a la esquina inferior&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            'juega con esa propiedad para ver sus efectos&lt;/span&gt;&lt;br /&gt;       Brocha = &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;New&lt;/span&gt; &lt;/span&gt;System.Drawing.Drawing2D.LinearGradientBrush(Rectangulo, Color.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;White&lt;/span&gt;, Color.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;Navy&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;LinearGradientMode&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;ForwardDiagonal&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            '&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_45"&gt;Aquí&lt;/span&gt; pintamos el cuadrado y luego el borde&lt;/span&gt;&lt;br /&gt;       Superficie.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;FillRectangle&lt;/span&gt;(Brocha, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;Rectangulo&lt;/span&gt;)&lt;br /&gt;       Superficie.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;DrawRectangle&lt;/span&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;Lapiz&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;Rectangulo&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;             'Lo liberamos de la memoria&lt;/span&gt;&lt;br /&gt;       &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;Lapiz&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;Dispose&lt;/span&gt;()&lt;br /&gt;       Superficie.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;Dispose&lt;/span&gt;()&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;Catch&lt;/span&gt; &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;ex&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;Exception&lt;/span&gt;&lt;br /&gt;         &lt;span style="color: rgb(0, 102, 0);"&gt;'No hacemos nada si falla. Si hay error&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;End&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;Try&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Y listo ya &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_59"&gt;tendríamos&lt;/span&gt; nuestro panel decorado!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tambien, puedes añadir, por ejemplo, un label al Panel  y en el mismo paint del Panel añadir que te pinte el Label de otro color, pasandole las propiedades del label&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Rectangulo = &lt;span style="color: rgb(0, 0, 153);"&gt;New &lt;/span&gt;Rectangle(Label1.Left, Label1.Top, Label1.Width, Label1.Height)&lt;br /&gt;Brocha = &lt;span style="color: rgb(0, 0, 153);"&gt;New &lt;/span&gt;System.Drawing.Drawing2D.LinearGradientBrush(Rectangulo, Color.Yellow, Color.LimeGreen, LinearGradientMode.ForwardDiagonal)&lt;br /&gt;           Superficie.FillRectangle(Brocha, Rectangulo)&lt;br /&gt;           Superficie.DrawRectangle(Lapiz, Rectangulo)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Quedaría así:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_hFacphaKc8Y/SjtjM8-wm1I/AAAAAAAAF7I/pxzSOS4RRC4/s1600-h/PanelColoreado2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 156px;" src="http://1.bp.blogspot.com/_hFacphaKc8Y/SjtjM8-wm1I/AAAAAAAAF7I/pxzSOS4RRC4/s200/PanelColoreado2.JPG" alt="" id="BLOGGER_PHOTO_ID_5348978056611535698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-2459735128112759801?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/2459735128112759801/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/06/vbnet-dibujar-con-degradado-con.html#comment-form' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/2459735128112759801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/2459735128112759801'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/06/vbnet-dibujar-con-degradado-con.html' title='VB.Net Dibujar con degradado con Drawin2D'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hFacphaKc8Y/SjtSbHs5hTI/AAAAAAAAF7A/BwYzOt1woOA/s72-c/PanelColoreado.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-4202629332165851966</id><published>2009-06-09T15:48:00.003+02:00</published><updated>2011-01-25T11:55:16.602+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net - Capturar pantalla</title><content type='html'>Ahora vamos a crear un jpg que contenga una captura de la pantalla.&lt;br /&gt;&lt;br /&gt;Hemos creado una función que devuelve una imagen, usamos el SendKeys para capturar la pantalla y la extraemos del portapapeles, luego llamaremos a la funcion y el resultado lo guardaremos en una ruta del disco duro.&lt;br /&gt;Mira que bonito olle!&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;Public Function&lt;/span&gt; TrincarImagen() &lt;span style="color: rgb(0, 0, 153);"&gt;As Image&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;&lt;/span&gt;       &lt;span style="color: rgb(0, 102, 0);"&gt; ' Tamaño de lo que queremos copiar&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(0, 102, 0);"&gt;' En este caso el tamaño de la ventana principal&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(51, 102, 102);"&gt;Dim &lt;/span&gt;fSize &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;Size = Screen.PrimaryScreen.Bounds.Size&lt;br /&gt;      &lt;span style="color: rgb(0, 102, 0);"&gt; ' Creamos el bitmap con el área que vamos a capturar&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;bm &lt;span style="color: rgb(0, 0, 153);"&gt;As New&lt;/span&gt; Bitmap(fSize.Width, fSize.Height)&lt;br /&gt;       &lt;span style="color: rgb(0, 102, 0);"&gt;' Un objeto Graphics a partir del bitmap&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;gr &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;Graphics = Graphics.FromImage(bm)&lt;br /&gt;       &lt;span style="color: rgb(0, 102, 0);"&gt;' Copiar todo el área de la pantalla&lt;/span&gt;&lt;br /&gt;       gr.CopyFromScreen(0, 0, 0, 0, fSize)&lt;br /&gt;    &lt;br /&gt;       &lt;span style="color: rgb(0, 0, 153);"&gt;Return &lt;span style="color: rgb(0, 0, 0);"&gt;bm&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    End Function&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Ahora solo queda llamar a la funcion y guardar la imagen. Seria algo asi:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;blockquote&gt;     &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;Pantallazo &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;Image&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;Pantallazo = TrincarImagen()&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;Pantallazo.Save("RUTA\pantallazo.jpg")&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Listo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-4202629332165851966?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/4202629332165851966/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/06/vbnet-capturar-pantalla.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/4202629332165851966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/4202629332165851966'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/06/vbnet-capturar-pantalla.html' title='VB.Net - Capturar pantalla'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-1366860709183752266</id><published>2009-06-08T15:52:00.002+02:00</published><updated>2009-06-08T16:18:19.320+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net - Exportar DataGridView a Excel</title><content type='html'>Bueno, lo primero es añadir la referencia &lt;span style="font-weight: bold;"&gt;Microsoft.Office.Interop.Excel&lt;/span&gt;, dependiendo del Office que tengas podrás usar la versión 11 (hasta 2003) o la 12 (2007 jiji).&lt;br /&gt;&lt;br /&gt;Bueno en resumen, lo que hago es, crear tres variables, que una sera el programa, el libro y otra la hoja. Luego solo nos queda escribir, y te saldrá un bonito cuento :)&lt;br /&gt;&lt;br /&gt;Aquí os dejo la función, no es nada difícil de comprender.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;Function &lt;/span&gt;GridAExcel(&lt;span style="color: rgb(0, 0, 153);"&gt;ByVal &lt;/span&gt;ElGrid &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;DataGridView) &lt;span style="color: rgb(0, 0, 153);"&gt;As Boolean&lt;/span&gt;&lt;br /&gt;       &lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;        'Creamos las variables&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;exApp As New Microsoft.Office.Interop.Excel.Application&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;exLibro As Microsoft.Office.Interop.Excel.Workbook&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;exHoja As Microsoft.Office.Interop.Excel.Worksheet&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;Try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            'Añadimos el Libro al programa, y la hoja al libro&lt;/span&gt;&lt;br /&gt;            exLibro = exApp.Workbooks.Add&lt;br /&gt;            exHoja = exLibro.Worksheets.Add()&lt;br /&gt;           &lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            ' ¿Cuantas columnas y cuantas filas?&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;NCol &lt;span style="color: rgb(0, 0, 153);"&gt;As Integer&lt;/span&gt; = ElGrid.ColumnCount&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;NRow &lt;span style="color: rgb(0, 0, 153);"&gt;As Integer&lt;/span&gt; = ElGrid.RowCount&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;'Aqui recorremos todas las filas, y por cada fila todas las columnas y vamos escribiendo.&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 153);"&gt;For &lt;/span&gt;i &lt;span style="color: rgb(0, 0, 153);"&gt;As Intege&lt;/span&gt;r = 1 &lt;span style="color: rgb(0, 0, 153);"&gt;To &lt;/span&gt;NCol&lt;br /&gt;                exHoja.Cells.Item(1, i) = ElGrid.Columns(i - 1).Name.ToString&lt;br /&gt;                'exHoja.Cells.Item(1, i).HorizontalAlignment = 3&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 153);"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 153);"&gt;For &lt;/span&gt;Fila &lt;span style="color: rgb(0, 0, 153);"&gt;As Integer&lt;/span&gt; = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;To &lt;/span&gt;NRow - 1&lt;br /&gt;                &lt;span style="color: rgb(0, 0, 153);"&gt;For &lt;/span&gt;Col &lt;span style="color: rgb(0, 0, 153);"&gt;As Integer&lt;/span&gt; = 0 To NCol - 1&lt;br /&gt;                    exHoja.Cells.Item(Fila + 2, Col + 1) = ElGrid.Rows(Fila).Cells(Col).Value&lt;br /&gt;                &lt;span style="color: rgb(0, 0, 153);"&gt;Next&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 153);"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            'Titulo en negrita, Alineado al centro y que el tamaño de la columna se&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            ajuste al texto&lt;/span&gt;&lt;br /&gt;            exHoja.Rows.Item(1).Font.Bold = 1&lt;br /&gt;            exHoja.Rows.Item(1).HorizontalAlignment = 3&lt;br /&gt;            exHoja.Columns.AutoFit()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            'Aplicación visible&lt;/span&gt;&lt;br /&gt;            exApp.Application.Visible = True&lt;br /&gt;&lt;br /&gt;            exHoja = &lt;span style="color: rgb(0, 0, 153);"&gt;Nothing&lt;/span&gt;&lt;br /&gt;            exLibro = &lt;span style="color: rgb(0, 0, 153);"&gt;Nothing&lt;/span&gt;&lt;br /&gt;            exApp = &lt;span style="color: rgb(0, 0, 153);"&gt;Nothing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;Catch &lt;/span&gt;ex &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;            MsgBox(ex.Message, MsgBoxStyle.Critical, &lt;span style="color: rgb(153, 0, 0);"&gt;"Error al exportar a Excel"&lt;/span&gt;)&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 153);"&gt;Return &lt;/span&gt;False&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;End Try&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;Return &lt;/span&gt;True&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    End Function&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;La función devuelve un True o un False, dependiendo si el resultado ha sido satisfactorio.&lt;br /&gt;&lt;br /&gt;Si quieres también le puedes añadir un ProgressBar e ir sumándole uno al valor del Progress dentro del For.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saludos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-1366860709183752266?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/1366860709183752266/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/06/vbnet-exportar-datagridview-excel.html#comment-form' title='74 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/1366860709183752266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/1366860709183752266'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/06/vbnet-exportar-datagridview-excel.html' title='VB.Net - Exportar DataGridView a Excel'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>74</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-1873018560985855262</id><published>2009-04-23T16:42:00.003+02:00</published><updated>2009-06-09T16:08:53.937+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>VB.Net - Enviar email</title><content type='html'>Ahora te voy a explicar como mandar un e-mail con visual basic .NET&lt;br /&gt;&lt;br /&gt;Es bastante sencillo, esta sería la función:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Private Sub&lt;/span&gt; EnviarCorreo()&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;Dim&lt;/span&gt; smtpCliente&lt;span style="color: rgb(0, 0, 102);"&gt; As New&lt;/span&gt;&lt;br /&gt;System.Net.Mail.SmtpClient(&lt;span style="color: rgb(153, 0, 0);"&gt;"smtp.tudominio.com"&lt;/span&gt;, 25)&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Dim&lt;/span&gt; ELCorreo &lt;span style="color: rgb(0, 0, 153);"&gt;As New&lt;br /&gt;&lt;/span&gt;System.Net.Mail.MailMessage(&lt;span style="color: rgb(153, 0, 0);"&gt;"elqueenvia@tudominio.com"&lt;/span&gt;,&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;"elquerecibe@dominio.com"&lt;/span&gt;, &lt;span style="color: rgb(153, 0, 0);"&gt;"Asunto"&lt;/span&gt;, &lt;span style="color: rgb(153, 0, 0);"&gt;"Mensaje"&lt;/span&gt;)&lt;br /&gt;smtpCliente.Credentials = &lt;span style="color: rgb(0, 0, 153);"&gt;New&lt;/span&gt; System.Net.NetworkCredential(&lt;span style="color: rgb(153, 0, 0);"&gt;"Usuario"&lt;/span&gt;, &lt;span style="color: rgb(153, 0, 0);"&gt;"Contraseña"&lt;/span&gt;)&lt;br /&gt;smtpCliente.Send(ELCorreo)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Esa es la función, solo tienes que sustituir los datos por los tuyos :)&lt;br /&gt;&lt;br /&gt;Por supuesto está función la podrás parametrizar  por ejemplo, con todos los datos parametrizados.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Private Sub&lt;/span&gt; EnviarCorreo(&lt;span style="color: rgb(0, 0, 153);"&gt;ByVal&lt;/span&gt; Smtp&lt;span style="color: rgb(0, 0, 153);"&gt; As String&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 153);"&gt;ByVal&lt;/span&gt; De &lt;span style="color: rgb(0, 0, 153);"&gt;As String&lt;/span&gt;, &lt;span style="color: rgb(51, 102, 102);"&gt;ByVal&lt;/span&gt; Para&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;As String&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 153);"&gt;ByVal&lt;/span&gt; Asunto &lt;span style="color: rgb(0, 0, 153);"&gt;As String&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 153);"&gt;ByVal&lt;/span&gt; Mensaje &lt;span style="color: rgb(0, 0, 153);"&gt;As String&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 153);"&gt;ByVal&lt;/span&gt; Usuario &lt;span style="color: rgb(0, 0, 153);"&gt;As&lt;br /&gt;String&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 153);"&gt;ByVal&lt;/span&gt; Pass &lt;span style="color: rgb(0, 0, 153);"&gt;As String&lt;/span&gt;)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Dim&lt;/span&gt; smtpCliente &lt;span style="color: rgb(0, 0, 153);"&gt;As New &lt;/span&gt;System.Net.Mail.SmtpClient(Smtp, 25)&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;span style="color: rgb(0, 0, 0);"&gt;ELCorreo&lt;/span&gt; As New&lt;/span&gt;&lt;br /&gt;System.Net.Mail.MailMessage(De, Para, Asunto,&lt;br /&gt;Mensaje)&lt;br /&gt;smtpCliente.Credentials = &lt;span style="color: rgb(0, 0, 153);"&gt;New&lt;/span&gt; System.Net.NetworkCredential(Usuario,&lt;br /&gt;Pass)&lt;br /&gt;smtpCliente.Send(ELCorreo)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;End Sub&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;Ya solo queda llamar a la función con los parametros y ¡vuala! mensaje enviado :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Acabo de actualizar.... si quieres mandar un archivo adjunto, tendrias que poner esto antes del &lt;span style="font-weight: bold;"&gt;Send&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Dim att As New System.Net.Mail.Attachment("RUTAARCHIVO.EXT")&lt;br /&gt;ELCorreo.Attachments.Add(att)&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-1873018560985855262?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/1873018560985855262/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/04/vbnet-enviar-email.html#comment-form' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/1873018560985855262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/1873018560985855262'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/04/vbnet-enviar-email.html' title='VB.Net - Enviar email'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-5071149534980773174</id><published>2009-04-01T12:17:00.004+02:00</published><updated>2009-04-01T13:10:28.031+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><title type='text'>Aceptar más de una conexión con Winsock</title><content type='html'>Os voy a mostrar, como podemos aceptar varias peticiones de conexión con &lt;span style="font-weight: bold;"&gt;Winsock&lt;/span&gt;. Aqui doy por hecho, de que conoceis Winsock, solo que está parte es mas rebuscada.&lt;br /&gt;&lt;br /&gt;Bueno al tajo, la idea es, mantener el control winsock siempre a la escucha, cuando llegue una petición cargamos otro Winsock y a ese se la asignamos. Así podras tener tantas conexiones quieras!&lt;br /&gt;&lt;br /&gt;Veamos, lo primero que tienes que hacer, en el modo diseño, ir a las propiedades del Winsock y en Index poner un 0 (cero). Así conseguimos poder crear un array de controles del Winsock.&lt;br /&gt;&lt;br /&gt;Ahora lo pondremos a escuchar, pondremos el primero, ahora mismo el unico winsock que tenemos, que es Winsock1(0), yo lo he hecho en el Load, tu donde tu quieras, un botón, ect.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Private Sub&lt;/span&gt; Form_Load()&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;'Aqui pones el puerto que quieras&lt;/span&gt;&lt;br /&gt;  Winsock1(0).LocalPort = "666"&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;'dejo escuchando conexiones entrantes&lt;/span&gt;&lt;br /&gt;  Winsock1(0).Listen&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;End Sub&lt;/span&gt;&lt;/blockquote&gt;Bien, primero creamos una variable en General para controlar el numero de Winsock que vamos creando y para luego poder usarlos. Yo la he llamado N ( no me he comido mucho la cabeza)&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;N &lt;span style="color: rgb(0, 0, 153);"&gt;as Integer&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Ahora utilizaremos el evento ConnectionRequest, para aceptar la petición de conexión, pero hay que modificarlo para que nos pille que control usamos, es decir, añadir el Index (lo marco en rojo).&lt;br /&gt;&lt;br /&gt;Ahora, hacer mágia! jiji&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Private Sub&lt;/span&gt; Winsock1_ConnectionRequest(&lt;span style="color: rgb(204, 0, 0);"&gt;Index As Integer,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;ByVal &lt;/span&gt;requestID &lt;span style="color: rgb(0, 0, 153);"&gt;As Long&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;On Error Resume Next&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;'Comprobamos que el Index sea el 0, nuestro escuchador de por vida.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;If &lt;/span&gt;Index = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;'Sumamos uno al contador de Winsocks&lt;/span&gt;&lt;br /&gt;  N = N + 1&lt;br /&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;'Cargamos un nuevo Winsock&lt;/span&gt;&lt;br /&gt;  Load Winsock1(N)&lt;br /&gt;  Winsock1(N).LocalPort = 0&lt;br /&gt;  Winsock1(N).Accept requestID&lt;span style="color: rgb(0, 102, 0);"&gt; 'Aceptamos la conexión&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;end if&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;end sub&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Listo! Ya tendriamos un winsock conectado. Para usarlo sería por ejemplo:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Winsock(1).SenData "Ou yeah!"&lt;/blockquote&gt;&lt;br /&gt;Recuerda que en cada evento del Winsock, tendrás que añadir el Index as Integer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-5071149534980773174?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/5071149534980773174/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/04/aceptar-mas-de-una-conexion-con-winsock.html#comment-form' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/5071149534980773174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/5071149534980773174'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/04/aceptar-mas-de-una-conexion-con-winsock.html' title='Aceptar más de una conexión con Winsock'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-6432255639465335285</id><published>2009-03-10T12:07:00.007+01:00</published><updated>2009-03-11T13:12:11.356+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>VB.Net - Windows Mobile - Leer coordenadas GPS</title><content type='html'>Buenas, os voy a poner los pasos para leer las coordenadas del GPS.&lt;br /&gt;&lt;br /&gt;Las coordenadas se obtienen mediante el puerto COM, que tenga configurado el PDA para acceder al GPS. En mi caso es el COM4, eso lo mirais en la configuración del PDA. (Si no lo encontrais , id probando :D )&lt;br /&gt;&lt;br /&gt;Bueno, al lio!&lt;br /&gt;&lt;br /&gt;En el form añadir dos labels, txtLong y txtLat. Un botón llamado btnEmp. Además añadir un control SerialPort y un Timer.&lt;br /&gt;&lt;br /&gt;Ahora pasamos a codificar.&lt;br /&gt;&lt;br /&gt;Primero añadimos las librerias:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Imports &lt;/span&gt;System&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Imports &lt;/span&gt;System.Collections.Generic&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Imports &lt;/span&gt;System.ComponentModel&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Imports &lt;/span&gt;System.Drawing&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Imports &lt;/span&gt;System.Text&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Imports &lt;/span&gt;System.Windows.Forms&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Imports &lt;/span&gt;System.IO.Ports&lt;/blockquote&gt;&lt;br /&gt;Creamos las variables:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#Region&lt;/span&gt; "Variables"&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Public &lt;/span&gt;Latitud &lt;span style="color: rgb(0, 0, 153);"&gt;As String&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Public &lt;/span&gt;Longitud&lt;span style="color: rgb(0, 0, 153);"&gt; As String&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;End &lt;/span&gt;Region&lt;/blockquote&gt;Ahora vamos a crear el constructor.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#Region &lt;/span&gt;"Constructor"&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Public Sub New&lt;/span&gt;()&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt; ' Esto es necesario&lt;/span&gt;&lt;br /&gt;    InitializeComponent()&lt;br /&gt;   &lt;span style="color: rgb(0, 102, 0);"&gt; ' Aqui intentamos abri el puerto&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;Try&lt;/span&gt;&lt;br /&gt;        SerialPort1.PortName = "COM4"&lt;br /&gt;        SerialPort1.Open()&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;Catch&lt;/span&gt; ex &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;Exception&lt;br /&gt;        MessageBox.Show(ex.Message)&lt;br /&gt;        Timer1.Enabled = False&lt;br /&gt;        btnEmp.Text = "Empezar"&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;Return&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;End Try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;   End Sub&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#End Regio&lt;/span&gt;n&lt;/blockquote&gt;Creamos el código del botón, se limitara a apagar o encender el Timer:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;    &lt;span style="color: rgb(0, 0, 102);"&gt;Private Sub &lt;/span&gt;btnEmp_Click(&lt;span style="color: rgb(0, 0, 102);"&gt;ByVal &lt;/span&gt;sender As System.Object, &lt;span style="color: rgb(0, 0, 102);"&gt;ByVal &lt;/span&gt;e &lt;span style="color: rgb(0, 0, 153);"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color: rgb(0, 0, 102);"&gt;Handles &lt;/span&gt;btnEmp.Click&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;         'Comprobamos el estado del timer y lo invertimos.&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 102);"&gt;If &lt;/span&gt;Timer1.Enabled = True &lt;span style="color: rgb(0, 0, 102);"&gt;Then&lt;/span&gt;&lt;br /&gt;        Timer1.Enabled = False&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 102);"&gt;Else&lt;/span&gt;&lt;br /&gt;        Timer1.Enabled = True&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 102);"&gt;End If&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 102);"&gt;If &lt;/span&gt;btnEmp.Text = "Empezar" &lt;span style="color: rgb(0, 0, 102);"&gt;Then&lt;/span&gt;&lt;br /&gt;        btnEmp.Text = "Parar"&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 102);"&gt;Else&lt;/span&gt;&lt;br /&gt;        btnEmp.Text = "Empezar"&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 102);"&gt;  End If&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102);"&gt; End Sub&lt;/span&gt;&lt;/blockquote&gt;Bueno ya nos queda configurar el Timer. Por el puerto Com entran muchas lineas de  datos llamadas NEMA.&lt;br /&gt;&lt;br /&gt;El código comprueba en primer luga, si el puerto serie está abierto , si lo es, lee la salida de datos en una  cadena. Cada linea se separa con el simbolo del dolar &lt;span style="font-weight: bold;"&gt;$&lt;/span&gt; . La cadena que nos interes, comienza por "&lt;span style="font-weight: bold;"&gt;GPGGA&lt;/span&gt;"; este subcadena contiene la latitud y la longitud, además de más información, separada por comas.&lt;br /&gt;&lt;br /&gt;Este es el código:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;    &lt;span style="color: rgb(0, 0, 102);"&gt;Private Sub &lt;/span&gt;timer1_Tick(&lt;span style="color: rgb(0, 0, 153);"&gt;ByVal &lt;/span&gt;sender &lt;span style="color: rgb(0, 0, 153);"&gt;As &lt;/span&gt;System.Object, &lt;span style="color: rgb(0, 0, 153);"&gt;ByVal &lt;/span&gt;e &lt;span style="color: rgb(0, 0, 153);"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color: rgb(0, 0, 153);"&gt;Handles &lt;/span&gt;Timer1.Tick&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;If &lt;/span&gt;SerialPort1.IsOpen &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;            'En esta variable, insertamos todo lo leido del Puerto.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;datos &lt;span style="color: rgb(0, 0, 153);"&gt;As String&lt;/span&gt; = SerialPort1.ReadExisting()&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;             'Aqui creamos las diferentes lineas, basandonos en el simbolo del dolar&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;strArr() &lt;span style="color: rgb(0, 0, 153);"&gt;As String&lt;/span&gt; = datos.Split("$")&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;i &lt;span style="color: rgb(0, 0, 153);"&gt;As Intege&lt;/span&gt;r = 0&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;If &lt;/span&gt;strArr.Length &gt; 1 &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 153);"&gt;Try&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: rgb(0, 0, 153);"&gt;For &lt;/span&gt;i = 0 To strArr.Length&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;                        'Ahora obtenemos los datos, separados por las comas.&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;strTemp &lt;span style="color: rgb(0, 0, 153);"&gt;As String&lt;/span&gt; = strArr(i)&lt;br /&gt;                    &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;lineArr() &lt;span style="color: rgb(0, 0, 153);"&gt;As String&lt;/span&gt; = strTemp.Split(",")&lt;br /&gt;&lt;br /&gt;                   &lt;span style="color: rgb(0, 102, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;'Si la linea es GPGGA, cojemos los bloques de cadena 2 y 4 (latidud y longitud) y pasamos los datos obtenidos a coordenadas UTM.&lt;/span&gt;&lt;br /&gt;                     If &lt;/span&gt;(lineArr(0) = "GPGGA") &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt;&lt;br /&gt;                        &lt;span style="color: rgb(0, 0, 153);"&gt;Try&lt;/span&gt;&lt;br /&gt;                            &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;dLat &lt;span style="color: rgb(0, 0, 153);"&gt;As Decimal&lt;/span&gt;&lt;br /&gt;                            &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;dLon &lt;span style="color: rgb(0, 0, 153);"&gt;As Decimal&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                            dLat = Convert.ToDecimal(lineArr(2))&lt;br /&gt;                            dLat = dLat / 100&lt;br /&gt;                            &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;lat()&lt;span style="color: rgb(0, 0, 153);"&gt; As String &lt;/span&gt;= dLat.ToString().Split(".")&lt;br /&gt;                            Latitud = lat(0).ToString() + "." + ((Convert.ToDouble(lat(1)) / 60)).ToString("#####")&lt;br /&gt;                            txtLat.Text = Latitud&lt;br /&gt;&lt;br /&gt;                            dLon = Convert.ToDecimal(lineArr(4))&lt;br /&gt;                            dLon = dLon / 100&lt;br /&gt;                            Dim lon() As String = dLon.ToString().Split(".")&lt;br /&gt;                            Longitud = lon(0).ToString() + "." + ((Convert.ToDouble(lon(1)) / 60)).ToString("#####")&lt;br /&gt;                            txtLong.Text = Longitud&lt;br /&gt;&lt;br /&gt;                        &lt;span style="color: rgb(0, 0, 153);"&gt;Catch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 0);"&gt;                                ' Si no podemos leer el GPS&lt;/span&gt;&lt;br /&gt;                            'txtLat.Text = "No puedo leer GPS "&lt;br /&gt;                            'txtLong.Text = "No puedo leer GPS"                           &lt;br /&gt;                        &lt;span style="color: rgb(0, 0, 153);"&gt;End Try&lt;/span&gt;&lt;br /&gt;                  &lt;span style="color: rgb(0, 0, 153);"&gt;  End If&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: rgb(0, 0, 153);"&gt;Next&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 153);"&gt;Catch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 0);"&gt;                &lt;span style="color: rgb(0, 102, 0);"&gt;    'No hacemos nada&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: rgb(0, 0, 153);"&gt;End Try&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 153);"&gt;End If&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;Else&lt;/span&gt;&lt;br /&gt;        txtLat.Text = "Puerto COM Cerrado"&lt;br /&gt;        txtLong.Text = "Puerto COM Cerrado"&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 153);"&gt;End If&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; End Sub&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ya podeís leer las coordenadas de vuestro GPS!.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-6432255639465335285?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/6432255639465335285/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/vbnet-windows-mobile-leer-coordenadas.html#comment-form' title='37 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/6432255639465335285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/6432255639465335285'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/vbnet-windows-mobile-leer-coordenadas.html' title='VB.Net - Windows Mobile - Leer coordenadas GPS'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-6697189719438416181</id><published>2009-03-10T11:25:00.003+01:00</published><updated>2009-03-10T12:01:35.038+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Windows Mobile - VB.Net / C++ | Crear apliación de SQL Server</title><content type='html'>&lt;span class="postbody"&gt;&lt;span style="color:orange;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Sacado del Msdn&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;1-Crear una aplicación de SQL Server para dispositivos inteligente&lt;/span&gt;s &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En esta sección, aprenderá a crear un proyecto para dispositivos inteligentes en Microsoft Visual Studio 2005, agregar funcionalidad de Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile) al proyecto y, después, crear una base de datos de SQL Server Mobile usando el espacio de nombres System.Data.SqlServerCe. En la .NET Framework Reference Documentation hay temas de referencia para el espacio de nombres System.Data.SqlServerCe.&lt;br /&gt;Crear un proyecto con dispositivos inteligentesCrear un proyecto con dispositivos inteligentes&lt;br /&gt;&lt;br /&gt;Para crear una aplicación para dispositivos inteligentes, primero debe crear el proyecto en Visual Studio 2005.&lt;br /&gt;Para crear un proyecto para dispositivos inteligentes&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.&lt;/span&gt; En Visual Studio 2005, en el menú Archivo, seleccione Nuevo y, a continuación, seleccione Proyecto.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.&lt;/span&gt; En la lista Tipos de proyecto del cuadro de diálogo Nuevo proyecto, expanda el lenguaje de programación que desee usar y, a continuación, seleccione Dispositivo inteligente.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.&lt;/span&gt; En la lista Plantillas, seleccione el tipo de proyecto que desee crear. Por ejemplo, si va a programar una aplicación para Pocket PC 2003, seleccione Aplicación para Pocket PC 2003.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  4. &lt;/span&gt;Escriba un nombre y ubicación para el proyecto y, a continuación, haga clic en Aceptar.&lt;br /&gt;&lt;br /&gt;Visual Studio crea un nuevo proyecto y muestra el formulario principal (Form1). La pantalla será parecida al sistema operativo que elija.&lt;br /&gt;&lt;br /&gt;Agregar SQLServer Mobile al proyectoAgregar SQLServer Mobile al proyecto&lt;br /&gt;&lt;br /&gt;El siguiente paso para crear una aplicación compatible con SQL Server Mobile consiste en agregar una referencia al ensamblado de SQL Server Mobile.&lt;br /&gt;Para agregar una referencia a SQL Server Mobile&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.&lt;/span&gt; En Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en Referencias y seleccione Agregar referencia.&lt;br /&gt;   Nota: Si la carpeta Referencias no aparece en el Explorador de soluciones, haga clic en Mostrar todos los archivos en la parte superior del Explorador de soluciones.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.&lt;/span&gt; En la lista de ensamblados de .NET, seleccione System.Data.SqlServerCe y, a continuación, haga clic en Aceptar. Si System.Data.SqlServerCe no aparece, siga estos pasos:&lt;br /&gt;      &lt;span style="font-weight: bold;"&gt;2.1.&lt;/span&gt; Haga clic en Examinar.&lt;br /&gt;      &lt;span style="font-weight: bold;"&gt;2.2.&lt;/span&gt; Busque el siguiente directorio:&lt;br /&gt;         C:\Archivos de programa\Microsoft Visual Studio 8\Common7\IDE&lt;br /&gt;      &lt;span style="font-weight: bold;"&gt;2.3.&lt;/span&gt; Seleccione System.Data.SqlServerCe.dll y, a continuación, haga clic en Aceptar.&lt;br /&gt;&lt;br /&gt;La lista de referencias del Explorador de soluciones incluye ahora System.Data.SqlServerCe y su proyecto puede utilizar este ensamblado.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. &lt;/span&gt;En Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en Form1.cs o Form1.vb y seleccione Ver código.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;4. &lt;/span&gt;En la parte superior del código para el formulario, agregue una directiva para utilizar el espacio de nombres System.Data.SqlServerCe:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;" class="postbody"&gt;C#&lt;/span&gt;&lt;br /&gt;&lt;span class="postbody"&gt;            &lt;blockquote&gt;using System.Data.SqlServerCe;&lt;/blockquote&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;" class="postbody"&gt;Visual Basic&lt;/span&gt;&lt;br /&gt;&lt;span class="postbody"&gt;&lt;blockquote&gt;Imports System.Data.SqlServerCe&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Usar los objetos de SQLServer MobileUsar los objetos de SQLServer Mobile&lt;br /&gt;&lt;br /&gt;Después de agregar el espacio de nombres System.Data.SqlServerCe, puede empezar a usar código en él mediante los objetos de SQL Server Mobile. En el siguiente ejemplo de código se muestra cómo usar el objeto Engine para crear un archivo de base de datos de SQL Server Mobile.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C#&lt;/span&gt;&lt;blockquote&gt;using System.Xml;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.SqlServerCe;&lt;br /&gt;using System.Data.Common;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using System.IO;&lt;br /&gt;&lt;br /&gt;public class NETCF_SqlCeEngine&lt;br /&gt;{&lt;br /&gt; public void CreateDB()&lt;br /&gt; {&lt;br /&gt;     File.Delete("Test.sdf");&lt;br /&gt;     string connString = "Data Source='Test.sdf'; LCID=1033;   Password=\"s$;2'!dS64\"; Encrypt = TRUE;";&lt;br /&gt;     SqlCeEngine engine = new SqlCeEngine(connString);&lt;br /&gt;     engine.CreateDatabase();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Visual Basic&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Imports System&lt;br /&gt;Imports System.Xml&lt;br /&gt;Imports System.Data&lt;br /&gt;Imports System.Data.SqlServerCe&lt;br /&gt;Imports System.Data.Common&lt;br /&gt;Imports System.Windows.Forms&lt;br /&gt;Imports System.IO&lt;br /&gt;&lt;br /&gt;Public Class NETCF_SqlCeEngine&lt;br /&gt;&lt;br /&gt; Public Sub CreateDB()&lt;br /&gt;     File.Delete("Test.sdf")&lt;br /&gt;     Dim connString As String = "Data Source='Test.sdf'; LCID=1033; Password=""s$;2'!dS64""; Encrypt = TRUE;"&lt;br /&gt;     Dim engine As New SqlCeEngine(connString)&lt;br /&gt;     engine.CreateDatabase()&lt;br /&gt; End Sub&lt;br /&gt;End Class&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="color:orange;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;2-Un ejemplo sacado del MSDN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/es-es/library/ms174006.aspx" target="_blank"&gt;http://msdn2.microsoft.com/es-es/library/ms174006.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;3-Usar el método CreateDatabase &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El método CreateDatabase permite crear una nueva base de datos de SQL Server 2005 Mobile Edition (SQL Server Mobile) en el entorno de desarrollo Microsoft Visual Studio .NET.&lt;br /&gt;EjemplosEjemplos&lt;br /&gt;&lt;br /&gt;El código siguiente muestra cómo crear un nuevo objeto SqlCeEngine y luego llamar el método CreateDatabase para crear una nueva base de datos de SQL Server Mobile. En este ejemplo, se utiliza un objeto System.IO.File para comprobar si el archivo de base de datos existe. Si existe, se elimina la base de datos. A continuación, se crea una nueva base de datos con el método CreateDatabase.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C#&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;if (File.Exists("Test.sdf"))&lt;br /&gt;File.Delete("Test.sdf");&lt;br /&gt;&lt;br /&gt;string connStr = "Data Source = Test.sdf; Password = &lt;password&gt;;";&lt;br /&gt;&lt;br /&gt;SqlCeEngine engine = new SqlCeEngine(connStr);&lt;br /&gt;engine.CreateDatabase();&lt;br /&gt;engine.Dispose();&lt;br /&gt;&lt;/password&gt;&lt;/blockquote&gt;&lt;password&gt;&lt;span style="font-weight: bold;"&gt;Visual Basic&lt;/span&gt;&lt;br /&gt;&lt;/password&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="postbody"&gt;If File.Exists("Test.sdf") Then&lt;br /&gt;File.Delete("Test.sdf")&lt;br /&gt;End If&lt;br /&gt;Dim connStr As String = "Data Source = Test.sdf; Password = &lt;password&gt;;"&lt;br /&gt;&lt;br /&gt;Dim engine As New SqlCeEngine(connStr)&lt;br /&gt;engine.CreateDatabase()&lt;br /&gt;engine.Dispose()&lt;/password&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;password&gt;&lt;/password&gt;&lt;span class="postbody"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-6697189719438416181?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/6697189719438416181/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/windows-mobile-vbnet-c-crear-apliacion.html#comment-form' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/6697189719438416181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/6697189719438416181'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/windows-mobile-vbnet-c-crear-apliacion.html' title='Windows Mobile - VB.Net / C++ | Crear apliación de SQL Server'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-6435653809204861694</id><published>2009-03-06T12:11:00.007+01:00</published><updated>2009-03-10T13:00:54.298+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><title type='text'>Visual Basic - Extraer el codigo fuente de una Web</title><content type='html'>Para extraer el codigo fuente de una Web, usaremos el control &lt;span style="font-weight: bold;"&gt;Inet&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Para usar el control inet, añadimos el control &lt;span style="font-weight: bold;"&gt;Microsoft Internet Transfer Control&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Y asi extraeremos el codigo:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;     &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;Datos&lt;span style="color: rgb(0, 0, 153);"&gt; As String     &lt;/span&gt;&lt;br /&gt;      &lt;br /&gt;     Datos = Inet1.OpenURL("http://programaciontotal.blogspot.com")&lt;/blockquote&gt;Ahora la variable datos, contendrá el codigo fuente de la página.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-6435653809204861694?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/6435653809204861694/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/visual-basic-extraer-el-codigo-fuente.html#comment-form' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/6435653809204861694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/6435653809204861694'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/visual-basic-extraer-el-codigo-fuente.html' title='Visual Basic - Extraer el codigo fuente de una Web'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-909444052631166724</id><published>2009-03-05T10:48:00.003+01:00</published><updated>2009-03-05T10:51:48.432+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry'/><title type='text'>BlackBerry - Pasar al Connector los datos del APN</title><content type='html'>Para usar los datos de la Apn en el momento de la conexión, sin tener que configurarlo en la Blackberry, usa este codigo en la conexión.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;conn = (HttpConnection)Connector.open(Url+";deviceside=true;apn=TUAPN;tunnelauthusername=USUARIO;tunnelauthpassword=CONTRASEÑA");&lt;br /&gt;&lt;/blockquote&gt;Esto es un ejemplo de como seria con Vodafone:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;conn = (HttpConnection)Connector.open(Url+";deviceside=true;apn=ac.vodafone.es;tunnelauthusername=vodafone;tunnelauthpassword=vodafone");&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-909444052631166724?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/909444052631166724/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/blackberry-pasar-al-connector-los-datos.html#comment-form' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/909444052631166724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/909444052631166724'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/blackberry-pasar-al-connector-los-datos.html' title='BlackBerry - Pasar al Connector los datos del APN'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-6564628927717038025</id><published>2009-03-02T18:11:00.005+01:00</published><updated>2009-03-10T12:56:48.416+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><title type='text'>Visual Basic - Pasar un Recordset a Excel</title><content type='html'>Esto es una función, que le pasais, un Recorset Ado, un Spreadsheet (ahora lo defino), una Barra de progreso y un Label (para mostrar las cantidades) y pasara todo el recorset a un Excel&lt;br /&gt;&lt;br /&gt;Spreadsheet es un control, es un libro Excel en si. Para utilizarlo, en componentes, añadis &lt;span style="font-weight: bold;"&gt;Microsoft Office Web Components&lt;/span&gt;. Os aparecera una serie de controles de Office, pues agregais al Formulario el de Excel.&lt;br /&gt;&lt;br /&gt;¡Pues no necesitais mas! Aqui esta la función&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Function &lt;/span&gt;RellenaExcel(Rs &lt;span style="color: rgb(0, 0, 153);"&gt;As ADODB.Recordse&lt;/span&gt;t, &lt;span style="color: rgb(0, 0, 153);"&gt;ByRef &lt;/span&gt;Excel As Spreadsheet, &lt;span style="color: rgb(0, 0, 153);"&gt;ByRef &lt;/span&gt; Barra &lt;span style="color: rgb(0, 0, 153);"&gt;As ProgressBar&lt;/span&gt;, MostrarCantidades &lt;span style="color: rgb(0, 0, 153);"&gt;As Labe&lt;/span&gt;l) &lt;span style="color: rgb(0, 0, 153);"&gt;As Boolean&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;Max &lt;span style="color: rgb(0, 0, 153);"&gt;As Integer&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Dim &lt;/span&gt;Fila &lt;span style="color: rgb(0, 0, 153);"&gt;As Integer&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; Barra.Min = 0&lt;br /&gt; Barra.Value = 0&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;If &lt;/span&gt;Rs.RecordCount &lt;&gt; 0 &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt;&lt;br /&gt;        Barra.Max = Rs.RecordCount&lt;br /&gt;        MostrarCantidades.Caption = "0 / " + Str(Barra.Max)&lt;br /&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;Else&lt;/span&gt;&lt;br /&gt;        MsgBox "El resultado de la consulta no contiene datos.", vbExclamation&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 153);"&gt;     Exit Function&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;End If&lt;/span&gt;&lt;br /&gt; Max = Rs.Fields.Count - 1&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;For &lt;/span&gt;i = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;To &lt;/span&gt;Max&lt;br /&gt;     Excel.ActiveSheet.Cells(1, i + 1).Value = Rs(i).Name&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Next &lt;/span&gt;i&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Fila = 2&lt;br /&gt; Barra.Value = 1&lt;br /&gt; MostrarCantidades.Caption = "1 / " + Str(Barra.Max)&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;While Not&lt;/span&gt; Rs.EOF&lt;br /&gt;  &lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;For &lt;/span&gt;i = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;To &lt;/span&gt;Max&lt;br /&gt; Excel.ActiveSheet.Cells(Fila, i + 1).Value = Rs(i).Value&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Next &lt;/span&gt;i&lt;br /&gt; &lt;br /&gt; Barra.Value = Fila - 1&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;DoEvents&lt;/span&gt;&lt;br /&gt; MostrarCantidades.Caption = Str(Barra.Value) + " / " + Str(Barra.Max)&lt;br /&gt; Fila = Fila + 1&lt;br /&gt; Rs.MoveNext&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Wend&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;With &lt;/span&gt;Excel.ActiveSheet.Range(Excel.Cells(1, 1), Excel.ActiveSheet.Cells(1, Max + 1))&lt;br /&gt;     .Font.Bold = True&lt;br /&gt;     .Font.Size = 10&lt;br /&gt;     .Font.Name = "Arial"&lt;br /&gt;     .Font.Color = vbWhite&lt;br /&gt;     '.Borders.Color = vbGreen&lt;br /&gt;     .Interior.Color = RGB(0, 0, 128)&lt;br /&gt;     .Borders.Color = RGB(0, 0, 0)&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;End With&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;With &lt;/span&gt;Excel.ActiveSheet.Range(Excel.Cells(2, 1), Excel.ActiveSheet.Cells(Fila - 1, Max + 1)).Font&lt;br /&gt;     .Size = 9&lt;br /&gt;     '.Bold = True&lt;br /&gt;     .Name = "Arial"&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;End With&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;rango = Excel.Worksheets("Hoja1").Range("A1:BV" + Trim(Fila + 1))&lt;br /&gt; rango.Columns.AutoFit&lt;br /&gt;&lt;br /&gt; RellenaExcel = True&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;End Function&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-6564628927717038025?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/6564628927717038025/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/visual-basic-pasar-un-recordset-excel.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/6564628927717038025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/6564628927717038025'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/visual-basic-pasar-un-recordset-excel.html' title='Visual Basic - Pasar un Recordset a Excel'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-4250206391621450404</id><published>2009-03-02T16:55:00.005+01:00</published><updated>2009-03-10T12:58:12.145+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><title type='text'>Visual Basic - Conectar con Base de Datos Acces</title><content type='html'>Lo primero que hay que hacer es añadir la referencia &lt;span style="font-weight: bold;"&gt;Microsoft ADO.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Ahora, conectamos con las base de datos.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;BaseDatos = Workspaces(0).OpenDatabase("RutadelaBD\bd.mdb", &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt;)&lt;/blockquote&gt;&lt;br /&gt;Cuando conectamos, abrimos un recorset con la consulta que queremos realizar.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SQL = "SELECT * FROM Clientes"&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;Rs = BaseDatos.OpenRecordset(SQL, dbOpenSnapshot)&lt;/blockquote&gt;&lt;br /&gt;Luego imprimimos los resultados&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Msgbox "Nombre: "+ Rs!Nombre&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Si la consulta devuelve mas de una fila, para pasar de un registro a otro utilizamos, Rs.MoveNext&lt;br /&gt;&lt;br /&gt;Un ejemplo sería:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;while &lt;/span&gt;not Rs.EOF&lt;br /&gt;         combo1.addItem Rs!Nombre&lt;br /&gt;    Rs.MoveNext&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;end while&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;El while not Rs.EOF significa, Mientras no sea el final del RecordSet&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-4250206391621450404?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/4250206391621450404/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/visual-basic-conectar-con-base-de-datos.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/4250206391621450404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/4250206391621450404'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/visual-basic-conectar-con-base-de-datos.html' title='Visual Basic - Conectar con Base de Datos Acces'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-3030361249518144092</id><published>2009-03-02T11:51:00.008+01:00</published><updated>2009-03-10T12:59:13.862+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry'/><title type='text'>BlackBerry - Pin, número de télefono e IMEI.</title><content type='html'>Para capturar el Pin y el teléfono (el teléfono que captura es el que esta configurado en la BlackBerry,(opciones avanzadas -&gt; SIM)) usamos las clases &lt;a href="http://www.blackberry.com/developers/docs/3.6api/net/rim/device/api/system/DeviceInfo.html"&gt;DeviceInfo &lt;/a&gt;y &lt;a href="http://www.blackberry.com/developers/docs/4.5.0api/net/rim/blackberry/api/phone/Phone.html"&gt;Phone&lt;/a&gt;&lt;br /&gt;       &lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;String &lt;/span&gt;Pin = (Integer.toString(net.rim.device.api.system.DeviceInfo&lt;br /&gt;.getDeviceId(),16)).toUpperCase();&lt;br /&gt;&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 153);"&gt;String &lt;/span&gt;Tel = "" + net.rim.blackberry.api.phone.Phone&lt;br /&gt;.getDevicePhoneNumber(fals&lt;/span&gt;e)&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;String &lt;/span&gt;imei = &lt;span style="color: rgb(0, 0, 153);"&gt;new &lt;/span&gt;String(net.rim.device.api.system.GPRSInfo.imeiToString&lt;br /&gt;(net.rim.device.api.system.GPRSInfo.getIMEI()));;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Como veis, para poder capturar el Pin correctamente, hemos tenido que pasar la información que recibimos a Hexadecimal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-3030361249518144092?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/3030361249518144092/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/para-capturar-el-pin-y-el-telefono-el.html#comment-form' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/3030361249518144092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/3030361249518144092'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/para-capturar-el-pin-y-el-telefono-el.html' title='BlackBerry - Pin, número de télefono e IMEI.'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-1083603037901350249</id><published>2009-03-02T10:33:00.005+01:00</published><updated>2009-07-02T13:34:45.538+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry'/><title type='text'>BlackBerry - Crear icono para una Web</title><content type='html'>Aqui te pongo el código para crear un icono de acceso directo a una Web.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;import net.rim.device.api.ui.UiApplication;&lt;br /&gt;import net.rim.blackberry.api.browser.*;&lt;br /&gt;&lt;br /&gt;public class IconoWeb extends UiApplication {&lt;br /&gt;&lt;br /&gt; public IconoWeb() {&lt;br /&gt;     BrowserSession visita=Browser.getDefaultSession();&lt;br /&gt;     visita.displayPage("http://programaciontotal.blogspot.com");&lt;br /&gt;visita.showBrowser();&lt;br /&gt;     System.exit(0);&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt; public static void main(String[] args) {&lt;br /&gt;     IconoWeb iw = new IconoWeb();&lt;br /&gt;     iw.enterEventDispatcher();&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;Por último, en las propiedades del proyecto, le asignais un icono, y listo!&lt;br /&gt;&lt;br /&gt;* Esta aplicación debe ser firmada con las Secure Apis de Rim&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-1083603037901350249?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/1083603037901350249/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/blackberry-crear-icono-para-una-web.html#comment-form' title='13 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/1083603037901350249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/1083603037901350249'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/03/blackberry-crear-icono-para-una-web.html' title='BlackBerry - Crear icono para una Web'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-3334485927016664567</id><published>2009-02-27T14:37:00.005+01:00</published><updated>2009-03-05T11:29:52.065+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sql Server'/><title type='text'>SQL - Reducir el fichero de Log</title><content type='html'>Reducir el fichero de log es importante, para ganar espacio de disco duro y quita las transaciones que puedan estar causando algun interbloqueo.&lt;br /&gt;&lt;pre&gt;&lt;/pre&gt;&lt;blockquote&gt;&lt;pre&gt;BACKUP LOG MiBase WITH TRUNCATE_ONLY&lt;br /&gt;DBCC SHRINKFILE (MiBase_Log, 100)&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;Con este codigo, reduciras el fichero de log a  100 megas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-3334485927016664567?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/3334485927016664567/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/02/sql-reducir-el-fichero-de-log.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/3334485927016664567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/3334485927016664567'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/02/sql-reducir-el-fichero-de-log.html' title='SQL - Reducir el fichero de Log'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-3019922551956042486</id><published>2009-02-27T13:05:00.006+01:00</published><updated>2009-03-02T11:40:18.847+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BlackBerry'/><title type='text'>BlackBerry - Escribir en el Registro de Eventos (ALT + LGLG)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_hFacphaKc8Y/SafbwsFeexI/AAAAAAAAABQ/K-41Q1I7k1Q/s1600-h/Convertir.JPG"&gt;&lt;/a&gt;&lt;br /&gt;Para poder escribir en el Registro de eventos, hay que utilizar la clase &lt;a href="http://www.blackberry.com/developers/docs/3.6api/net/rim/device/api/system/EventLogger.html"&gt;EventLogger&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Priemero importamos la clase.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;import net.rim.device.api.system.EventLogger;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Luego hay que registrar la aplicación usando el evento register.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;EventLogger.register(0x838d33f5c17fdb7dL,"MiApp", EventLogger.VIEWER_STRING)&lt;/blockquote&gt;&lt;br /&gt;Ese numero tan raro es el nombre del programa convertido a Long. (En este caso MiApp)&lt;br /&gt;&lt;br /&gt;¿Como lo sacas?, Muy facil, escribe el nombre del programa en cualquier parte, lo seleccionas y eliges la opcion "Convert String to a Long"&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_hFacphaKc8Y/SafbwsFeexI/AAAAAAAAABQ/K-41Q1I7k1Q/s1600-h/Convertir.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 317px; height: 400px;" src="http://2.bp.blogspot.com/_hFacphaKc8Y/SafbwsFeexI/AAAAAAAAABQ/K-41Q1I7k1Q/s400/Convertir.JPG" alt="" id="BLOGGER_PHOTO_ID_5307452315393751826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ya solo nos queda usar el evento logEvent para escribir cuando queramos.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;EventLogger.logEvent(0x28287bf38ffcab2aL, (("Mensaje para el Registro de eventos".getBytes(),EventLogger.INFORMATION );&lt;/blockquote&gt;Como veis la Cadena hay qye pasarla en bytes.&lt;br /&gt;&lt;br /&gt;Utilizando esto, sabreis que hace en cada momento vuestro programa en la BlackBerry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-3019922551956042486?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/3019922551956042486/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/02/j2me-blackberry-escribir-en-el-registro.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/3019922551956042486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/3019922551956042486'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/02/j2me-blackberry-escribir-en-el-registro.html' title='BlackBerry - Escribir en el Registro de Eventos (ALT + LGLG)'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hFacphaKc8Y/SafbwsFeexI/AAAAAAAAABQ/K-41Q1I7k1Q/s72-c/Convertir.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-613910526169410652.post-8298039028359361865</id><published>2009-02-27T12:54:00.006+01:00</published><updated>2009-03-02T16:41:38.114+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><title type='text'>Conexión base de datos SQL Server en Visual Basic 6. ADO</title><content type='html'>&lt;span style="font-size:100%;"&gt;Este codigo es un ejemplo de una conexión ADO con una base de datos SQL Server.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;blockquote&gt;Dim rs As New ADODB.Recordset&lt;br /&gt;Dim cn As ADODB.Connection&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;'Abrimos la base de datos&lt;br /&gt;Set cn = New ADODB.Connection&lt;br /&gt;sCon = "driver={SQL Server};"&lt;br /&gt;sCon = sCon + "Server=TUSERVIDOR;uid=USUARIO;pwd=PASS;"&lt;br /&gt;sCon = sCon + "database=TUBASEDEDATOS"&lt;br /&gt;cn.ConnectionString = sCon&lt;br /&gt;cn.ConnectionTimeout = 30&lt;br /&gt;cn.Open&lt;br /&gt;&lt;br /&gt;'Aqui usamos un Recorset para extraer los datos de la consulta&lt;br /&gt;&lt;br /&gt;QuerySQL = "SELECT * FROM TABLA"&lt;br /&gt;rs.CursorLocation = adUseClient&lt;br /&gt;rs.Open QuerySQL, cn, adOpenKeyset, adLockOptimistic&lt;/blockquote&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/613910526169410652-8298039028359361865?l=programaciontotal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programaciontotal.blogspot.com/feeds/8298039028359361865/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://programaciontotal.blogspot.com/2009/02/crear-conexion-ado-visual-basic-6.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/8298039028359361865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/613910526169410652/posts/default/8298039028359361865'/><link rel='alternate' type='text/html' href='http://programaciontotal.blogspot.com/2009/02/crear-conexion-ado-visual-basic-6.html' title='Conexión base de datos SQL Server en Visual Basic 6. ADO'/><author><name>PaKito</name><uri>http://www.blogger.com/profile/09026629315712058165</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_hFacphaKc8Y/S-fWxms5VPI/AAAAAAAAG4k/ypEwVJUrWms/S220/2.jpg'/></author><thr:total>0</thr:total></entry></feed>
