<?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:blogger='http://schemas.google.com/blogger/2008' 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-5435020797457051306</id><updated>2024-09-04T23:36:18.128-06:00</updated><category term="RSA"/><category term="Absolute URL"/><category term="Backup Data Base"/><category term="BouncyCastle"/><category term="Connection String"/><category term="Cookies C# ASP.Net"/><category term="Create Data Base"/><category term="DES-EDE3-CBC"/><category term="Email C#"/><category term="Encrypt Private Key"/><category term="Export ListView"/><category term="FolderBrowserDialog"/><category term="Generate Ticket on C#"/><category term="GridView"/><category term="Item ComboBox Color"/><category term="OPENSSH"/><category term="OpenFileDialog"/><category term="OpenSSL"/><category term="PEM"/><category term="PHP"/><category term="Pictures on Access Database"/><category term="RSACrytoServiceProvider"/><category term="Read web.config"/><category term="Restore Data Base"/><category term="Safe SQL Clause"/><title type='text'>Developer Scripts</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-1955967336918024232</id><published>2014-12-31T15:40:00.000-06:00</published><updated>2014-01-22T13:46:23.923-06:00</updated><title type='text'>Welcome</title><content type='html'>Wellcome to &quot;Developer Scripts&quot;, here you can find scripts to your sofyware development.&lt;br /&gt;
Do not forget add +1 when you use a script published here. &lt;br /&gt;
&lt;br /&gt;
Please visit &lt;a href=&quot;http://www.tyrodeveloper.com/&quot; target=&quot;_blank&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks and enjoy the site...</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/1955967336918024232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/welcome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1955967336918024232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1955967336918024232'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/welcome.html' title='Welcome'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-4887007202721924364</id><published>2014-01-24T15:57:00.002-06:00</published><updated>2014-01-24T16:01:49.995-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DES-EDE3-CBC"/><category scheme="http://www.blogger.com/atom/ns#" term="Encrypt Private Key"/><category scheme="http://www.blogger.com/atom/ns#" term="OPENSSH"/><category scheme="http://www.blogger.com/atom/ns#" term="RSA"/><title type='text'>Create a Encrypted Private Key in C#</title><content type='html'>Whe have this XML Private Key:
&lt;pre class=&quot;brush:xml&quot;&gt;
&lt;RSAKeyValue&gt;
&lt;Modulus&gt;5ayPZaKM3flHFu2B7aiYpkI81/cByFHHNSmcgQQfP+X2bIGf7JlkuEneh5z7PRkk7Z05jOGxIMdvDd7pVLIWmgRLWaN7bI8JAVf8lUN0kcjA5KgQNjRI23LpvnvzHQjB4jyNXkhhxKXREreeWtEujduD1u99l5t2WxoDqdbYbdc=
&lt;/Modulus&gt;
&lt;Exponent&gt;AQAB&lt;/Exponent&gt;
&lt;P&gt;/27P2g48qXfQBlFRZ+pes6EBBUYzS3r7B1BL3g/O9VFJnZBPQFzclEdZPVvjh9Ve+HktvbKTaYRJ5wlVewDVRw==&lt;/P&gt;
&lt;Q&gt;5i8bXxa7g6Tue2/NkOjFK5i54RTaGPbjvPcg1N1Wq8pew0lx0lY3q7A+qH3VjiJHwSRifY7n92zkxutSqF4q8Q==&lt;/Q&gt;
&lt;DP&gt;hyilhyZ9ZtblFlK1Fp1nWvlYxuesgMYkSmxsmKYYxqoqn9sadF4uwa83Q0Z6EQgQZr4IPBZf9jdvu3au6pU4RQ==&lt;/DP&gt;
&lt;DQ&gt;RWDDZjiq0fXfL3M2SUvvScGhnNa1GbsoTydJTP9dhS/cug2j8dqssuHPMOeke0+Xwv4ddWyiO/AlUFNTOY4QcQ==&lt;/DQ&gt;
&lt;InverseQ&gt;BtvaLLe1E1whaPvvT7r72qPl8oq+E020GiHmvO7v08D1SfynETLs5NJVAn4e3ChHNSvErTshin0r1JvLLTKqRw==&lt;/InverseQ&gt;
&lt;D&gt;31S3r52rmuEdtnbHI8EQhoLcRSikLBURP2myDGZkuK61u3ckel4CaY0y/O2yBAxiM0fyQULpCTXEkFlUzI3LmKoj/L0cSlk58xf8hB837/fn/bulnATWSajKn/p4ecXpBlPTySf9MPwoyNwXdyjjz0bQc6oo1U42VybQRNgvWGE=&lt;/D&gt;
&lt;/RSAKeyValue&gt;
&lt;/pre&gt;

And we need to convert to this format:
&lt;pre&gt;
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,8c57f58aa0ad5acc

lNc4vhhAiQOJEHuK5Ifc5jA9kLwy082g110hSh81MR4fMfEuUDiu0hanAebaFgA7
vePABXoNJStG9mMO7r+AwSdeZZPF1wpSk35LYNVDZmSp2cy5ZyMDJy+xDNWxYODs
f63i10DWE1/6u+Jlnmq5yWT05PvjBV+Jn/MeMwGgkj3JN8xTc8SgSRDsgarxllpk
YLxF+mUqwnE3JIBASE7W75DjqmI8KfZXaNT9Xp7x1Jyg5h1HTHQnJLCpwmpoGl32
QTWTQw1BuD0gL04VC+nIKPhia16FGyqqD9sGdeCP18tb/yi4Bz8Nlc/ijLjuwFVX
YDoqmjleulNFKQBQcePInStJfDejdETCm30iRhaMe2bH6NJmWfigzlud9uvGsrld
f1QNhyTUS+6ntgbRtKLdhGL5Wx1ZItx5UL9UOl+ho7gJOGwiT7dKcF6zOts9vtre
kkAsNGiXFcpdGC/xnnMoXHgYBUypCcT9D6K1dp7LzJozzACzlWSnhD9HW1lELLb3
AElJP1AwmHnh383qudM2/KoYRyK6VTUmjTUbsPStjmjldvwXqYUt5PVKsTb98JBj
YFafxHdNorg4+ZFY+6JHTIKDMTu+I4td/2ok41oPLAC3x8GVB1iCAG8YgZsKGizy
bbv+H3ns40k8n6XyyzI480Zb7/5PtIzY9tLGA9o2znQ+DWm64Wl2nfRDLfncanO4
EKQoYZVuMfU92TCan4roihURnmkO7YaJg6LeQTHUpkiVajV2Kbpv3JYbHH7Gvs+V
SiSsQlXGirOFY2D82j54P6WT9L/nKtjmjSIZKq/hGPs9JN//XMfIhw==
-----END RSA PRIVATE KEY-----
&lt;/pre&gt;
Here the c# code:
&lt;pre class=&quot;brush:csharp&quot;&gt;
public string EncryptPrivateKey(string pPhrase)
{

    RSA rsa1 = RSA.Create();
    rsa1.FromXmlString(xml_private_key);//Put here your XML Privatye Key
    AsymmetricCipherKeyPair keyPair = 
        Org.BouncyCastle.Security.DotNetUtilities.GetRsaKeyPair(rsa1);
    TextWriter textWriter = new StringWriter();
    PemWriter pemWriter = new PemWriter(textWriter);
    pemWriter.WriteObject(keyPair.Private, &quot;DES-EDE3-CBC&quot;, pPhrase.ToCharArray(), new SecureRandom());
    pemWriter.Writer.Flush();
    return (textWriter.ToString());          
}
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/4887007202721924364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2014/01/create-encrypted-private-key-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/4887007202721924364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/4887007202721924364'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2014/01/create-encrypted-private-key-in-c.html' title='Create a Encrypted Private Key in C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-4688383461235957478</id><published>2014-01-22T13:33:00.000-06:00</published><updated>2014-01-22T13:47:39.194-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BouncyCastle"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenSSL"/><category scheme="http://www.blogger.com/atom/ns#" term="PEM"/><category scheme="http://www.blogger.com/atom/ns#" term="RSA"/><category scheme="http://www.blogger.com/atom/ns#" term="RSACrytoServiceProvider"/><title type='text'>Convert RSA to PEM</title><content type='html'>Hi friends, after some days searching the way to convert a &lt;b&gt;RSACrytoServiceProvider &lt;/b&gt;(RSA) to PEM format finally in C# i found this code:
&lt;pre class=&quot;brush:csharp&quot;&gt;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using Org.BouncyCastle.Asn1.Pkcs;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.X509;

namespace RsaKeyConverter.Converter
{
    public static class RsaKeyConverter
    {
        public static string XmlToPem(string xml)
        {
            using (RSA rsa = RSA.Create())
            {
                rsa.FromXmlString(xml);

                AsymmetricCipherKeyPair keyPair = Org.BouncyCastle.Security.DotNetUtilities.GetRsaKeyPair(rsa); // try get private and public key pair
                if (keyPair != null) // if XML RSA key contains private key
                {
                    PrivateKeyInfo privateKeyInfo = PrivateKeyInfoFactory.CreatePrivateKeyInfo(keyPair.Private);
                    return FormatPem(Convert.ToBase64String(privateKeyInfo.GetEncoded()), &quot;PRIVATE KEY&quot;);
                   
                }

                RsaKeyParameters publicKey = Org.BouncyCastle.Security.DotNetUtilities.GetRsaPublicKey(rsa); // try get public key
                if (publicKey != null) // if XML RSA key contains public key
                {
                    SubjectPublicKeyInfo publicKeyInfo = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(publicKey);
                    return FormatPem(Convert.ToBase64String(publicKeyInfo.GetEncoded()), &quot;PUBLIC KEY&quot;);
                }
            }

            throw new InvalidKeyException(&quot;Invalid RSA Xml Key&quot;);
        }

        public static string PublicXmlToPem(string xml)
        {
            using (RSA rsa = RSA.Create())
            {
                rsa.FromXmlString(xml);

                RsaKeyParameters publicKey = Org.BouncyCastle.Security.DotNetUtilities.GetRsaPublicKey(rsa); // try get public key
                if (publicKey != null) // if XML RSA key contains public key
                {
                    SubjectPublicKeyInfo publicKeyInfo = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(publicKey);
                    return FormatPem(Convert.ToBase64String(publicKeyInfo.GetEncoded()), &quot;PUBLIC KEY&quot;);
                }
            }

            throw new InvalidKeyException(&quot;Invalid RSA Xml Key&quot;);
        }

        private static string FormatPem(string pem, string keyType)
        {
            var sb = new StringBuilder();
            sb.AppendFormat(&quot;-----BEGIN {0}-----\n&quot;, keyType);

            int line = 1, width = 64;

            while ((line - 1) * width &lt; pem.Length)
            {
                int startIndex = (line - 1) * width;
                int len = line * width &gt; pem.Length
                              ? pem.Length - startIndex
                              : width;
                sb.AppendFormat(&quot;{0}\n&quot;, pem.Substring(startIndex, len));
                line++;
            }

            sb.AppendFormat(&quot;-----END {0}-----\n&quot;, keyType);
            return sb.ToString();
        }

