Blog Stats
  • Posts - 11
  • Articles - 0
  • Comments - 993
  • Trackbacks - 9

 

novembre 2003 Blog Posts

VB.NET: Ricavare tutte le caption delle finestre aperte

La seguente subroutine in VB.NET permette di ricavare le caption di tutte le finestre aperte:  Public Sub GetAllWindowsCaption(ByRef Captions As System.Collections.ArrayList)        Dim proc As System.Diagnostics.Process        Captions.Clear()        For Each proc In Process.GetProcesses()            If proc.MainWindowTitle.Length > 0 Then                Captions.Add(proc.MainWindowTitle)            End If        Next proc    End Sub Al ritorno dalla subroutine, la collections Captions contiene la lista delle caption.

VB.NET: Ricavare l'occupazione di memoria di un processo

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.I parametri in input sono:MachineName = nome della macchina;Processname = nome del processo. 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).     Const MEMORY_EXCEPTION As Int64 = -2    Const MEMORY_NOPROCESS As Int64 = -1     Public Function GetProcessMemory(ByVal MachineName As String, ByVal ProcessName As String) As Int64        Dim oProcess As Process        Dim oProcesses As Process()        Try            If...

VB.NET: Recuperare la collection dei controlli presente in una form

La seguente function in VB.NET permette di ricavare, in maniera ricorsiva, l'insieme dei controlli presenti all'interno di una form.L'argomento Form è la form da cui ricavare l'elenco dei controlli ed  è di tipo Object per permettere la ricorsione sui controlli all'interno di controlli di tipo Container.  Public Sub GetAllControls(ByVal Form As System.Object, ByRef Controls As System.Collections.ArrayList)         Dim ctrl As System.Windows.Forms.Control          For Each ctrl In Form.controls             If ctrl.Controls.Count > 0 Then                 GetAllControls(ctrl, Controls)             End If             Controls.Add(ctrl)         Next  End Sub 

VB.NET: Recuperare l'occupazione di una directory

La seguente function in VB.NET permette di ricavare, in maniera ricorsiva, l'occupazione su disco (in Kbytes) di una directory.La variabile Path contiene il percorso della directory (senza il carattere terminatore "\").La funzione ritorna lo spazio occupato oppure -1 se si è verificato un erroreIl costrutto try/catch è utilizzato per garantire che la funzione non vada mai in errore.   Public Function GetDirSize(ByVal Path As System.String) As Int64        Try            Dim dirdata() As System.IO.DirectoryInfo            Dim filedata() As System.IO.FileInfo            Dim file As System.IO.FileInfo            Dim dimension As Int64 = 0                        Dim dir As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(Path)            ' Scansione dei file della directory            filedata...

VB.NET: Recuperare il path dell'applicazione

In Visual Basic 6.0 esiste l'oggetto App che ci fornisce informazioni riguardo la nostra applicazione.In VB.NET l'oggetto App è sparito ed è comparso il namespace System.Reflection.Assembly.La seguente funzione recupera il percorso dell'applicazione: Public Function GetPath() as System.String        Dim Path as System.String Path = System.Reflection.Assembly.GetExecutingAssembly.Location        Path = Path.Substring(0, Path.LastIndexOf("\")) GetPath=PathEnd Function

VB.NET: Memorizzare un file all'interno di un assembly

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).Per fare ciò è necessario:1) importare il file all'interno del progetto utilizzando il menù Project\Add Existing Items;2) selezionare il file all'interno del solution explorer e selezionare il menù contestuale properties;3) modificare la proprietà Build Action in Embedded Resource;4) utilizzare il seguente codice per caricare il contenuto del file all'interno di un array di byte:  . . Dim As As System.Reflection.Assembly        Dim st As System.IO.Stream        Dim bytearray As Byte()        As = Reflection.Assembly.GetExecutingAssembly        st = As.GetManifestResourceStream("RootNamespace.file.ext")        ReDim bytearray(CInt(st.Length) - 1)        st.Read(bytearray, 0, CInt(st.Length))       ...

VB.NET: Forzare le dimensioni massime e minime per una form

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:  Protected Sub New()  .  .  Me.MaximumSize = New System.Drawing.Size(MaxWidth, MaxHeight)  Me.MinimumSize = New System.Drawing.Size(MinWidth, MinHeight)  .  .    End Sub

VB.NET: Evitare il redraw di un list box quando si inseriscono molti record

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.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.Un esempio di utilizzo di questa tecnica è riportato nel seguente pezzo di codice:  . . lstDati.BeginUpdate() for i=0 to 100  lstdati.Items.Add(array(i)) next i lstDati.EndUpdate() . .

VB.NET: Caption Animata in VB.NET

Per ottenere un simpatico effetto animazione della caption delle nostre applicazioni VB.NET possiamo utilizzare la seguente routine:     Public Sub CaptionThread()        Dim strCaption As System.String = "Caption Animata ...."        Dim counter As System.Int16        While (True)            For counter = 0 To strCaption.Length                Me.Text = strCaption.Substring(0, counter)                System.Threading.Thread.Sleep(100)            Next            For counter = 0 To strCaption.Length - 1                Me.Text = strCaption.Substring(counter)                System.Threading.Thread.Sleep(100)            Next        End While    End Sub Questa deve essere eseguita in un apposito thread della nostra form:     Private AnimationCaptionThread As System.Threading.Thread il quale deve essere avviato nell'evento load:     Private Sub Form1_Load(.....) Handles MyBase.Load        . .        AnimationCaptionThread = New System.Threading.Thread(AddressOf CaptionThread)        AnimationCaptionThread .Start() . .    End Sub ed arrestato nell'evento...

VB.NET: Calcolare la posizione assoluta di un controllo in una form

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.Per poter ricavare la posizione assoluta rispetto alla form principale oppure allo schermo si può ricorrere alla seguente routine: Private Function CalculateXPosition(ByVal Frm As System.Windows.Forms.Form, ByVal Ctrl As System.Windows.Forms.Control) As Integer        If (Ctrl.Parent Is Frm) Then            CalculateXPosition = Ctrl.Location.X        Else            CalculateXPosition = Ctrl.Location.X + CalculateXPosition(Frm, Ctrl.Parent)        End IfEnd Function Il parametro Frm può essere la form principale della nostra applicazione oppure Nothing se si vuole calcolare la posizione assoluta rispetto allo schermo. In modo analogo, utilizzando la proprietà Location.y, si può creare la...

VB.NET: Aggiungere un elemento colorato ad una list view

E' possibile inserire elementi di testo colorato all'interno di list view utilizzando il seguente codice:  . .Dim ListItem As System.Windows.Forms.ListViewItemListItem = New System.Windows.Forms.ListViewItem(New String() {"Elemento colorato"}, -1, forecolor, backcolor, Nothing)lstLista.Items.Add(ListItem) . . lstLista è un oggetto di tipo List View;forecolor è un oggetto di tipo System.Drawing.Color (ad esempio System.Drawing.Color.Red) e rappresenta il colore di primo piano;backcolor è un oggetto di tipo System.Drawing.Color (ad esempio System.Drawing.Color.Blue) e rappresenta il colore di sfondo.

 

 

Copyright © Massimo Bonanni