<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>MBLog ovvero Massimo Bonanni Log</title>
        <link>http://blogs.ugidotnet.org/3110/Default.aspx</link>
        <description>Lo zibaldone di varie amenità su .NET</description>
        <language>it-IT</language>
        <copyright>Massimo Bonanni</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <image>
            <title>MBLog ovvero Massimo Bonanni Log</title>
            <url>http://blogs.ugidotnet.org/images/RSS2Image.gif</url>
            <link>http://blogs.ugidotnet.org/3110/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>VB.NET: Ricavare tutte le caption delle finestre aperte</title>
            <link>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1250.aspx</link>
            <description>&lt;P&gt;La seguente subroutine in VB.NET permette di ricavare le caption di tutte le finestre aperte:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Public Sub GetAllWindowsCaption(ByRef Captions As System.Collections.ArrayList)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim proc As System.Diagnostics.Process&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Captions.Clear()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each proc In Process.GetProcesses()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If proc.MainWindowTitle.Length &amp;gt; 0 Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Captions.Add(proc.MainWindowTitle)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next proc&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/P&gt;
&lt;P&gt;Al ritorno dalla subroutine, la collections Captions contiene la lista delle caption.&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/3110/aggbug/1250.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Massimo Bonanni</dc:creator>
            <guid>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1250.aspx</guid>
            <pubDate>Tue, 18 Nov 2003 13:00:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1250.aspx#feedback</comments>
            <slash:comments>140</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/3110/comments/commentRss/1250.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/3110/services/trackbacks/1250.aspx</trackback:ping>
        </item>
        <item>
            <title>VB.NET: Ricavare l'occupazione di memoria di un processo</title>
            <link>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1249.aspx</link>
            <description>&lt;P&gt;La seguente function consente di recuperare l'occupazione di memoria (in bytes) di un processo attivo sulla macchina locale o su di una macchina in rete.&lt;BR&gt;I parametri in input sono:&lt;BR&gt;MachineName = nome della macchina;&lt;BR&gt;Processname = nome del processo.&lt;/P&gt;
&lt;P&gt;La funzione restituisce MEMORY_EXCEPTION se la macchina remota non esiste, MEMORY_NOPROCESS se il processo non è attivo oppure lo spazio di memoria occupato dal processo (come intero a 64 bit).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Const MEMORY_EXCEPTION As Int64 = -2&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Const MEMORY_NOPROCESS As Int64 = -1&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Function GetProcessMemory(ByVal MachineName As String, ByVal ProcessName As String) As Int64&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oProcess As Process&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oProcesses As Process()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If String.Compare(MachineName, "") = 0 Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oProcesses = Process.GetProcesses()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oProcesses = Process.GetProcesses(MachineName)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each oProcess In oProcesses&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If String.Compare(oProcess.ProcessName.ToLower(), ProcessName.ToLower()) = 0 Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return oProcess.WorkingSet&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return MEMORY_EXCEPTION&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return MEMORY_NOPROCESS&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/3110/aggbug/1249.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Massimo Bonanni</dc:creator>
            <guid>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1249.aspx</guid>
            <pubDate>Tue, 18 Nov 2003 12:59:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1249.aspx#feedback</comments>
            <slash:comments>31</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/3110/comments/commentRss/1249.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/3110/services/trackbacks/1249.aspx</trackback:ping>
        </item>
        <item>
            <title>VB.NET: Recuperare la collection dei controlli presente in una form</title>
            <link>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1247.aspx</link>
            <description>&lt;P&gt;La seguente function in VB.NET permette di ricavare, in maniera ricorsiva, l'insieme dei controlli presenti all'interno di una form.&lt;BR&gt;L'argomento Form è la form da cui ricavare l'elenco dei controlli ed&amp;nbsp; è di tipo Object per permettere la ricorsione sui controlli all'interno di controlli di tipo Container.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Public Sub GetAllControls(ByVal Form As System.Object, ByRef Controls As System.Collections.ArrayList)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim ctrl As System.Windows.Forms.Control&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;For Each ctrl In Form.controls&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;If ctrl.Controls.Count &amp;gt; 0 Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;GetAllControls(ctrl, Controls)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Controls.Add(ctrl)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Next&lt;/P&gt;