        public static string PemToXml(string pem)
        {
            if (pem.StartsWith(&quot;-----BEGIN RSA PRIVATE KEY-----&quot;)
                || pem.StartsWith(&quot;-----BEGIN PRIVATE KEY-----&quot;))
            {
                return GetXmlRsaKey(pem, obj =&gt;
                {
                    if ((obj as RsaPrivateCrtKeyParameters) != null)
                        return DotNetUtilities.ToRSA((RsaPrivateCrtKeyParameters)obj);
                    var keyPair = (AsymmetricCipherKeyPair)obj;
                    return DotNetUtilities.ToRSA((RsaPrivateCrtKeyParameters)keyPair.Private);
                }, rsa =&gt; rsa.ToXmlString(true));
            }

            if (pem.StartsWith(&quot;-----BEGIN PUBLIC KEY-----&quot;))
            {
                return GetXmlRsaKey(pem, obj =&gt;
                {
                    var publicKey = (RsaKeyParameters)obj;
                    return DotNetUtilities.ToRSA(publicKey);
                }, rsa =&gt; rsa.ToXmlString(false));
            }

            throw new InvalidKeyException(&quot;Unsupported PEM format...&quot;);
        }

        private static string GetXmlRsaKey(string pem, Func&lt;object, RSA&gt; getRsa, Func&lt;RSA, string&gt; getKey)
        {
            using (var ms = new MemoryStream())
            using (var sw = new StreamWriter(ms))
            using (var sr = new StreamReader(ms))
            {
                sw.Write(pem);
                sw.Flush();
                ms.Position = 0;
                var pr = new PemReader(sr);
                object keyPair = pr.ReadObject();
                using (RSA rsa = getRsa(keyPair))
                {
                    var xml = getKey(rsa);
                    return xml;
                }
            }
        }
    }
}
&lt;/pre&gt;
How to Use:
&lt;pre class=&quot;brush:csharp&quot;&gt;
string private_pem = RsaKeyConverter.Converter.RsaKeyConverter.XmlToPem(rsa.ToXmlString(true));//private
string public_pem = RsaKeyConverter.Converter.RsaKeyConverter.PublicXmlToPem(rsa.ToXmlString(false));//public
&lt;/pre&gt;

&lt;b&gt;Where rsa is your RSACryptoServiceProvider object.&lt;/b&gt;
&lt;br /&gt;&lt;br /&gt;
You need C# Bouncy Castle Library - &lt;a href=&quot;http://www.bouncycastle.org/csharp/&quot; target=&quot;_blank&quot;&gt;Download is 100% free&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
Regards</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/4688383461235957478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2014/01/convert-rsa-to-pem.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/4688383461235957478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/4688383461235957478'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2014/01/convert-rsa-to-pem.html' title='Convert RSA to PEM'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-8816598094022280709</id><published>2012-04-23T13:03:00.000-05:00</published><updated>2012-04-23T13:14:22.710-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Item ComboBox Color"/><title type='text'>ComboBox Item Color</title><content type='html'>You can add items to ComboBox control with colors. You only need to create a CustomComboBox that enable add items with the desired color:
&lt;br /&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;using System;
using System.Windows.Forms;
using System.Drawing;
namespace TyroDeveloperDLL
{
    public class ComboBoxCustom : ComboBox
    {
        public ComboBoxCustom()
        {
            this.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
        }
        protected override void OnDrawItem(DrawItemEventArgs e)
        {
            base.OnDrawItem(e);
            if (e.Index &amp;lt; 0) { return; }
            e.DrawBackground();
            ComboBoxItem item = (ComboBoxItem)this.Items[e.Index];
            Brush brush = new SolidBrush(item.ForeColor);
            if ((e.State &amp;amp; DrawItemState.Selected) == DrawItemState.Selected)
            { brush = Brushes.Yellow; }
            e.Graphics.DrawString(item.Text, 
                this.Font, brush, e.Bounds.X, e.Bounds.Y);
        }
        object selectedValue = null;
        public new Object SelectedValue
        {
            get
            {
                object ret = null;
                if (this.SelectedIndex &amp;gt;= 0) { 
                    ret = ((ComboBoxItem)this.SelectedItem).Value; 
                }
                return ret;
            }
            set { selectedValue = value; }
        }
        string selectedText = &quot;&quot;;
        public new String SelectedText
        {
            get
            {
                return ((ComboBoxItem)this.SelectedItem).Text;
            }
            set { selectedText = value; }
        }
    }
    public class ComboBoxItem
    {
        public ComboBoxItem() { }

        public ComboBoxItem(string pText, object pValue)
        {
            text = pText; val = pValue;
        }

        public ComboBoxItem(string pText, object pValue, Color pColor)
        {
            text = pText; val = pValue; foreColor = pColor;
        }

        string text = &quot;&quot;;
        public string Text
        {
            get { return text; }
            set { text = value; }
        }

        object val;
        public object Value
        {
            get { return val; }
            set { val = value; }
        }

        Color foreColor = Color.Black;
        public Color ForeColor
        {
            get { return foreColor; }
            set { foreColor = value; }
        }

        public override string ToString()
        {
            return text;
        }
    }
}
&lt;/pre&gt;
&lt;br /&gt;
To add items:
&lt;pre class=&quot;brush:csharp&quot; &gt;
comboBoxCustom1.Items.Add(new ComboBoxItem(&quot;México&quot;, &quot;0&quot;, Color.Green));
comboBoxCustom1.Items.Add(new ComboBoxItem(&quot;USA&quot;, &quot;1&quot;, Color.Blue));
comboBoxCustom1.Items.Add(new ComboBoxItem(&quot;China&quot;, &quot;2&quot;, Color.Red));
&lt;/pre&gt;
&lt;br /&gt;
To get the item values:
&lt;pre class=&quot;brush:csharp&quot; &gt;
string Msg = String.Format(&quot;Text: {0}\nValue: {1}&quot;, 
   comboBoxCustom1.SelectedText, comboBoxCustom1.SelectedValue);
