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

<channel>
	<title>Wladimir A. Jimenez B. &#187; Desarrollo</title>
	<atom:link href="http://www.kasbeel.cl/kas2008/category/desarrollo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kasbeel.cl/kas2008</link>
	<description>Blog personal y tips de informatica.</description>
	<lastBuildDate>Mon, 08 Mar 2010 17:42:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Formulario Transparentes en C# y VB .NET</title>
		<link>http://www.kasbeel.cl/kas2008/2008/04/17/formulario-transparentes-o-recortados-en-c-y-vb-net/</link>
		<comments>http://www.kasbeel.cl/kas2008/2008/04/17/formulario-transparentes-o-recortados-en-c-y-vb-net/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 06:19:02 +0000</pubDate>
		<dc:creator>Wladimir A. Jimenez B.</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[VB]]></category>
		<category><![CDATA[Form Cut]]></category>
		<category><![CDATA[Form Recortado]]></category>
		<category><![CDATA[Formulario]]></category>
		<category><![CDATA[Formulario Transparente]]></category>
		<category><![CDATA[Transparent Back]]></category>
		<category><![CDATA[Vb.net CSharp]]></category>

		<guid isPermaLink="false">http://www.kasbeel.cl/kas2008/?p=27</guid>
		<description><![CDATA[En realidad no se bien como se llaman este tipo de formularios pero creo que se entiende.
Esta orientado a los dos lenguajes por que se utiliza principalmente el Framework que es el mismo para los 2.
Los códigos adjuntos están escritos en VS.Net 2008.
Primero el resultado final

VB.Net &#8211; - &#8211; CSharp.Net
 &#8211;


Lo que hacemos es simple, <a href='http://www.kasbeel.cl/kas2008/2008/04/17/formulario-transparentes-o-recortados-en-c-y-vb-net/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>En realidad no se bien como se llaman este tipo de formularios pero creo que se entiende.</p>
<p>Esta orientado a los dos lenguajes por que se utiliza principalmente el Framework que es el mismo para los 2.</p>
<p>Los códigos adjuntos están escritos en VS.Net 2008.</p>
<p>Primero el resultado final<br />
<center><br />
VB.Net &#8211; - &#8211; CSharp.Net<br />
<a href="http://www.kasbeel.cl/kas2008/screenshots/transvbnet.png" rel="sexylightbox[transparent]" title="Formulario Transparente Vb.Net"><img src="http://www.kasbeel.cl/kas2008/screenshots/thumb/transvbnet.thumbs.png" alt="" /></a> &#8211; <a href="http://www.kasbeel.cl/kas2008/screenshots/transcsharpnet.png" rel="sexylightbox[transparent]" title="Formulario Transparente VSharp.Net"><img src="http://www.kasbeel.cl/kas2008/screenshots/thumb/transcsharpnet.thumbs.png" alt="" /></a><br />
</center><br />
<span id="more-27"></span><br />
Lo que hacemos es simple, tomamos una imagen en este caso PNG con fondo transparente como la siguiente.<br />
<a href="http://www.kasbeel.cl/kas2008/screenshots/fondo.png" rel="sexylightbox[transparent]" title="Fondo Transparente"><img src="http://www.kasbeel.cl/kas2008/screenshots/thumb/fondo.thumbs.png" alt="" /></a> </p>
<p>Luego vamos a las propiedades del formulario, seleccionamos un color de fondo X en este caso es un derivado de los Azules porque la parte circular es Azul y es la que mas se pixelea y si se usara un blanco se podría ver mas pixelado.</p>
<p><img src="http://www.kasbeel.cl/kas2008/screenshots/thumb/backcolpropertiesvbnet.png" alt="BackColor" /></p>
<p>luego procedemos a cambiar el TransparencyKey y lo ponemos en el mismo color que le pusimos al fondo.</p>
<p><img src="http://www.kasbeel.cl/kas2008/screenshots/thumb/transkeypropertiesvbnet.png" alt="TransparencyKey" /></p>
<p>Ahora eliminamos el borde normal de las ventanas windows, cambiando el FormBorderStyle por None.</p>
<p>Bueno creo que lo mas importante se me había olvidado debemos cambiar el background image por nuestra imagen con fondo transparente, y listo.</p>
<p>Ahora en los códigos agregue cosas como que se mueva la ventana cuando hacemos un click en cualquier parte de ella, y para esto use una API aun que se puede con codigo con la API me pareció mas rápido.</p>
<p>en VB.Net:</p>
<p>[vbnet]<br />
    Private Const HTCAPTION = 2<br />
    Private Const WM_NCLBUTTONDOWN = &#038;HA1<br />
    <System.Runtime.InteropServices.DllImport("user32.dll")> _<br />
    Private Shared Function SendMessage(ByVal hWnd As System.IntPtr, ByVal wMsg As Integer, _<br />
                                        ByVal wParam As Integer, ByVal lParam As Integer) _<br />
                                        As Integer<br />
    End Function<br />
    <System.Runtime.InteropServices.DllImport("user32.dll")> _<br />
    Private Shared Function ReleaseCapture() As Integer<br />
    End Function<br />
[/vbnet]</p>
<p>en CSharp lo use de la siguiente manera:</p>
<p>[csharp]<br />
        private static int HTCAPTION = 2;<br />
        private static int WM_NCLBUTTONDOWN = 0xA1;<br />
        [System.Runtime.InteropServices.DllImport("user32.dll")]<br />
        private extern static int SendMessage(System.IntPtr hWnd, int wMsg,<br />
                                                 int wParam, int lParam);<br />
        [System.Runtime.InteropServices.DllImport("user32.dll")]<br />
        private extern static int ReleaseCapture();<br />
[/csharp]</p>
<p>Luego en el evento MouseDown del formulario</p>
<p>[vbnet]<br />
        ReleaseCapture()<br />
        SendMessage(Me.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0&#038;)<br />
[/vbnet]</p>
<p>[csharp]<br />
         ReleaseCapture();<br />
         SendMessage(this.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);<br />
[/csharp]</p>
<p>con esto le informamos al administrador de ventanas como si se hubiese presionado el mouse en el HEADER de la ventana.</p>
<p>Ademas, agregue el código para ejecutar programas en C# como VB.Net para que puedan probarlo.</p>
<p>Los códigos fuentes son los siguiente:</p>
Note: There is a file embedded within this post, please visit this post to download the file.
<p>Espero que este claro voy a postear luego como hacer algo parecido en VB6 solo que este lenguaje no tiene la propiedad TransparencyKey así que solo usaremos API Win32.</p>
<p>y Luego pondré como hacerlo en java.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kasbeel.cl/kas2008/2008/04/17/formulario-transparentes-o-recortados-en-c-y-vb-net/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Shell en C#, como en Visual Basic</title>
		<link>http://www.kasbeel.cl/kas2008/2008/04/01/shell-en-c-como-en-visual-basic/</link>
		<comments>http://www.kasbeel.cl/kas2008/2008/04/01/shell-en-c-como-en-visual-basic/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 14:57:12 +0000</pubDate>
		<dc:creator>Wladimir A. Jimenez B.</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[C# Shell]]></category>
		<category><![CDATA[Exjecutar Programa C#]]></category>
		<category><![CDATA[VB Shell]]></category>
		<category><![CDATA[Visual Basic C#]]></category>

		<guid isPermaLink="false">http://www.kasbeel.cl/kas2008/?p=24</guid>
		<description><![CDATA[Como sabemos en Visual Basic existe un funcion shell que nos permite ejecutar aplicaciones desde el codigo, esto no sucede en C#, pero no es que no se pueda.
En C# existe una clase Process que nos permite ejecutar programas.
ejemplo:

System.Diagnostics.Process process = new System.Diagnostics.Process(); //creamo un proceso
process.EnableRaisingEvents=false;
process.StartInfo.FileName="iexplore"; // aqui ponemos el programa que queremos ejecutar
process.StartInfo.Arguments="http://www.kasbeel.cl"; //parametros
process.Start(); <a href='http://www.kasbeel.cl/kas2008/2008/04/01/shell-en-c-como-en-visual-basic/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Como sabemos en Visual Basic existe un funcion shell que nos permite ejecutar aplicaciones desde el codigo, esto no sucede en C#, pero no es que no se pueda.</p>
<p>En C# existe una clase Process que nos permite ejecutar programas.</p>
<p>ejemplo:</p>
<pre class="brush:csharp">
System.Diagnostics.Process process = new System.Diagnostics.Process(); //creamo un proceso
process.EnableRaisingEvents=false;
process.StartInfo.FileName="iexplore"; // aqui ponemos el programa que queremos ejecutar
process.StartInfo.Arguments="http://www.kasbeel.cl"; //parametros
process.Start();  //ejecutamos el programa
process.WaitForExit(); // esperamos a que termine
</pre>
<p>Como podemos ver es un poco diferente pero lo podemos encapsular en una funcion shell(), y quedaria muy parecido.</p>
<p>Si le quitamos el WaitForExit nuestro codigo continuara aunque no termine el programa que ejecutamos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kasbeel.cl/kas2008/2008/04/01/shell-en-c-como-en-visual-basic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netbeans en ubuntu hardy heron</title>
		<link>http://www.kasbeel.cl/kas2008/2008/03/24/netbeans-en-ubuntu-hardy-heron/</link>
		<comments>http://www.kasbeel.cl/kas2008/2008/03/24/netbeans-en-ubuntu-hardy-heron/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 22:19:24 +0000</pubDate>
		<dc:creator>Wladimir A. Jimenez B.</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[java en ubuntu]]></category>
		<category><![CDATA[jsdk ubuntu]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[netbeans en ubuntu]]></category>
		<category><![CDATA[netbeans hardy heron]]></category>
		<category><![CDATA[netbeans jdk ubuntu]]></category>
		<category><![CDATA[problema netbeans]]></category>

		<guid isPermaLink="false">http://www.kasbeel.cl/kas2008/2008/03/24/netbeans-en-ubuntu-hardy-heron/</guid>
		<description><![CDATA[Siempre que intentaba instalar netbeans en ubuntu me encontraba con mas de un problema y en los foros muy poca informacion.
Pero eso cambio en la version 8.04 Hardy Heron (no recuerdo si es valido para la version 7.10 Gutsy Gibbon). Tan solo con apt-get instalamos tanto el sdk 6 y el netbeans sin problemas.
ahora los <a href='http://www.kasbeel.cl/kas2008/2008/03/24/netbeans-en-ubuntu-hardy-heron/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Siempre que intentaba instalar netbeans en ubuntu me encontraba con mas de un problema y en los foros muy poca informacion.</p>
<p>Pero eso cambio en la version 8.04 Hardy Heron (no recuerdo si es valido para la version 7.10 Gutsy Gibbon). Tan solo con apt-get instalamos tanto el sdk 6 y el netbeans sin problemas.</p>
<p>ahora los codigos.<br />
[code]<br />
sudo apt-get install sun-java6-jdk<br />
sudo apt-get install netbeans   (para la ultima version)<br />
sudo apt-get install netbeans5.5 (para los que quieran la antiagua)<br />
[/code]</p>
<p>Y bravo con esto se acabo el problema de que netbeans no se quiera instalar con el tema Human de Gnome y todos esos otros errores raros.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kasbeel.cl/kas2008/2008/03/24/netbeans-en-ubuntu-hardy-heron/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diferencia entre Visual Studio .Net, Express, Professional, Enterprise</title>
		<link>http://www.kasbeel.cl/kas2008/2007/12/20/diferencia-entre-visual-studio-net-express-professional-enterprise/</link>
		<comments>http://www.kasbeel.cl/kas2008/2007/12/20/diferencia-entre-visual-studio-net-express-professional-enterprise/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 18:47:30 +0000</pubDate>
		<dc:creator>Wladimir A. Jimenez B.</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Informacion]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Diferecia Ediciones Professional]]></category>
		<category><![CDATA[Enterprices]]></category>
		<category><![CDATA[Visual Studio .NET Difencias]]></category>

		<guid isPermaLink="false">http://www.kasbeel.cl/kas2008/?p=16</guid>
		<description><![CDATA[Mas de alguna vez me pregunta cual era la diferencia entre cada una de las ediciones de Visual Studio.
Por ejemplo: Que diferencia existia entre el Professional y el Enterprise.
Bueno aqui dejo la respuesta.
Este paquete de software se distribuye en diferentes conjuntos segun la necesidad de cada tipo de desarrollo o desarrollador.

Edicion Express:
    <a href='http://www.kasbeel.cl/kas2008/2007/12/20/diferencia-entre-visual-studio-net-express-professional-enterprise/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Mas de alguna vez me pregunta cual era la diferencia entre cada una de las ediciones de Visual Studio.</p>
<p>Por ejemplo: Que diferencia existia entre el Professional y el Enterprise.</p>
<p>Bueno aqui dejo la respuesta.</p>
<p>Este paquete de software se distribuye en diferentes conjuntos segun la necesidad de cada tipo de desarrollo o desarrollador.<br />
<span id="more-16"></span><br />
<strong>Edicion Express:</strong><br />
     Principalmente orientada al apredizaje, es una version reducida que compuesta por ediciones especiales de Visual Studio gratuitas o a coste reducido. Existen versiones express de C#, Visual Basic .NET, C++.NET, Web Developer y SQL Server.</p>
<p><strong>Edicion Standard:</strong><br />
     Esta edicion es principalmente para el uso de desarrolladores de aplicaciones de para Windows o Web.</p>
<p><strong>Edicion Professional:</strong><br />
     Esta edicion permite desarrollar aplicaciones profesionales en distintos ambientes Windows, Web, Mobile, Servicios Web, etc</p>
<p><strong>Edicion Team System:</strong><br />
     Esta edicion se recomienda para empresas con grupos o equipos de trabajo, se divide a si vez en varias versiones especificas para cada una de las funciones de un equipo de desarrollo: Arquitecto, desarrollador, tester, etc. El producto Team Foundation Server permite administrar y gestionar proyectos en equipos de trabajo de forma sencilla y eficiente, controlando y coordinando en todo momento los diferentes componentes del equipo de trabajo.</p>
<p>Para mas detalle se puede consulta la pagina oficial <a href="http://msdn2.microsoft.com/en-us/vstudio/products/default.aspx">Aqui</a> donde se describen cada uno de los productos microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kasbeel.cl/kas2008/2007/12/20/diferencia-entre-visual-studio-net-express-professional-enterprise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shell que espera Visual Basic</title>
		<link>http://www.kasbeel.cl/kas2008/2007/11/02/shell-que-espera-visual-basic/</link>
		<comments>http://www.kasbeel.cl/kas2008/2007/11/02/shell-que-espera-visual-basic/#comments</comments>
		<pubDate>Fri, 02 Nov 2007 22:03:52 +0000</pubDate>
		<dc:creator>Wladimir A. Jimenez B.</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[VB]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Shell con espera]]></category>
		<category><![CDATA[Shell VB]]></category>
		<category><![CDATA[Shell vb termino]]></category>
		<category><![CDATA[ShellAndWait]]></category>

		<guid isPermaLink="false">http://www.kasbeel.cl/kas2008/?p=25</guid>
		<description><![CDATA[En varias ocaciones cuando se necesita ejecuta un programa dentro de otro, puede que se requiera espera que el programa ejecutado termine para continuar con la ejecucion del programa que lo a llamado.
Uppss
que raro quedo eso pero bueno, los que necesiten esto me van ha entender.
ShellAndWait
Creamos un modulo con el siguiente contenido.
estas funciones de la <a href='http://www.kasbeel.cl/kas2008/2007/11/02/shell-que-espera-visual-basic/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>En varias ocaciones cuando se necesita ejecuta un programa dentro de otro, puede que se requiera espera que el programa ejecutado termine para continuar con la ejecucion del programa que lo a llamado.</p>
<p>Uppss</p>
<p>que raro quedo eso pero bueno, los que necesiten esto me van ha entender.</p>
<p>ShellAndWait</p>
<p>Creamos un modulo con el siguiente contenido.<br />
estas funciones de la API nos sirven para obtener el ProcessID y luego con getExitCodeProcess podemos saber si salio o esta pendiente.<br />
[vb]<br />
Option Explicit</p>
<p>Private Declare Function OpenProcess Lib &#8220;kernel32&#8243; _<br />
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _<br />
ByVal dwProcessId As Long) As Long</p>
<p>Private Declare Function GetExitCodeProcess Lib &#8220;kernel32&#8243; _<br />
(ByVal hProcess As Long, lpExitCode As Long) As Long</p>
<p>Private Const STATUS_PENDING = &#038;H103&#038;<br />
Private Const PROCESS_QUERY_INFORMATION = &#038;H400<br />
[/vb]</p>
<p>Pueden poner la funcion en el mismo modulo o en otro.<br />
aqui el codigo.</p>
<p>[vb]<br />
Public Function ShellandWait(ExeFullPath As String, _<br />
Optional TimeOutValue As Long = 0) As Boolean</p>
<p>    Dim lInst As Long<br />
    Dim lStart As Long<br />
    Dim lTimeToQuit As Long<br />
    Dim sExeName As String<br />
    Dim lProcessId As Long<br />
    Dim lExitCode As Long<br />
    Dim bPastMidnight As Boolean</p>
<p>    On Error GoTo ErrorHandler</p>
<p>    lStart = CLng(Timer)<br />
    sExeName = ExeFullPath</p>
<p>    &#8216;Deal with timeout being reset at Midnight<br />
    If TimeOutValue > 0 Then<br />
        If lStart + TimeOutValue < 86400 Then<br />
            lTimeToQuit = lStart + TimeOutValue<br />
        Else<br />
            lTimeToQuit = (lStart - 86400) + TimeOutValue<br />
            bPastMidnight = True<br />
        End If<br />
    End If</p>
<p>    lInst = Shell(sExeName, vbMinimizedNoFocus)</p>
<p>lProcessId = OpenProcess(PROCESS_QUERY_INFORMATION, False, lInst) 'Optenemos el ProcessID</p>
<p>    Do  'Aqui se genera un ciclo hasta que el proceso sea distinto de pendiente, o sea, Alla terminado.<br />
        Call GetExitCodeProcess(lProcessId, lExitCode) ' Optenemos el si hay exits code o todavia esta en ejecucion (pending)<br />
        DoEvents<br />
        If TimeOutValue And Timer > lTimeToQuit Then<br />
            If bPastMidnight Then<br />
                 If Timer < lStart Then Exit Do<br />
            Else<br />
                 Exit Do &#8216; Se sale del ciclo si se acavo el tiemo de espera<br />
            End If<br />
    End If<br />
    Loop While lExitCode = STATUS_PENDING</p>
<p>    ShellandWait = True</p>
<p>ErrorHandler:<br />
ShellandWait = False<br />
Exit Function<br />
End Function<br />
[/vb]</p>
<p>Ahora para ocupar esta funcion ponemos<br />
 ShellAndWait &#8220;import.exe &#8220;, 0<br />
en esta llamado solo espera a que termine el proceso.<br />
 ShellAndWait &#8220;import.exe &#8220;, 1000<br />
aqui espera 1000 milisegundos o el termino del proceso para salir. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kasbeel.cl/kas2008/2007/11/02/shell-que-espera-visual-basic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