&lt;P&gt;&amp;nbsp;End Sub&amp;nbsp; &lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/3110/aggbug/1247.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Massimo Bonanni</dc:creator>
            <guid>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1247.aspx</guid>
            <pubDate>Tue, 18 Nov 2003 12:58:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1247.aspx#feedback</comments>
            <slash:comments>302</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/3110/comments/commentRss/1247.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/3110/services/trackbacks/1247.aspx</trackback:ping>
        </item>
        <item>
            <title>VB.NET: Recuperare l'occupazione di una directory</title>
            <link>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1248.aspx</link>
            <description>&lt;P&gt;La seguente function in VB.NET permette di ricavare, in maniera ricorsiva, l'occupazione su disco (in Kbytes) di una directory.&lt;BR&gt;La variabile Path contiene il percorso della directory (senza il carattere terminatore "\").&lt;BR&gt;La funzione ritorna lo spazio occupato oppure -1 se si è verificato un errore&lt;BR&gt;Il costrutto try/catch è utilizzato per garantire che la funzione non vada mai in errore.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Public Function GetDirSize(ByVal Path As System.String) As Int64&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dirdata() As System.IO.DirectoryInfo&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim filedata() As System.IO.FileInfo&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim file As System.IO.FileInfo&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dimension As Int64 = 0&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dir As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(Path)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Scansione dei file della directory&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filedata = dir.GetFiles("*.*")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each file In filedata&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dimension = dimension + file.Length&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Scansione delle sottodirectory&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dirdata = dir.GetDirectories("*")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each dir In dirdata&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dimension = dimension + GetDirSize(dir.FullName)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return dimension&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return -1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;BR&gt;&amp;nbsp; End Function&lt;/P&gt;