MessageBox.Show(Msg);
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper&lt;/a&gt;
&lt;br /&gt;
&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/8816598094022280709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/04/combobox-item-color.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/8816598094022280709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/8816598094022280709'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/04/combobox-item-color.html' title='ComboBox Item Color'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-3903095593395367756</id><published>2012-03-22T13:57:00.000-06:00</published><updated>2012-03-22T14:06:20.578-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>Connect to a MySQL Database PHP</title><content type='html'>&lt;b&gt;Open Connection&lt;/b&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:php&quot;&gt;


 $con = mysql_connect(&quot;localhost&quot;,&quot;dbUserName&quot;,&quot;p@assword&quot;);
 if (!$con){die(&#39;Could not connect: &#39; . mysql_error());}
 
//some code
&lt;/pre&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;Close Connection&lt;/b&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:php&quot;&gt;

$con = mysql_connect(&quot;localhost&quot;,&quot;dbUserName&quot;,&quot;p@assword&quot;);
if (!$con){die(&#39;Could not connect: &#39; . mysql_error());}

// some code
mysql_close($con);
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/3903095593395367756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/connect-to-database-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/3903095593395367756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/3903095593395367756'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/connect-to-database-php.html' title='Connect to a MySQL Database PHP'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-1071276065353014481</id><published>2012-03-20T13:39:00.002-06:00</published><updated>2012-03-20T13:41:06.642-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Connection String"/><title type='text'>Microsoft Access Connection Strings</title><content type='html'>&lt;b&gt;Standard:&lt;/b&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;With Data Base Password:&lt;/b&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbP@ssword;
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Data Directory:&lt;/b&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\myDatabase.mdb;User Id=admin;Password=;
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Network Location:&lt;/b&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\serverName\shareName\folder\myDatabase.mdb;User Id=admin;Password=;
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;You can change the provider to Access 2007-2010 Data Base:&lt;/b&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;
&lt;/pre&gt;
&lt;br /&gt;
Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper&lt;/a&gt;
&lt;br /&gt;
&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/1071276065353014481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/microsoft-access-connection-strings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1071276065353014481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1071276065353014481'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/microsoft-access-connection-strings.html' title='Microsoft Access Connection Strings'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-5368545986892943739</id><published>2012-03-20T12:04:00.001-06:00</published><updated>2012-03-20T12:15:48.866-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Read web.config"/><title type='text'>Read web.config C#</title><content type='html'>&lt;b&gt;web.config example:&lt;/b&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:xml&quot;&gt;&lt;appsettings&gt;
 &lt;add key=&quot;DEVELOPER_URL&quot; value=&quot;http://www.tyrodeveloper.com&quot;&gt;&lt;/add&gt;
&lt;/appsettings&gt;

&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;CSharp (C#) Code:&lt;/b&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;public static string WebConfig(string prmKey) {
    try
    {
        string value = ConfigurationManager.AppSettings[prmKey];
        return (value);
    }
    catch {
        return (&quot;&quot;);
    }
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Implementation:&lt;/b&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;string GMailURL = WebConfig(&quot;DEVELOPER_URL&quot;);
&lt;/pre&gt;
&lt;br /&gt;
Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com/&quot;&gt;www.TyroDeveloper&lt;/a&gt;
&lt;br /&gt;
&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/5368545986892943739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/read-webconfig-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/5368545986892943739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/5368545986892943739'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/read-webconfig-c.html' title='Read web.config C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-1816374147732195107</id><published>2012-03-20T11:35:00.004-06:00</published><updated>2012-03-20T12:17:03.475-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Restore Data Base"/><title type='text'>Restore Data Base SQL Server</title><content type='html'>&lt;pre class=&quot;brush:sql&quot;&gt;
RESTORE DATABASE [PointOfSale] 
FROM  DISK = N&#39;C:\MyDataFiles\PointOfSale_Full.bak&#39; 
WITH  FILE = 1,  
MOVE N&#39;PointOfSale_Data&#39; TO N&#39;C:\MyDataFiles\PointOfSale_Data.mdf&#39;,  
MOVE N&#39;PointOfSale_Log&#39; TO N&#39;C:\MYDataFiles\PointOfSale_Log.ldf&#39;,  
NOUNLOAD,  STATS = 10
&lt;/pre&gt;
&lt;br /&gt;
Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper&lt;/a&gt;
&lt;br /&gt;
&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/1816374147732195107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/restore-data-base-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1816374147732195107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1816374147732195107'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/restore-data-base-sql-server.html' title='Restore Data Base SQL Server'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-723643804519026904</id><published>2012-03-20T11:30:00.002-06:00</published><updated>2012-03-20T11:36:42.433-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Backup Data Base"/><title type='text'>Backup Data Base SQL Server</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;BACKUP DATABASE [PointOfSale] TO  
DISK = N&#39;C:\MyDataFiles\PointOfSale_Full.bak&#39; 
WITH NOFORMAT, NOINIT,  NAME = N&#39;PointOfSale-Full Database Backup&#39;, 
SKIP, NOREWIND, NOUNLOAD,  STATS = 10
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/723643804519026904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/backup-data-base-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/723643804519026904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/723643804519026904'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/backup-data-base-sql-server.html' title='Backup Data Base SQL Server'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-7895671640074344897</id><published>2012-03-20T11:19:00.001-06:00</published><updated>2012-03-20T11:37:05.707-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Create Data Base"/><title type='text'>Create Data Base SQL Server</title><content type='html'>&lt;pre class=&quot;brush:sql&quot;&gt;USE master;
GO
CREATE DATABASE PointOfSale
ON 
( NAME = PointOfSale_Data,
    FILENAME = &#39;C:\MyDataFiles\PointOfSale_Data.mdf&#39;,
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = PointOfSale_Log,
    FILENAME = &#39;C:\MyDataFiles\PointOfSale_Log.ldf&#39;,
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO
&lt;/pre&gt;
&lt;br /&gt;
Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com/&quot;&gt;www.TyroDeveloper&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/7895671640074344897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/create-data-base-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/7895671640074344897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/7895671640074344897'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/create-data-base-sql-server.html' title='Create Data Base SQL Server'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-8939178195832834870</id><published>2012-03-19T14:51:00.001-06:00</published><updated>2012-03-19T14:51:33.842-06:00</updated><title type='text'>Generare ID with SQL Server</title><content type='html'>&lt;pre class=&quot;brush:sql&quot;&gt;
CREATE FUNCTION [dbo].[fn_GenerateID]
 (@ID BIGINT, @LEN SMALLINT)
RETURNS NVARCHAR(100)
AS
/*
THIS FUNCTION GENERATE ID WITH LEFT ZEROS.
JUAN GABRIEL CASTILLO TURRUBIATES
tyrodeveloper@gmail.com
20 dic 2011
Example:
SELECT dbo.fn_GenerateID(243,5) AS RESULT
Where 243 is the number to be converted and
5 is the number of chars, the value result is:
|RESULT
00243
*/
BEGIN
 DECLARE @SRC_LEN SMALLINT, @DIFF_LEN SMALLINT, 
 @COUNT SMALLINT, @ZERO NVARCHAR(100)
 SET @ZERO=&#39;&#39;
 SET @SRC_LEN = LEN(CAST(@ID AS NVARCHAR(100)))
 IF @LEN &lt;= @SRC_LEN
 BEGIN
  --IF THE LENREQUESTED IS LESS OR EQUAL THAN THE ORIGINAL
  SET @ZERO = &#39;&#39;
 END
 ELSE
 BEGIN
  --IF THE LEN REQUESTED IS MORE THAN THE ORIGINAL
  SET @COUNT= 0
  SET @DIFF_LEN = @LEN - @SRC_LEN 
  WHILE(@COUNT &lt; @DIFF_LEN)
  BEGIN
   SET @ZERO = @ZERO + &#39;0&#39;
   SET @COUNT = @COUNT + 1
  END
 END
 RETURN @ZERO + CAST(@ID AS NVARCHAR(100))
END

GO
&lt;/pre&gt;
&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/8939178195832834870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/generare-id-with-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/8939178195832834870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/8939178195832834870'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/generare-id-with-sql-server.html' title='Generare ID with SQL Server'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-5904557782628658450</id><published>2012-03-19T14:44:00.001-06:00</published><updated>2012-03-19T14:44:23.477-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Pictures on Access Database"/><title type='text'>Pictures on Access</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;using System;
using System.Data.OleDb;
using System.IO;
namespace TyroDeveloper.Class
{
    public class AccessPictures
    {
        string _connStr = &quot;&quot;;
        public string ConnStr { 
            get { return _connStr; } 
            set { _connStr = value; } 
        }
        public bool SetPicture(string tableName, string fieldId, 
            string fieldIdValue, 
            string targetFieldName, string fileName){
            OleDbConnection conn = new OleDbConnection(_connStr);
            try
            {
                System.IO.FileStream fs = 
                    new FileStream(fileName, FileMode.Open, FileAccess.Read);
                System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
                byte[] picture = new byte[fs.Length];
                br.Read(picture, 0, (int)fs.Length);
                br.Close();
                fs.Close();
                string SQL = String.Format(&quot;UPDATE [{0}] &quot;+
                    &quot; SET [{1}]=@IMG WHERE [{2}]=@ID&quot;, 
                    tableName, targetFieldName, fieldId);
                conn.Open();
                OleDbCommand comm = new OleDbCommand(SQL, conn);
                //IMAGE
                OleDbParameter parImagen = 
                    new OleDbParameter(&quot;@IMG&quot;, OleDbType.VarBinary, 
                        picture.Length);
                parImagen.Value = picture;
                comm.Parameters.Add(parImagen);
                //ID
                OleDbParameter parId = new OleDbParameter(&quot;@ID&quot;, fieldIdValue);
                comm.Parameters.Add(parId);
                comm.ExecuteNonQuery();
                return (true);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            finally { conn.Close(); }
        }
        public byte[] GetPicture(string targetFieldName,string fieldIdName, 
            string tableName, string fieldIdValue){
            OleDbConnection conn = new OleDbConnection(_connStr);
            try {
                conn.Open();
                string SQL = string.Format(&quot;SELECT [{0}], [{1}] &quot;+
                    &quot; FROM [{2}] WHERE [{1}]=@ID AND [{0}] IS NOT NULL&quot;, 
                    targetFieldName, fieldIdName, tableName);
                OleDbCommand comm = new OleDbCommand(SQL, conn);
                OleDbParameter parId = new OleDbParameter(&quot;@ID&quot;, fieldIdValue);
                comm.Parameters.Add(parId);
                OleDbDataReader dr = null;
                dr = comm.ExecuteReader();
                byte[] aBytes = null;
                if (dr.Read())
                {
                    aBytes = (byte[])dr[targetFieldName];
                }
                dr.Close();
                return (aBytes);
            }
            catch (Exception ex) { throw (ex); }
            finally { conn.Close(); }
        }
    }
}
&lt;/pre&gt;
&lt;br /&gt;
Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com/&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/5904557782628658450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/pictures-on-access.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/5904557782628658450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/5904557782628658450'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/pictures-on-access.html' title='Pictures on Access'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-1331956937699669882</id><published>2012-03-19T11:05:00.002-06:00</published><updated>2012-03-19T11:05:15.576-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="FolderBrowserDialog"/><title type='text'>Folder Browser Dialog C#</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;
FolderBrowserDialog dlg = new FolderBrowserDialog();
DialogResult res = dlg.ShowDialog();
if (res == DialogResult.OK)
{
    txtReportsFolder.Text = dlg.SelectedPath;
}
&lt;/pre&gt;
&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/1331956937699669882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/folder-browser-dialog-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1331956937699669882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1331956937699669882'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/folder-browser-dialog-c.html' title='Folder Browser Dialog C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-9166458589518330445</id><published>2012-03-19T11:03:00.003-06:00</published><updated>2012-03-19T11:03:37.999-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="OpenFileDialog"/><title type='text'>Open File Dialog C#</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;
OpenFileDialog m_OpenFile = new OpenFileDialog();
m_OpenFile.Title = &quot;Buscar Base de Datos&quot;;
m_OpenFile.Filter = &quot;All Files(*.*)|*.*|Base de datos de Microsoft Access (*.mdb)|*.mdb&quot;;
m_OpenFile.FilterIndex = 2;
if (m_OpenFile.ShowDialog() == DialogResult.OK)
{
    txtSource.Text = m_OpenFile.FileName.ToString();
}
&lt;/pre&gt;
&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/9166458589518330445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/open-file-dialog-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/9166458589518330445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/9166458589518330445'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/open-file-dialog-c.html' title='Open File Dialog C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-6233161694783639780</id><published>2012-03-19T10:46:00.003-06:00</published><updated>2012-03-19T10:46:38.355-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Safe SQL Clause"/><title type='text'>Safe SQL Like Clause Literal C#</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;
    public static string SafeSqlLikeClauseLiteral(string prmSQLString)
    {
        string s = prmSQLString;
        s = s.Replace(&quot;&#39;&quot;, &quot;&#39;&#39;&quot;);
        s = s.Replace(&quot;[&quot;, &quot;[[]&quot;);
        s = s.Replace(&quot;%&quot;, &quot;[%]&quot;);
        s = s.Replace(&quot;_&quot;, &quot;[_]&quot;);
        return (s);
    }
&lt;/pre&gt;

&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/6233161694783639780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/safe-sql-like-clause-literal-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/6233161694783639780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/6233161694783639780'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/safe-sql-like-clause-literal-c.html' title='Safe SQL Like Clause Literal C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-1963069371792350966</id><published>2012-03-19T10:43:00.000-06:00</published><updated>2012-03-19T10:43:40.776-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Absolute URL"/><title type='text'>ASP.Net Absolute URL C#</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;
    public static string GetUrl(string file, Page page)
    {
        string end = (page.Request.ApplicationPath.EndsWith(&quot;/&quot;)) ? &quot;&quot; : &quot;/&quot;;
        string path = page.Request.ApplicationPath + end;
        return string.Format(&quot;http://{0}{1}{2}&quot;, page.Request.Url.Authority, path, file);
    }
&lt;/pre&gt;

&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/1963069371792350966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/aspnet-absolute-url-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1963069371792350966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1963069371792350966'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/aspnet-absolute-url-c.html' title='ASP.Net Absolute URL C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-8435359339415247581</id><published>2012-03-19T10:39:00.004-06:00</published><updated>2012-03-19T10:39:41.524-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cookies C# ASP.Net"/><title type='text'>Read and Write Cookies C#</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;
using System;
using System.Web.UI;

/// &lt;summary&gt;
/// Cookies
/// &lt;/summary&gt;
public class clsCookies{

    public string GetCookie(Page page, string cookieName, string defaultValue) {
        try {
            if (page.Request.Cookies[cookieName] != null)
            {
                return (page.Request.Cookies[cookieName].Value);
            }
            else {
                return (defaultValue);
            }
        }
        catch {
            return (defaultValue);
        }
    }

    public void SetCookie(Page page, string cookieName,string cookieValue) {
        page.Response.Cookies[cookieName].Value = cookieValue;
    }
}
&lt;/pre&gt;
&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/8435359339415247581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/read-and-write-cookies-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/8435359339415247581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/8435359339415247581'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/read-and-write-cookies-c.html' title='Read and Write Cookies C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-8276579857265732203</id><published>2012-03-19T10:34:00.003-06:00</published><updated>2012-03-19T10:34:26.878-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Email C#"/><title type='text'>Send Email C#</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
namespace TyroDeveloperDLL
{
    public class clsMail
    {
        string userid = &quot;&quot;;
        public String UserId {
            get { return userid; }
            set { userid = value; }
        }
        string userpassword = &quot;&quot;;
        public String UserPassword {
            get { return userpassword; }
            set { userpassword = value; }
        }
        string host = &quot;&quot;;
        public String  Host {
            get { return host; }
            set { host = value; }
        }
        int port = 80;
        public Int32 Port{
            get { return port; }
            set { port = value; }
        }
        string destination_email = &quot;&quot;;
        public String DestinationEmail {
            get { return destination_email; }
            set { destination_email = value; }
        }
        string subject = &quot;&quot;;
        public String Subject {
            get { return subject; }
            set { subject = value; }
        }
        string message = &quot;&quot;;
        public String Message {
            get { return message; }
            set { message = value; }
        }
        MailPriority priority = MailPriority.Normal;
        public MailPriority EmailPriority {
            get { return priority; }
            set { priority = value; }
        }
        public bool Send(string prmDestinationEMail, string prmSubject, string prmMessage)
        {
            try
            {               
                MailMessage correo = new MailMessage();
                correo.From = new MailAddress(userid);
                correo.To.Add(prmDestinationEMail);
                correo.Subject = prmSubject;
                correo.Body = prmMessage;
                correo.IsBodyHtml = true;
                correo.Priority = priority;
                SmtpClient smtp = new SmtpClient();
                smtp.Credentials = 
                    new System.Net.NetworkCredential(userid, userpassword);
                smtp.Host = host;
                smtp.Port = port;
                smtp.EnableSsl = true;
                smtp.Send(correo);
                return (true);

            }
            catch (Exception ex)
            {
                throw(ex);
            }
        }
        public bool Send()
        {
            try
            {
                MailMessage correo = new MailMessage();
                correo.From = new MailAddress(userid);
                correo.To.Add(destination_email);
                correo.Subject = subject;
                correo.Body = message;
                correo.IsBodyHtml = true;
                correo.Priority = priority;
                SmtpClient smtp = new SmtpClient();
                smtp.Credentials = 
                    new System.Net.NetworkCredential(userid, userpassword);
                smtp.Host = host;
                smtp.Port = port;
                smtp.EnableSsl = true;
                smtp.Send(correo);
                return (true);

            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
    }
}
&lt;/pre&gt;
&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/8276579857265732203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/send-email-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/8276579857265732203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/8276579857265732203'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/send-email-c.html' title='Send Email C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-1289621860782456918</id><published>2012-03-19T10:24:00.003-06:00</published><updated>2012-03-19T10:24:41.138-06:00</updated><title type='text'>Custom HTMLEditor C#</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;
using AjaxControlToolkit.HTMLEditor;
/// &lt;summary&gt;
/// Summary description for MyHTMLEditor
/// &lt;/summary&gt;
/// namespace 
/// 
namespace TyroDeveloper.WebControls
{
    public class MyHTMLEditor : Editor
    {
        protected override void FillTopToolbar()
        {
           
            //this.TopToolbar.Buttons.Clear();
            TopToolbar.Buttons.Add(new AjaxControlToolkit.HTMLEditor.ToolbarButton.Bold()); 
            TopToolbar.Buttons.Add(new AjaxControlToolkit.HTMLEditor.ToolbarButton.Italic());
            TopToolbar.Buttons.Add(new AjaxControlToolkit.HTMLEditor.ToolbarButton.Underline());
            TopToolbar.Buttons.Add(new AjaxControlToolkit.HTMLEditor.ToolbarButton.BulletedList());
        }
        protected override void FillBottomToolbar()
        {
            //base.FillBottomToolbar();
            BottomToolbar.Buttons.Add(new AjaxControlToolkit.HTMLEditor.ToolbarButton.DesignMode()); 
            BottomToolbar.Buttons.Add(new AjaxControlToolkit.HTMLEditor.ToolbarButton.PreviewMode());
            BottomToolbar.Buttons.Add(new AjaxControlToolkit.HTMLEditor.ToolbarButton.HtmlMode()); 
        }
    }
}
&lt;/pre&gt;
&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/1289621860782456918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/custom-htmleditor-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1289621860782456918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1289621860782456918'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/custom-htmleditor-c.html' title='Custom HTMLEditor C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-7112225128178130686</id><published>2012-03-19T10:14:00.000-06:00</published><updated>2012-03-19T10:23:11.468-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GridView"/><title type='text'>Link on a GridView</title><content type='html'>&lt;pre class=&quot;brush:xml&quot;&gt;
&lt;asp:TemplateField&gt;
    &lt;ItemTemplate&gt;
        &lt;a href=&quot;#&quot; &gt;
            Text Link
        &lt;/a&gt;
    &lt;/ItemTemplate&gt;
    &lt;HeaderTemplate&gt;
        Hearder Text Link
    &lt;/HeaderTemplate&gt;
&lt;/asp:TemplateField&gt;
&lt;/pre&gt;

&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/7112225128178130686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/link-on-gridview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/7112225128178130686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/7112225128178130686'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/link-on-gridview.html' title='Link on a GridView'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-778095016228453526</id><published>2012-03-17T23:23:00.003-06:00</published><updated>2012-03-17T23:27:09.271-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Export ListView"/><title type='text'>ListView to Excel C#</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace TyroDeveloperDLL
{
    public class ListViewToExcel
    {
        /// &lt;summary&gt;
        /// Export to Excel
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;lv&quot;&gt;Name of the ListView control&lt;/param&gt;
        /// &lt;param name=&quot;prmBookName&quot;&gt;Book name&lt;/param&gt;
        /// &lt;param name=&quot;prmPath&quot;&gt;Folder to put the file. &lt;/param&gt;
        /// &lt;example&gt;To export a list of items
        /// C#: ExportToExcel(lvArticulos,&quot;Items&quot;,&quot;C:\&quot;);&lt;/example&gt;
        public static void ExportToExcel(ListView lv, string prmBookName, string prmPath)
        {
            try
            {
                if (lv.Items.Count == 0)
                {
                    MessageBox.Show(&quot;No items to export&quot;,
                        &quot;System Information&quot;, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                string[] st = new string[lv.Columns.Count];
                DirectoryInfo di = new DirectoryInfo(prmPath);
                if (di.Exists == false) di.Create();
                StreamWriter sw = new StreamWriter(prmPath + prmBookName + &quot;.xls&quot;, false);
                sw.AutoFlush = true;
                for (int col = 0; col &lt; lv.Columns.Count; col++)
                {
                    sw.Write(&quot;\t&quot; + lv.Columns[col].Text.ToString());
                }
                int rowIndex = 1; int row = 0;
                string st1 = &quot;&quot;;
                for (row = 0; row &lt; lv.Items.Count; row++)
                {
                    if (rowIndex &lt;= lv.Items.Count)
                        rowIndex++;
                    if (row == 0) st1 = &quot;\n&quot;;
                    else st1 = &quot;&quot;;
                    for (int col = 0; col &lt; lv.Columns.Count; col++)
                    {
                        st1 = st1 + &quot;\t&quot; + &quot;&#39;&quot; + lv.Items[row].SubItems[col].Text.ToString();
                    }
                    sw.WriteLine(st1);
                }
                sw.Close();
                FileInfo fil = new FileInfo(prmPath + prmBookName + &quot;.xls&quot;);
                if (fil.Exists == true)
                    MessageBox.Show(&quot;¡Finished!\n&quot; +
                        &quot;File Name: &quot; + prmPath + prmBookName,
                        &quot;Export to Excel&quot;,
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}
&lt;/pre&gt;

&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/778095016228453526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/listview-to-excel-c.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/778095016228453526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/778095016228453526'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/listview-to-excel-c.html' title='ListView to Excel C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-598293445574846582</id><published>2012-03-17T23:17:00.000-06:00</published><updated>2012-03-17T23:19:08.404-06:00</updated><title type='text'>Taskbar Notifier C#</title><content type='html'>&lt;pre class=&quot;brush: csharp&quot;&gt;// C# TaskbarNotifier Class v1.0
// by John O&#39;Byrne - 02 december 2002
// 01 april 2003 : Small fix in the OnMouseUp handler
// 11 january 2003 : Patrick Vanden Driessche &lt;pvdd@devbrains.be&gt; added a few enhancements
// Small Enhancements/Bugfix
// Small bugfix: When Content text measures larger than the corresponding ContentRectangle
// the focus rectangle was not correctly drawn. This has been solved.
// Added KeepVisibleOnMouseOver
// Added ReShowOnMouseOver
// Added If the Title or Content are too long to fit in the corresponding Rectangles,
// the text is truncateed and the ellipses are appended (StringTrimming).

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace GoogleReaderNotifier.WinUI
{
    /// &lt;summary&gt;
    /// TaskbarNotifier allows to display MSN style/Skinned instant messaging popups
    /// &lt;/summary&gt;
    public class TaskbarNotifier : System.Windows.Forms.Form
    {
        #region TaskbarNotifier Protected Members
        protected Bitmap BackgroundBitmap = null;
        protected Bitmap CloseBitmap = null;
        protected Point CloseBitmapLocation;
        protected Size CloseBitmapSize;
        protected Rectangle RealTitleRectangle;
        protected Rectangle RealContentRectangle;
        protected Rectangle WorkAreaRectangle;
        protected Timer timer = new Timer();
        protected TaskbarStates taskbarState = TaskbarStates.hidden;
        protected string titleText;
        protected string contentText;
        protected Color normalTitleColor = Color.FromArgb(255, 0, 0);
        protected Color hoverTitleColor = Color.FromArgb(255, 0, 0);
        protected Color normalContentColor = Color.FromArgb(0, 0, 0);
        protected Color hoverContentColor = Color.FromArgb(0, 0, 0x66);
        protected Font normalTitleFont = new Font(&quot;Arial&quot;, 12, FontStyle.Regular, GraphicsUnit.Pixel);
        protected Font hoverTitleFont = new Font(&quot;Arial&quot;, 12, FontStyle.Bold, GraphicsUnit.Pixel);
        protected Font normalContentFont = new Font(&quot;Arial&quot;, 11, FontStyle.Regular, GraphicsUnit.Pixel);
        protected Font hoverContentFont = new Font(&quot;Arial&quot;, 11, FontStyle.Regular, GraphicsUnit.Pixel);
        protected int nShowEvents;
        protected int nHideEvents;
        protected int nVisibleEvents;
        protected int nIncrementShow;
        protected int nIncrementHide;
        protected bool bIsMouseOverPopup = false;
        protected bool bIsMouseOverClose = false;
        protected bool bIsMouseOverContent = false;
        protected bool bIsMouseOverTitle = false;
        protected bool bIsMouseDown = false;
        protected bool bKeepVisibleOnMouseOver = true;   // Added Rev 002
        protected bool bReShowOnMouseOver = false;    // Added Rev 002
        #endregion

        #region TaskbarNotifier Public Members
        public Rectangle TitleRectangle;
        public Rectangle ContentRectangle;
        public bool TitleClickable = false;
        public bool ContentClickable = true;
        public bool CloseClickable = true;
        public bool EnableSelectionRectangle = true;
        public event EventHandler CloseClick = null;
        public event EventHandler TitleClick = null;
        public event EventHandler ContentClick = null;
        #endregion

        #region TaskbarNotifier Enums
        /// &lt;summary&gt;
        /// List of the different popup animation status
        /// &lt;/summary&gt;
        public enum TaskbarStates
        {
            hidden = 0,
            appearing = 1,
            visible = 2,
            disappearing = 3
        }
        #endregion

        #region TaskbarNotifier Constructor
        /// &lt;summary&gt;
        /// The Constructor for TaskbarNotifier
        /// &lt;/summary&gt;
        public TaskbarNotifier()
        {
            // Window Style
            FormBorderStyle = FormBorderStyle.None;
            WindowState = FormWindowState.Minimized;
            base.Show();
            base.Hide();
            WindowState = FormWindowState.Normal;
            ShowInTaskbar = false;
            TopMost = true;
            MaximizeBox = false;
            MinimizeBox = false;
            ControlBox = false;

            timer.Enabled = true;
            timer.Tick += new EventHandler(OnTimer);
            //CloseBitmap
            CloseBitmap = global::TyroDeveloperDLL.Properties.Resources.close;
            CloseBitmapSize = new System.Drawing.Size(16, 16);
            CloseBitmapLocation = new Point(325, 8);
            //BackgroundBitmap
            BackgroundBitmap = global::TyroDeveloperDLL.Properties.Resources.bak;
            //configuration
            TitleRectangle = new Rectangle(8, 9, 300, 25);
            ContentRectangle = new Rectangle(8, 41, 300, 100);
            
        }
        #endregion

        #region TaskbarNotifier Properties
        /// &lt;summary&gt;
        /// Get the current TaskbarState (hidden, showing, visible, hiding)
        /// &lt;/summary&gt;
        public TaskbarStates TaskbarState
        {
            get
            {
                return taskbarState;
            }
        }

        /// &lt;summary&gt;
        /// Get/Set the popup Title Text
        /// &lt;/summary&gt;
        public string TitleText
        {
            get
            {
                return titleText;
            }
            set
            {
                titleText = value;
                Refresh();
            }
        }

        /// &lt;summary&gt;
        /// Get/Set the popup Content Text
        /// &lt;/summary&gt;
        public string ContentText
        {
            get
            {
                return contentText;
            }
            set
            {
                contentText = value;
                Refresh();
            }
        }

        /// &lt;summary&gt;
        /// Get/Set the Normal Title Color
        /// &lt;/summary&gt;
        public Color NormalTitleColor
        {
            get
            {
                return normalTitleColor;
            }
            set
            {
                normalTitleColor = value;
                Refresh();
            }
        }

        /// &lt;summary&gt;
        /// Get/Set the Hover Title Color
        /// &lt;/summary&gt;
        public Color HoverTitleColor
        {
            get
            {
                return hoverTitleColor;
            }
            set
            {
                hoverTitleColor = value;
                Refresh();
            }
        }

        /// &lt;summary&gt;
        /// Get/Set the Normal Content Color
        /// &lt;/summary&gt;
        public Color NormalContentColor
        {
            get
            {
                return normalContentColor;
            }
            set
            {
                normalContentColor = value;
                Refresh();
            }
        }

        /// &lt;summary&gt;
        /// Get/Set the Hover Content Color
        /// &lt;/summary&gt;
        public Color HoverContentColor
        {
            get
            {
                return hoverContentColor;
            }
            set
            {
                hoverContentColor = value;
                Refresh();
            }
        }

        /// &lt;summary&gt;
        /// Get/Set the Normal Title Font
        /// &lt;/summary&gt;
        public Font NormalTitleFont
        {
            get
            {
                return normalTitleFont;
            }
            set
            {
                normalTitleFont = value;
                Refresh();
            }
        }

        /// &lt;summary&gt;
        /// Get/Set the Hover Title Font
        /// &lt;/summary&gt;
        public Font HoverTitleFont
        {
            get
            {
                return hoverTitleFont;
            }
            set
            {
                hoverTitleFont = value;
                Refresh();
            }
        }

        /// &lt;summary&gt;
        /// Get/Set the Normal Content Font
        /// &lt;/summary&gt;
        public Font NormalContentFont
        {
            get
            {
                return normalContentFont;
            }
            set
            {
                normalContentFont = value;
                Refresh();
            }
        }

        /// &lt;summary&gt;
        /// Get/Set the Hover Content Font
        /// &lt;/summary&gt;
        public Font HoverContentFont
        {
            get
            {
                return hoverContentFont;
            }
            set
            {
                hoverContentFont = value;
                Refresh();
            }
        }

        /// &lt;summary&gt;
        /// Indicates if the popup should remain visible when the mouse pointer is over it.
        /// Added Rev 002
        /// &lt;/summary&gt;
        public bool KeepVisibleOnMousOver
        {
            get
            {
                return bKeepVisibleOnMouseOver;
            }
            set
            {
                bKeepVisibleOnMouseOver = value;
            }
        }

        /// &lt;summary&gt;
        /// Indicates if the popup should appear again when mouse moves over it while it&#39;s disappearing.
        /// Added Rev 002
        /// &lt;/summary&gt;
        public bool ReShowOnMouseOver
        {
            get
            {
                return bReShowOnMouseOver;
            }
            set
            {
                bReShowOnMouseOver = value;
            }
        }

        protected override bool ShowWithoutActivation
        {
            get
            {
                return true;
            }
        }

        #endregion

        #region TaskbarNotifier Public Methods
        [DllImport(&quot;user32.dll&quot;)]
        private static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow);
        /// &lt;summary&gt;
        /// Displays the popup for a certain amount of time
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;strTitle&quot; /&gt;
The string which will be shown as the title of the popup
        /// &lt;param name=&quot;strContent&quot; /&gt;
The string which will be shown as the content of the popup
        /// &lt;param name=&quot;nTimeToShow&quot; /&gt;
Duration of the showing animation (in milliseconds)
        /// &lt;param name=&quot;nTimeToStay&quot; /&gt;
Duration of the visible state before collapsing (in milliseconds)
        /// &lt;param name=&quot;nTimeToHide&quot; /&gt;
Duration of the hiding animation (in milliseconds)
        /// &lt;returns&gt;Nothing&lt;/returns&gt;
        public void Show(string strTitle, string strContent, int nTimeToShow, int nTimeToStay, int nTimeToHide)
        {
            WorkAreaRectangle = Screen.GetWorkingArea(WorkAreaRectangle);
            titleText = strTitle;
            contentText = strContent;
            nVisibleEvents = nTimeToStay;
            CalculateMouseRectangles();

            // We calculate the pixel increment and the timer value for the showing animation
            int nEvents;
            if (nTimeToShow &amp;gt; 10)
            {
                nEvents = Math.Min((nTimeToShow / 10), BackgroundBitmap.Height);
                nShowEvents = nTimeToShow / nEvents;
                
                    nIncrementShow = BackgroundBitmap.Height / nEvents;
                
            }
            else
            {
                nShowEvents = 10;
               
                    nIncrementShow = BackgroundBitmap.Height;
                
            }

            // We calculate the pixel increment and the timer value for the hiding animation
            if (nTimeToHide &amp;gt; 10)
            {
                nEvents = Math.Min((nTimeToHide / 10), BackgroundBitmap.Height);
                nHideEvents = nTimeToHide / nEvents;
                nIncrementHide = BackgroundBitmap.Height / nEvents;
            }
            else
            {
                nHideEvents = 10;
                nIncrementHide = BackgroundBitmap.Height;
            }


            switch (taskbarState)
            {
                case TaskbarStates.hidden:
                    taskbarState = TaskbarStates.appearing;
                    SetBounds(WorkAreaRectangle.Right - BackgroundBitmap.Width - 17, WorkAreaRectangle.Bottom - 1, BackgroundBitmap.Width, 0);
                    timer.Interval = nShowEvents;
                    timer.Start();

                    // We Show the popup without stealing focus
                    // Although ShowWithoutActivation is overridden, using just Show() will still steal focus
                    // This focus stealing problem may be related to the fact that .TopMost is also used.
                    ShowWindow(this.Handle, 4);
                    break;

                case TaskbarStates.appearing:
                    Refresh();
                    break;

                case TaskbarStates.visible:
                    timer.Stop();
                    timer.Interval = nVisibleEvents;
                    timer.Start();
                    Refresh();
                    break;

                case TaskbarStates.disappearing:
                    timer.Stop();
                    taskbarState = TaskbarStates.visible;
                    SetBounds(WorkAreaRectangle.Right - BackgroundBitmap.Width - 17, WorkAreaRectangle.Bottom - BackgroundBitmap.Height - 1, BackgroundBitmap.Width, BackgroundBitmap.Height);
                    timer.Interval = nVisibleEvents;
                    timer.Start();
                    Refresh();
                    break;
            }
        }

        /// &lt;summary&gt;
        /// Hides the popup
        /// &lt;/summary&gt;
        /// &lt;returns&gt;Nothing&lt;/returns&gt;
        public new void Hide()
        {
            if (taskbarState != TaskbarStates.hidden)
            {
                timer.Stop();
                taskbarState = TaskbarStates.hidden;
                base.Hide();
                Visible = false;
            }
        }

        /// &lt;summary&gt;
        /// Sets the background bitmap and its transparency color
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;strFilename&quot; /&gt;
Path of the Background Bitmap on the disk
        /// &lt;param name=&quot;transparencyColor&quot; /&gt;
Color of the Bitmap which won&#39;t be visible
        /// &lt;returns&gt;Nothing&lt;/returns&gt;
        public void SetBackgroundBitmap(string strFilename, Color transparencyColor)
        {
            BackgroundBitmap = new Bitmap(strFilename);
            Width = BackgroundBitmap.Width;
            Height = BackgroundBitmap.Height;
            Region = BitmapToRegion(BackgroundBitmap, transparencyColor);
        }

        /// &lt;summary&gt;
        /// Sets the background bitmap and its transparency color
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;image&quot; /&gt;
Image/Bitmap object which represents the Background Bitmap
        /// &lt;param name=&quot;transparencyColor&quot; /&gt;
Color of the Bitmap which won&#39;t be visible
        /// &lt;returns&gt;Nothing&lt;/returns&gt;
        public void SetBackgroundBitmap(Image image, Color transparencyColor)
        {
            BackgroundBitmap = new Bitmap(image);
            Width = BackgroundBitmap.Width;
            Height = BackgroundBitmap.Height;
            Region = BitmapToRegion(BackgroundBitmap, transparencyColor);
        }

        /// &lt;summary&gt;
        /// Sets the 3-State Close Button bitmap, its transparency color and its coordinates
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;strFilename&quot; /&gt;
Path of the 3-state Close button Bitmap on the disk (width must a multiple of 3)
        /// &lt;param name=&quot;transparencyColor&quot; /&gt;
Color of the Bitmap which won&#39;t be visible
        /// &lt;param name=&quot;position&quot; /&gt;
Location of the close button on the popup
        /// &lt;returns&gt;Nothing&lt;/returns&gt;
        public void SetCloseBitmap(string strFilename, Color transparencyColor, Point position)
        {
            CloseBitmap = new Bitmap(strFilename);
            CloseBitmap.MakeTransparent(transparencyColor);
            CloseBitmapSize = new Size(CloseBitmap.Width / 3, CloseBitmap.Height);
            CloseBitmapLocation = position;
        }

        /// &lt;summary&gt;
        /// Sets the 3-State Close Button bitmap, its transparency color and its coordinates
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;image&quot; /&gt;
Image/Bitmap object which represents the 3-state Close button Bitmap (width must be a multiple of 3)
        /// &lt;param name=&quot;transparencyColor&quot; /&gt;
Color of the Bitmap which won&#39;t be visible
        /// /// &lt;param name=&quot;position&quot; /&gt;
Location of the close button on the popup
        /// &lt;returns&gt;Nothing&lt;/returns&gt;
        public void SetCloseBitmap(Image image, Color transparencyColor, Point position)
        {
            CloseBitmap = new Bitmap(image);
            CloseBitmap.MakeTransparent(transparencyColor);
            CloseBitmapSize = new Size(CloseBitmap.Width / 3, CloseBitmap.Height);
            CloseBitmapLocation = position;
        }
        #endregion

        #region TaskbarNotifier Protected Methods
        protected void DrawCloseButton(Graphics grfx)
        {
            if (CloseBitmap != null)
            {
                Rectangle rectDest = new Rectangle(CloseBitmapLocation, CloseBitmapSize);
                Rectangle rectSrc;

                if (bIsMouseOverClose)
                {
                    if (bIsMouseDown)
                        rectSrc = new Rectangle(new Point(CloseBitmapSize.Width * 2, 0), CloseBitmapSize);
                    else
                        rectSrc = new Rectangle(new Point(CloseBitmapSize.Width, 0), CloseBitmapSize);
                }
                else
                    rectSrc = new Rectangle(new Point(0, 0), CloseBitmapSize);


                grfx.DrawImage(CloseBitmap, rectDest, rectSrc, GraphicsUnit.Pixel);
            }
        }

        protected void DrawText(Graphics grfx)
        {
            if (titleText != null &amp;amp;&amp;amp; titleText.Length != 0)
            {
                StringFormat sf = new StringFormat();
                sf.Alignment = StringAlignment.Near;
                sf.LineAlignment = StringAlignment.Center;
                sf.FormatFlags = StringFormatFlags.NoWrap;
                sf.Trimming = StringTrimming.EllipsisCharacter;    // Added Rev 002
                if (bIsMouseOverTitle)
                    grfx.DrawString(titleText, hoverTitleFont, new SolidBrush(hoverTitleColor), TitleRectangle, sf);
                else
                    grfx.DrawString(titleText, normalTitleFont, new SolidBrush(normalTitleColor), TitleRectangle, sf);
            }

            if (contentText != null &amp;amp;&amp;amp; contentText.Length != 0)
            {
                StringFormat sf = new StringFormat();
                sf.Alignment = StringAlignment.Center;
                sf.LineAlignment = StringAlignment.Center;
                sf.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
                sf.Trimming = StringTrimming.Word;       // Added Rev 002

                if (bIsMouseOverContent)
                {
                    grfx.DrawString(contentText, hoverContentFont, new SolidBrush(hoverContentColor), ContentRectangle, sf);
                    if (EnableSelectionRectangle)
                        ControlPaint.DrawBorder3D(grfx, RealContentRectangle, Border3DStyle.Etched, Border3DSide.Top | Border3DSide.Bottom | Border3DSide.Left | Border3DSide.Right);

                }
                else
                    grfx.DrawString(contentText, normalContentFont, new SolidBrush(normalContentColor), ContentRectangle, sf);
            }
        }

        protected void CalculateMouseRectangles()
        {
            Graphics grfx = CreateGraphics();
            StringFormat sf = new StringFormat();
            sf.Alignment = StringAlignment.Center;
            sf.LineAlignment = StringAlignment.Center;
            sf.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
            SizeF sizefTitle = grfx.MeasureString(titleText, hoverTitleFont, TitleRectangle.Width, sf);
            SizeF sizefContent = grfx.MeasureString(contentText, hoverContentFont, ContentRectangle.Width, sf);
            grfx.Dispose();

            // Added Rev 002
            //We should check if the title size really fits inside the pre-defined title rectangle
            if (sizefTitle.Height &amp;gt; TitleRectangle.Height)
            {
                RealTitleRectangle = new Rectangle(TitleRectangle.Left, TitleRectangle.Top, TitleRectangle.Width, TitleRectangle.Height);
            }
            else
            {
                RealTitleRectangle = new Rectangle(TitleRectangle.Left, TitleRectangle.Top, (int)sizefTitle.Width, (int)sizefTitle.Height);
            }
            RealTitleRectangle.Inflate(0, 2);

            // Added Rev 002
            //We should check if the Content size really fits inside the pre-defined Content rectangle
            if (sizefContent.Height &amp;gt; ContentRectangle.Height)
            {
                RealContentRectangle = new Rectangle((ContentRectangle.Width - (int)sizefContent.Width) / 2 + ContentRectangle.Left, ContentRectangle.Top, (int)sizefContent.Width, ContentRectangle.Height);
            }
            else
            {
                RealContentRectangle = new Rectangle((ContentRectangle.Width - (int)sizefContent.Width) / 2 + ContentRectangle.Left, (ContentRectangle.Height - (int)sizefContent.Height) / 2 + ContentRectangle.Top, (int)sizefContent.Width, (int)sizefContent.Height);
            }
            RealContentRectangle.Inflate(0, 2);
        }

        protected Region BitmapToRegion(Bitmap bitmap, Color transparencyColor)
        {
            if (bitmap == null)
                throw new ArgumentNullException(&quot;Bitmap&quot;, &quot;Bitmap cannot be null!&quot;);

            int height = bitmap.Height;
            int width = bitmap.Width;

            GraphicsPath path = new GraphicsPath();

            for (int j = 0; j &amp;lt; height; j++)
                for (int i = 0; i &amp;lt; width; i++)
                {
                    if (bitmap.GetPixel(i, j) == transparencyColor)
                        continue;

                    int x0 = i;

                    while ((i &amp;lt; width) &amp;amp;&amp;amp; (bitmap.GetPixel(i, j) != transparencyColor))
                        i++;

                    path.AddRectangle(new Rectangle(x0, j, i - x0, 1));
                }

            Region region = new Region(path);
            path.Dispose();
            return region;
        }
        #endregion

        #region TaskbarNotifier Events Overrides
        protected void OnTimer(Object obj, EventArgs ea)
        {
            switch (taskbarState)
            {
                case TaskbarStates.appearing:
                    if (Height &amp;lt; BackgroundBitmap.Height)
                    {
                        SetBounds(Left, Top - nIncrementShow, Width, Height + nIncrementShow);
                        Opacity = ((Double)Height / BackgroundBitmap.Height);
                    }
                    else
                    {
                        timer.Stop();
                        Opacity = 1;
                        Height = BackgroundBitmap.Height;
                        timer.Interval = nVisibleEvents;
                        taskbarState = TaskbarStates.visible;
                        timer.Start();
                    }
                    break;

                case TaskbarStates.visible:
                    timer.Stop();
                    Opacity = 1;
                    timer.Interval = nHideEvents;
                    // Added Rev 002
                    if ((bKeepVisibleOnMouseOver &amp;amp;&amp;amp; !bIsMouseOverPopup) || (!bKeepVisibleOnMouseOver))
                    {
                        taskbarState = TaskbarStates.disappearing;
                    }
                    //taskbarState = TaskbarStates.disappearing;  // Rev 002
                    timer.Start();
                    break;

                case TaskbarStates.disappearing:
                    // Added Rev 002
                    if (bReShowOnMouseOver &amp;amp;&amp;amp; bIsMouseOverPopup)
                    {
                        taskbarState = TaskbarStates.appearing;
                    }
                    else
                    {
                        if (Top &amp;lt; WorkAreaRectangle.Bottom)
                        {
                            SetBounds(Left, Top + nIncrementHide, Width, Height - nIncrementHide);
                            Opacity = ((Double)Height / BackgroundBitmap.Height);
                        }
                        else
                        {
                            Hide();
                        }
                    }
                    break;
            }

        }

        protected override void OnMouseEnter(EventArgs ea)
        {
            base.OnMouseEnter(ea);
            bIsMouseOverPopup = true;
            Refresh();
        }

        protected override void OnMouseLeave(EventArgs ea)
        {
            base.OnMouseLeave(ea);
            bIsMouseOverPopup = false;
            bIsMouseOverClose = false;
            bIsMouseOverTitle = false;
            bIsMouseOverContent = false;
            Refresh();
        }

        protected override void OnMouseMove(MouseEventArgs mea)
        {
            base.OnMouseMove(mea);

            bool bContentModified = false;

            if ((mea.X &amp;gt; CloseBitmapLocation.X) &amp;amp;&amp;amp; (mea.X &amp;lt; CloseBitmapLocation.X + CloseBitmapSize.Width) &amp;amp;&amp;amp; (mea.Y &amp;gt; CloseBitmapLocation.Y) &amp;amp;&amp;amp; (mea.Y &amp;lt; CloseBitmapLocation.Y + CloseBitmapSize.Height) &amp;amp;&amp;amp; CloseClickable)
            {
                if (!bIsMouseOverClose)
                {
                    bIsMouseOverClose = true;
                    bIsMouseOverTitle = false;
                    bIsMouseOverContent = false;
                    Cursor = Cursors.Hand;
                    bContentModified = true;
                }
            }
            else if (RealContentRectangle.Contains(new Point(mea.X, mea.Y)) &amp;amp;&amp;amp; ContentClickable)
            {
                if (!bIsMouseOverContent)
                {
                    bIsMouseOverClose = false;
                    bIsMouseOverTitle = false;
                    bIsMouseOverContent = true;
                    Cursor = Cursors.Hand;
                    bContentModified = true;
                }
            }
            else if (RealTitleRectangle.Contains(new Point(mea.X, mea.Y)) &amp;amp;&amp;amp; TitleClickable)
            {
                if (!bIsMouseOverTitle)
                {
                    bIsMouseOverClose = false;
                    bIsMouseOverTitle = true;
                    bIsMouseOverContent = false;
                    Cursor = Cursors.Hand;
                    bContentModified = true;
                }
            }
            else
            {
                if (bIsMouseOverClose || bIsMouseOverTitle || bIsMouseOverContent)
                    bContentModified = true;

                bIsMouseOverClose = false;
                bIsMouseOverTitle = false;
                bIsMouseOverContent = false;
                Cursor = Cursors.Default;
            }

            if (bContentModified)
                Refresh();
        }

        protected override void OnMouseDown(MouseEventArgs mea)
        {
            base.OnMouseDown(mea);
            bIsMouseDown = true;

            if (bIsMouseOverClose)
                Refresh();
        }

        protected override void OnMouseUp(MouseEventArgs mea)
        {
            base.OnMouseUp(mea);
            bIsMouseDown = false;

            if (bIsMouseOverClose)
            {
                Hide();

                if (CloseClick != null)
                    CloseClick(this, new EventArgs());
            }
            else if (bIsMouseOverTitle)
            {
                if (TitleClick != null)
                    TitleClick(this, new EventArgs());
            }
            else if (bIsMouseOverContent)
            {
                if (ContentClick != null)
                    ContentClick(this, new EventArgs());
            }
        }

        protected override void OnPaintBackground(PaintEventArgs pea)
        {
            Graphics grfx = pea.Graphics;
            grfx.PageUnit = GraphicsUnit.Pixel;

            Graphics offScreenGraphics;
            Bitmap offscreenBitmap;

            offscreenBitmap = new Bitmap(BackgroundBitmap.Width, BackgroundBitmap.Height);
            offScreenGraphics = Graphics.FromImage(offscreenBitmap);

            if (BackgroundBitmap != null)
            {
                offScreenGraphics.DrawImage(BackgroundBitmap, 0, 0, BackgroundBitmap.Width, BackgroundBitmap.Height);
            }

            DrawCloseButton(offScreenGraphics);
            DrawText(offScreenGraphics);

            grfx.DrawImage(offscreenBitmap, 0, 0);
        }
        #endregion
    }
}
&lt;/pvdd@devbrains.be&gt;&lt;/pre&gt;
&lt;br /&gt;
Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com/&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/598293445574846582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/taskbar-notifier-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/598293445574846582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/598293445574846582'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/taskbar-notifier-c.html' title='Taskbar Notifier C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-7963749246205894963</id><published>2012-03-17T23:13:00.001-06:00</published><updated>2012-03-17T23:13:54.944-06:00</updated><title type='text'>Read and Write the Windows Registry C#</title><content type='html'>&lt;pre class=&quot;brush: csharp&quot;&gt;
using System;
using Microsoft.Win32;

namespace TyroDeveloperDLL
{
    public class WindowsRegistry
    {
        RegistryKey registryAccess;
        public void WriteValue(string pKey, string pValue) {
            registryAccess = Registry.Users;
            registryAccess = registryAccess.OpenSubKey(&quot;.DEFAULT&quot;, true);

            registryAccess.SetValue(pKey, pValue, RegistryValueKind.String);

            registryAccess.Close();
        }
        public string ReadValue(string pKey, string pDefault) {
            registryAccess = Registry.Users;
            string val = &quot;&quot;;
            registryAccess = registryAccess.OpenSubKey(&quot;.DEFAULT&quot;, true);

            val = registryAccess.GetValue(pKey, pDefault).ToString();

            registryAccess.Close();
            return (val);
        }
    }
}
&lt;/pre&gt;


&lt;br /&gt;

Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;

&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/7963749246205894963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/read-and-write-windows-registry-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/7963749246205894963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/7963749246205894963'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/read-and-write-windows-registry-c.html' title='Read and Write the Windows Registry C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-1233533952963654310</id><published>2012-03-17T16:42:00.001-06:00</published><updated>2012-03-17T17:13:21.205-06:00</updated><title type='text'>Only Numeric Text Box C#</title><content type='html'>&lt;pre class=&quot;brush: csharp&quot;&gt;using System;
using System.Collections.Generic;
using System.Text;

namespace TyroDeveloperDLL
{
    public class TextBoxCustom{

        static int _decimales = 3;

        public int Decimales{
            get {
                return (_decimales);
            }
            set {
                _decimales = value;
            }
        }

        public static void OnlyNumeric(System.Windows.Forms.TextBox _TextBox, System.Windows.Forms.KeyPressEventArgs e){
            if (e.KeyChar == 8){
                e.Handled = false;
                return;
            }
            if (_TextBox.Text.Length == 0) { 
                if((e.KeyChar == Convert.ToChar(&quot;-&quot;))){
                    e.Handled = false;
                    return;
                }
            }
            bool IsDec = false;
            int nroDec = 0;
            for (int i = 0; i &amp;lt; _TextBox.Text.Length; i++){
                if (_TextBox.Text[i] == &#39;.&#39;)
                    IsDec = true;

                if (IsDec &amp;amp;&amp;amp; nroDec++ &amp;gt;= _decimales){
                    e.Handled = true;
                    return;
                }
            }
            if (e.KeyChar &amp;gt;= 48 &amp;amp;&amp;amp; e.KeyChar &amp;lt;= 57)
                e.Handled = false;
            else if (e.KeyChar == 46)
                e.Handled = (IsDec) ? true : false;
            else
                e.Handled = true;
        }

        public static void OnlyLetters(System.Windows.Forms.TextBox textBox, System.Windows.Forms.KeyPressEventArgs e){
            if (Char.IsLetter(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        public static void OnlyLetterAndNumber(System.Windows.Forms.TextBox _TextBox, System.Windows.Forms.KeyPressEventArgs e){
            if (Char.IsLetter(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsNumber(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        public static void OnlyKeys(System.Windows.Forms.TextBox textBox, System.Windows.Forms.KeyPressEventArgs e){
            if (Char.IsLetter(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsNumber(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }
    }
}
&lt;/pre&gt;
&lt;br /&gt;
Please visit: &lt;a href=&quot;http://www.tyrodeveloper.com/&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/1233533952963654310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/only-numeric-text-box-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1233533952963654310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/1233533952963654310'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/only-numeric-text-box-c.html' title='Only Numeric Text Box C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5435020797457051306.post-908275719970291873</id><published>2012-03-17T16:36:00.002-06:00</published><updated>2012-03-17T17:15:52.675-06:00</updated><title type='text'>Bill PDF C#</title><content type='html'>&lt;pre class=&quot;brush:csharp&quot;&gt;
using System;
//using System.Windows.Forms;
//using System.Drawing;
//using System.Drawing.Printing;
using System.Collections;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
namespace TyroDeveloperDLL
{
    public class BillPDF
    {
        public BillPDF()
        {
            
            myBill.AddAuthor(&quot;TyroDeveloper&quot;);
            myBill.AddCreator(&quot;JUAN GABRIEL CASTILLO TURRUBIATES&quot;);
            myBill.AddTitle(&quot;Ticket de Venta&quot;);
        }

        PdfWriter writer = null;
        PdfContentByte cb = null;

        ArrayList headerLines = new ArrayList();
        ArrayList subHeaderLines = new ArrayList();
        ArrayList items = new ArrayList();
        ArrayList totales = new ArrayList();
        ArrayList footerLines = new ArrayList();
        private string headerImage = &quot;&quot;;
        bool _DrawItemHeaders = true;
        int startItemsOn = 20;
        string path = &quot;&quot;;
        string file_name = &quot;&quot;;
        //int maxChar = 100;
        int maxCharDescription = 50;

        int imageHeight = 0;

        float idProductX = 0;
        float descProductX = 0;
        float amountProductX = 0;
        float qtyProductX = 0;
        float priceProductX = 0;
        float topMargin = 5;
        
        static int fontSize = 12;
        static BaseFont bfCourier = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1252, false);
        static Font font = new Font(bfCourier, fontSize, Font.NORMAL, Color.BLACK);

        Document myBill = new Document(PageSize.LETTER, 0, 0, 0, 0); //Aqui se ponen todos los objetos

        string line = &quot;&quot;;

        #region Properties
        
        public Int32 StartItemsOn { get { return startItemsOn; } set { startItemsOn = value; } }
        public float IdProductX { get { return idProductX; } set { idProductX = value; } }
        public float DescProductX { get { return descProductX; } set { descProductX = value; } }
        public float AmountProductX { get { return amountProductX; } set { amountProductX = value; } }
        public float QtyProductX { get { return qtyProductX; } set { qtyProductX = value; } }
        public float PriceProductX { get { return priceProductX; } set { priceProductX = value; } }
        public String Path
        {
            get { return path; }
            set { path = value; }
        }

        public String FileName
        {
            get { return file_name; }
            set { file_name = value; }
        }

        public String FullFileName
        {
            get { return (String.Format(&quot;{0}{1}&quot;, path, file_name)); }
        }
        public String HeaderImage
        {
            get { return headerImage; }
            set { if (headerImage != value) headerImage = value; }
        }

       

        public bool DrawItemHeaders
        {
            set { _DrawItemHeaders = value; }
        }

        public int MaxCharDescription
        {
            get { return maxCharDescription; }
            set { if (value != maxCharDescription) maxCharDescription = value; }
        }

        public int FontSize
        {
            get { return fontSize; }
            set { if (value != fontSize) fontSize = value; }
        }

        public Font FontName
        {
            get { return font; }
            set { if (value != font) font = value; }
        }
        //CustomerName
        string customerName = &quot;&quot;;
        public String CustomerName {get { return customerName; }set { customerName = value; }}
        float customerNameX = 0;
        public float CustomerNameX { get { return customerNameX; } set { customerNameX = value; }}
        float customerNameY = 0;
        public float CustomerNameY {get { return customerNameY; }set { customerNameY = value; }}
        //BillID
        string billID = &quot;&quot;;
        public String BillID {get { return billID; } set { billID = value; } }
        float billIDX = 0;
        public float BillIDX { get { return billIDX; } set { billIDX = value; } }
        float billIDY = 0;
        public float BillIDY { get { return billIDY; } set { billIDY = value; } }
        //BillDate
        string billDate = &quot;&quot;;
        public String BillDate { get { return billDate; } set { billDate = value; } }
        float billDateX = 0;
        public float BillDateX { get { return billDateX; } set { billDateX = value; } }
        float billDateY = 0;
        public float BillDateY { get { return billDateY; } set { billDateY = value; } }
        //CustomerAddress
        string customerAddress = &quot;&quot;;
        public String CustomerAddress { get { return customerAddress; } set { customerAddress = value; } }
        float customerAddressX = 0;
        public float CustomerAddressX { get { return customerAddressX; } set { customerAddressX = value; } }
        float customerAddressY = 0;
        public float CustomerAddressY { get { return customerAddressY; } set { customerAddressY = value; } }
        //CustomerCity
        string customerCity = &quot;&quot;;
        public String CustomerCity { get { return customerCity; } set { customerCity = value; } }
        float customerCityX = 0;
        public float CustomerCityX { get { return customerCityX; } set { customerCityX = value; } }
        float customerCityY = 0;
        public float CustomerCityY { get { return customerCityY; } set { customerCityY = value; } }
        //CustomerRFC
        string customerRFC = &quot;&quot;;
        public String CustomerRFC { get { return customerRFC; } set { customerRFC = value; } }
        float customerRFCX = 0;
        public float CustomerRFCX { get { return customerRFCX; } set { customerRFCX = value; } }
        float customerRFCY = 0;
        public float CustomerRFCY { get { return customerRFCY; } set { customerRFCY = value; } }
        //CustomerPostalCode
        string customerPostalCode = &quot;&quot;;
        public String CustomerPostalCode { get { return customerPostalCode; } set { customerPostalCode = value; } }
        float customerPostalCodeX = 0;
        public float CustomerPostalCodeX { get { return customerPostalCodeX; } set { customerPostalCodeX = value; } }
        float customerPostalCodeY = 0;
        public float CustomerPostalCodeY { get { return customerPostalCodeY; } set { customerPostalCodeY = value; } }
        //BillTotalString
        string billTotalString = &quot;&quot;;
        public String BillTotalString { get { return billTotalString; } set { billTotalString = value; } }
        float billTotalStringX = 0;
        public float BillTotalStringX { get { return billTotalStringX; } set { billTotalStringX = value; } }
        float billTotalStringY = 0;
        public float BillTotalStringY { get { return billTotalStringY; } set { billTotalStringY = value; } }
        //BillSubTotal
        string billSubTotal = &quot;&quot;;
        public String BillSubTotal { get { return billSubTotal; } set { billSubTotal = value; } }
        float billSubTotalX = 0;
        public float BillSubTotalX { get { return billSubTotalX; } set { billSubTotalX = value; } }
        float billSubTotalY = 0;
        public float BillSubTotalY { get { return billSubTotalY; } set { billSubTotalY = value; } }
        //BillTax
        string billTax = &quot;&quot;;
        public String BillTax { get { return billTax; } set { billTax = value; } }
        float billTaxX = 0;
        public float BillTaxX { get { return billTaxX; } set { billTaxX = value; } }
        float billTaxY = 0;
        public float BillTaxY { get { return billTaxY; } set { billTaxY = value; } }
        //billTotal
        string billTotal = &quot;&quot;;
        public String BillTotal { get { return billTotal; } set { billTotal = value; } }
        float billTotalX = 0;
        public float BillTotalX { get { return billTotalX;  } set { billTotalX = value; } }
        float billTotalY = 0;
        public float BillTotalY { get { return billTotalY;  } set { billTotalY = value; } }
        #endregion

        #region HeaderBill
        public void SetBillID(string Value, float XPosition, float YPosition) {
            billID = Value;
            billIDX = XPosition;
            billIDY = YPosition;
        }
        public void SetBillDate(string Value, float XPosition, float YPosition) {
            billDate = Value;
            billDateX = XPosition;
            billDateY = YPosition;
        }
        public void SetBillSubTotal(string Value, float XPosition, float YPosition) {
            billSubTotal = Value;
            billSubTotalX = XPosition;
            billSubTotalY = YPosition;
        }
        public void SetBillTax(string Value, float XPosition, float YPosition) {
            billTax = Value;
            billTaxX = XPosition;
            billTaxY = YPosition;
        }
        public void SetBillTotal(string Value, float XPosition, float YPosition) {
            billTotal = Value;
            billTotalX = XPosition;
            billTotalY = YPosition;
        }
        public void SetBillTotalString(string Value, float XPosition, float YPosition) {
            billTotalString = Value;
            billTotalStringX = XPosition;
            billTotalStringY = YPosition;
        }
        public void SetCustomerName(string Value, float XPosition, float YPosition) {
            customerName = Value;
            customerNameY = YPosition;
            customerNameX = XPosition;
        }
        public void SetCustomerAddress(string Value, float XPosition, float YPosition) {
            customerAddress = Value;
            customerAddressX = XPosition;
            customerAddressY = YPosition;
        }
        public void SetCustomerCity(string Value, float XPosition, float YPosition) {
            customerCity = Value;
            customerCityX = XPosition;
            customerCityY = YPosition;
        }
        public void SetCustomerRFC(string Value, float XPosition, float YPosition) {
            customerRFC = Value;
            customerRFCX = XPosition;
            customerRFCY = YPosition;
        }
        public void SetCustomerPostalCode(string Value, float XPosition, float YPosition) {
            customerPostalCode = Value;
            customerPostalCodeX = XPosition;
            customerPostalCodeY = YPosition;
        }
        #endregion

       

        public void AddItem(string cantidad, string item, string price, string unitPrice)
        {
            BillOrderItem newItem = new BillOrderItem(&#39;?&#39;);
            items.Add(newItem.GenerateItem(cantidad, item, price,unitPrice));
        }

       
        private void DrawEspacio()
        {
            line = &quot;&quot;;

            cb.SetTextMatrix(idProductX, YPosition());
            cb.SetFontAndSize(font.BaseFont, fontSize);
            cb.ShowText(line);

            startItemsOn++;
        }

        public bool Print()
        {
            try
            {
                //aqui para generar el PDF
                writer = PdfWriter.GetInstance(myBill, new FileStream(path + file_name, FileMode.Create));
                
                myBill.Open();
                cb = writer.DirectContent;
                cb.SetFontAndSize(font.BaseFont, fontSize);
                cb.BeginText();


                DrawInfo();
                DrawItems();
                

                cb.EndText();
                myBill.Close();

                return true;
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
        private void DrawInfo() {
            //CustomerName
            cb.SetTextMatrix(customerNameX, myBill.PageSize.Height - customerNameY);
            cb.ShowText(customerName);
            //BillID
            cb.SetTextMatrix(billIDX, myBill.PageSize.Height - billIDY);
            cb.ShowText(billID);
            //BillDate
            cb.SetTextMatrix(billDateX, myBill.PageSize.Height - billDateY);
            cb.ShowText(billDate);
            //CustomerAddress
            cb.SetTextMatrix(customerAddressX, myBill.PageSize.Height - customerAddressY);
            cb.ShowText(customerAddress);
            //CustomerCity
            cb.SetTextMatrix(customerCityX, myBill.PageSize.Height - customerCityY);
            cb.ShowText(customerCity);
            //CustomerRFC
            cb.SetTextMatrix(customerRFCX, myBill.PageSize.Height - customerRFCY);
            cb.ShowText(customerRFC);
            //CustomerPostalCode
            cb.SetTextMatrix(customerPostalCodeX, myBill.PageSize.Height - customerPostalCodeY);
            cb.ShowText(customerPostalCode);
            //TotalString
            cb.SetTextMatrix(billTotalStringX, myBill.PageSize.Height - billTotalStringY);
            cb.ShowText(billTotalString);
            //SubTotal
            //cb.SetTextMatrix(billSubTotalX, myBill.PageSize.Height - billSubTotalY);
            //cb.ShowText(billSubTotal);
            cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, billSubTotal, billSubTotalX, myBill.PageSize.Height - billSubTotalY, 0);
            //Tax
            //cb.SetTextMatrix(billTaxX, myBill.PageSize.Height - billTaxY);
            //cb.ShowText(billTax);
            cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, billTax, billTaxX, myBill.PageSize.Height - billTaxY, 0);
            //Total
            //cb.SetTextMatrix(billTotalX, myBill.PageSize.Height - billTotalY);
            //cb.ShowText(billTotal);
            cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, billTotal, billTotalX, myBill.PageSize.Height - billTotalY, 0);

        }
        private float YPosition()
        {
            return (myBill.PageSize.Height - (topMargin + (startItemsOn * font.CalculatedSize + imageHeight)));
        }

        private void DrawItems()
        {
            
            BillOrderItem ordIt = new BillOrderItem(&#39;?&#39;);

            foreach (string item in items)
            {
                //cantidad
                line = ordIt.GetItemCantidad(item);
                cb.SetTextMatrix(qtyProductX, YPosition());
                cb.ShowText(line);

                //precio(Monto)
                line = ordIt.GetItemPrice(item);
                cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, line, amountProductX, YPosition(), 0);

                //PRECIO_VENTA
                line = ordIt.GetItemUnitPrice(item);
                cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, line, priceProductX, YPosition(), 0);

                //Descripcion
                string name = ordIt.GetItemName(item);
                
                if (name.Length &gt; maxCharDescription)
                {
                    int currentChar = 0;
                    int itemLenght = name.Length;

                    while (itemLenght &gt; maxCharDescription)
                    {
                        line = ordIt.GetItemName(item);

                        cb.SetTextMatrix(descProductX, YPosition());
                        cb.ShowText(line.Substring(currentChar, maxCharDescription));

                        startItemsOn++;
                        currentChar += maxCharDescription;
                        itemLenght -= maxCharDescription;
                    }

                    line = ordIt.GetItemName(item);

                    cb.SetTextMatrix(descProductX, YPosition());
                    cb.ShowText(line.Substring(currentChar, line.Length - currentChar));

                    startItemsOn++;
                }
                else
                {
                    cb.SetTextMatrix(descProductX, YPosition());
                    cb.ShowText(ordIt.GetItemName(item));

                    startItemsOn++;
                }
            }

        }
    
    }

    public class BillOrderItem
    {
        char[] delimitador = new char[] { &#39;?&#39; };

        public BillOrderItem(char delimit)
        {
            delimitador = new char[] { delimit };
        }
        //CANTIDAD
        public string GetItemCantidad(string BillOrderItem)
        {
            string[] delimitado = BillOrderItem.Split(delimitador);
            return delimitado[0];
        }
        //DESCRIPCION
        public string GetItemName(string BillOrderItem)
        {
            string[] delimitado = BillOrderItem.Split(delimitador);
            return delimitado[1];
        }
        //IMPORTE
        public string GetItemPrice(string BillOrderItem)
        {
            string[] delimitado = BillOrderItem.Split(delimitador);
            return delimitado[2];
        }
        //precio unitario
        public string GetItemUnitPrice(string BillOrderItem)
        {
            string[] delimitado = BillOrderItem.Split(delimitador);
            return delimitado[3];
        }
        //GENERAR
        public string GenerateItem(string cantidad, string itemName, string price, string unitPrice)
        {
            return cantidad + delimitador[0] + itemName + delimitador[0] + price + delimitador[0] + unitPrice;
        }
    }  
}
&lt;/pre&gt;
&lt;br /&gt;
Please visit :&lt;a href=&quot;http://www.tyrodeveloper.com/&quot;&gt;www.TyroDeveloper.com&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Please Click on +1&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://developerscripts.blogspot.com/feeds/908275719970291873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://developerscripts.blogspot.com/2012/03/bill-pdf-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/908275719970291873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5435020797457051306/posts/default/908275719970291873'/><link rel='alternate' type='text/html' href='http://developerscripts.blogspot.com/2012/03/bill-pdf-c.html' title='Bill PDF C#'/><author><name>JUAN GABRIEL CASTILLO</name><uri>http://www.blogger.com/profile/16893991344593161749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>