&lt;P&gt;Vengono utilizzate le classi DirectoryInfo e FileInfo e non le classi Directory e File poichè le prime non eseguono le autorizzazioni di sicurezza ogni volta che viene utilizzato un metodo (come invece fanno le seconde) migliorando le prestazioni.&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/3110/aggbug/1248.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Massimo Bonanni</dc:creator>
            <guid>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1248.aspx</guid>
            <pubDate>Tue, 18 Nov 2003 12:58:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1248.aspx#feedback</comments>
            <slash:comments>23</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/3110/comments/commentRss/1248.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/3110/services/trackbacks/1248.aspx</trackback:ping>
        </item>
        <item>
            <title>VB.NET: Recuperare il path dell'applicazione</title>
            <link>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1246.aspx</link>
            <description>&lt;P&gt;In Visual Basic 6.0 esiste l'oggetto App che ci fornisce informazioni riguardo la nostra applicazione.&lt;BR&gt;In VB.NET l'oggetto App è sparito ed è comparso il namespace System.Reflection.Assembly.&lt;BR&gt;La seguente funzione recupera il percorso dell'applicazione:&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Public Function GetPath() as System.String&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim Path as System.String&lt;BR&gt;&amp;nbsp;Path = System.Reflection.Assembly.GetExecutingAssembly.Location&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Path = Path.Substring(0, Path.LastIndexOf("\"))&lt;BR&gt;&amp;nbsp;GetPath=Path&lt;BR&gt;End Function&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/3110/aggbug/1246.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Massimo Bonanni</dc:creator>
            <guid>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1246.aspx</guid>
            <pubDate>Tue, 18 Nov 2003 12:57:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1246.aspx#feedback</comments>
            <slash:comments>31</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/3110/comments/commentRss/1246.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/3110/services/trackbacks/1246.aspx</trackback:ping>
        </item>
        <item>
            <title>VB.NET: Memorizzare un file all'interno di un assembly</title>
            <link>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1245.aspx</link>
            <description>&lt;P&gt;Il Framework .NET offre la possibilità di memorizzare, all'interno di un assembly, un qualunque tipo di file (cablandolo all'interno dell'EXE o dell DLL).&lt;BR&gt;Per fare ciò è necessario:&lt;BR&gt;1) importare il file all'interno del progetto utilizzando il menù Project\Add Existing Items;&lt;BR&gt;2) selezionare il file all'interno del solution explorer e selezionare il menù contestuale properties;&lt;BR&gt;3) modificare la proprietà Build Action in Embedded Resource;&lt;BR&gt;4) utilizzare il seguente codice per caricare il contenuto del file all'interno di un array di byte:&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;Dim As As System.Reflection.Assembly&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim st As System.IO.Stream&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim bytearray As Byte()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; As = Reflection.Assembly.GetExecutingAssembly&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st = As.GetManifestResourceStream("RootNamespace.file.ext")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReDim bytearray(CInt(st.Length) - 1)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st.Read(bytearray, 0, CInt(st.Length))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st.Close()&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;RootNameSpace è il nome del namespace root dell'assembly mentre file.ext è il nome del file inserito nel progetto.&lt;BR&gt;La chiamata del metodo GetManifestResourceStream può sollevare un'eccezione se il file supera la dimensione di 2GB.&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/3110/aggbug/1245.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Massimo Bonanni</dc:creator>
            <guid>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1245.aspx</guid>
            <pubDate>Tue, 18 Nov 2003 12:56:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1245.aspx#feedback</comments>
            <slash:comments>89</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/3110/comments/commentRss/1245.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/3110/services/trackbacks/1245.aspx</trackback:ping>
        </item>
        <item>
            <title>VB.NET: Forzare le dimensioni massime e minime per una form</title>
            <link>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1244.aspx</link>
            <description>&lt;P&gt;Si può fare in modo che una form non superi una dimensione massima e una dimensione minima prestabilita modificando il costruttore della form inserendon le seguenti istruzioni:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Protected Sub New()&lt;BR&gt;&amp;nbsp; .&lt;BR&gt;&amp;nbsp; .&lt;BR&gt;&amp;nbsp; Me.MaximumSize = New System.Drawing.Size(MaxWidth, MaxHeight)&lt;BR&gt;&amp;nbsp; Me.MinimumSize = New System.Drawing.Size(MinWidth, MinHeight)&lt;BR&gt;&amp;nbsp; .&lt;BR&gt;&amp;nbsp; .&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;End Sub&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/3110/aggbug/1244.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Massimo Bonanni</dc:creator>
            <guid>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1244.aspx</guid>
            <pubDate>Tue, 18 Nov 2003 12:55:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1244.aspx#feedback</comments>
            <slash:comments>31</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/3110/comments/commentRss/1244.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/3110/services/trackbacks/1244.aspx</trackback:ping>
        </item>
        <item>
            <title>VB.NET: Evitare il redraw di un list box quando si inseriscono molti record</title>
            <link>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1243.aspx</link>
            <description>&lt;P&gt;Quando si devono inserire molti valori all0'interno di una listbox, è possibile fa in modo che il framework .NET aggiorni la stessa list box una sola volta al termine del riempimento.&lt;BR&gt;E' sufficiente invocare il metodo BeginUpdate() prima di cominciare il riempimento della list box e il metodo EndUpdate() al termine dello stesso per rendere effettivi i cambiamenti.&lt;BR&gt;Un esempio di utilizzo di questa tecnica è riportato nel seguente pezzo di codice:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;lstDati.BeginUpdate()&lt;BR&gt;&amp;nbsp;for i=0 to 100&lt;BR&gt;&amp;nbsp;&amp;nbsp;lstdati.Items.Add(array(i))&lt;BR&gt;&amp;nbsp;next i&lt;BR&gt;&amp;nbsp;lstDati.EndUpdate()&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/3110/aggbug/1243.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Massimo Bonanni</dc:creator>
            <guid>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1243.aspx</guid>
            <pubDate>Tue, 18 Nov 2003 12:54:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1243.aspx#feedback</comments>
            <slash:comments>21</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/3110/comments/commentRss/1243.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/3110/services/trackbacks/1243.aspx</trackback:ping>
        </item>
        <item>
            <title>VB.NET: Caption Animata in VB.NET</title>
            <link>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1242.aspx</link>
            <description>&lt;P&gt;Per ottenere un simpatico effetto animazione della caption delle nostre applicazioni VB.NET possiamo utilizzare la seguente routine:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub CaptionThread()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strCaption As System.String = "Caption Animata ...."&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim counter As System.Int16&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While (True)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For counter = 0 To strCaption.Length&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.Text = strCaption.Substring(0, counter)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Threading.Thread.Sleep(100)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For counter = 0 To strCaption.Length - 1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.Text = strCaption.Substring(counter)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Threading.Thread.Sleep(100)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End While&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/P&gt;
&lt;P&gt;Questa deve essere eseguita in un apposito thread della nostra form:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private AnimationCaptionThread As System.Threading.Thread&lt;/P&gt;
&lt;P&gt;il quale deve essere avviato nell'evento load:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub Form1_Load(.....) Handles MyBase.Load&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AnimationCaptionThread = New System.Threading.Thread(AddressOf CaptionThread)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AnimationCaptionThread .Start()&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/P&gt;
&lt;P&gt;ed arrestato nell'evento Closed:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub Form1_Closed(......) Handles MyBase.Closed&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;AnimThread.Abort()&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/3110/aggbug/1242.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Massimo Bonanni</dc:creator>
            <guid>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1242.aspx</guid>
            <pubDate>Tue, 18 Nov 2003 12:53:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1242.aspx#feedback</comments>
            <slash:comments>818</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/3110/comments/commentRss/1242.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/3110/services/trackbacks/1242.aspx</trackback:ping>
        </item>
        <item>
            <title>VB.NET: Calcolare la posizione assoluta di un controllo in una form</title>
            <link>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1241.aspx</link>
            <description>&lt;P&gt;La proprietà Location di un oggetto System.Windows.Forms.Control o di un oggetto System.Windows.Forms.Form restituisce la posizione fisica dell'oggetto stesso rispetto al padre.&lt;BR&gt;Per poter ricavare la posizione assoluta rispetto alla form principale oppure allo schermo si può ricorrere alla seguente routine:&lt;/P&gt;
&lt;P&gt;Private Function CalculateXPosition(ByVal Frm As System.Windows.Forms.Form, ByVal Ctrl As System.Windows.Forms.Control) As Integer&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (Ctrl.Parent Is Frm) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CalculateXPosition = Ctrl.Location.X&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CalculateXPosition = Ctrl.Location.X + CalculateXPosition(Frm, Ctrl.Parent)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;End Function&lt;/P&gt;
&lt;P&gt;Il parametro Frm può essere la form principale della nostra applicazione oppure Nothing se si vuole calcolare la posizione assoluta rispetto allo schermo.&lt;/P&gt;
&lt;P&gt;In modo analogo, utilizzando la proprietà Location.y, si può creare la function per il calcolo della coordinata y.&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/3110/aggbug/1241.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Massimo Bonanni</dc:creator>
            <guid>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1241.aspx</guid>
            <pubDate>Tue, 18 Nov 2003 12:52:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/3110/archive/2003/11/18/1241.aspx#feedback</comments>
            <slash:comments>63</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/3110/comments/commentRss/1241.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/3110/services/trackbacks/1241.aspx</trackback:ping>
        </item>
    </channel>
</rss>