lunedì 30 aprile 2018

download gratuito Panda antivirus


Se state cercando la versione gratuita dell'antivirus Panda, che però presenta delle limitazioni, dal seguente sito https://www.pandasecurity.com/italy/homeusers/solutions/free-antivirus/ potete scaricare la versione gratuita.
Nel sito inoltre è possibile consultare anche le versioni a pagamento e quelli per dispositivi mobile.
Il sito è in lingua italiana, per il download e maggiori informazioni visitate il sito indicato

domenica 29 aprile 2018

C# Asp.Net mvc redirect another view

Se da un controller vogliamo aprire una nuova pagina, passando un parametro, è questa si trova in un'altra cartella dobbiamo utilizzare RedirectToAction .

Supponiamo di avere nella cartella "Anagrafica" una pagina denominata "Dettaglio" il quale accetta un parametro di tipo intero, e dobbiamo richiamarla dal un controller situato nella cartella home.

Il frammento di codice permette  di richiamare la viewer Dettaglio.


public ActionResult DettaglioAnagrafica(int id)
        {
       
            System.Web.Routing.RouteValueDictionary RouteInfo = new System.Web.Routing.RouteValueDictionary();
            RouteInfo.Add("id", id);
            return RedirectToAction("Dettaglio", "Anagrafica", RouteInfo);
        }

Questo metodo, che si trova nel controller Home, richiamato dalla pagina index, permette di aprire la pagina dettaglio nella cartella Anagrafica.


sabato 28 aprile 2018

asp.net mvc view datatable

Nel caso che vogliamo utilizzare nel viewer un oggetto di tipo DataTable, non dobbiamo definire nulla nella pagina.

Qui di seguito un esempio di codice ed utilizzo

Nel controller:

 DataTable dttDati = GetDataTable();


            return PartialView("_lista", dttDati );

Nel viewer:

@if (Model.Rows.Count == 0)
{
    @:Nessun elemento
}


 table id="table" width="100%">
        <thead

            <tr>
           
         
                @foreach (System.Data.DataColumn elemento in Model.Columns)
                {                                       
                    <th width="300px" style="background-color:#1ba1e2"> @Html.DisplayFor(modelItem=> elemento.ColumnName) </th>
                }

            </tr>
        </thead>


   <tbody
            @foreach (System.Data.DataRow item in Model.Rows)
            {
                <tr
                    <td width="500px">
                     Dati
                    </td
                    @for (int ContaColonne = 1; ContaColonne < Model.Columns.Count; ContaColonne++)
                    {
                        <td width="300px">
                            @Html.DisplayFor(modelItem => item[ContaColonne] )
                        </td>
                    }
                 

                </tr
               
            }



        </tbody

venerdì 27 aprile 2018

free ebook The Kademlia Protocol

The Kademlia Protocol Succinctly

Un ebook gratuito ed in lingua inglese sulla comunicazione tra sistemi.
Il manuale, in formato pdf, fornisce interessanti spunti sulla comunicazione telematica.
Per maggiori informazioni e per il download gratuito (richiede una semplice registrazione) visitate il seguente sito https://www.syncfusion.com/ebooks/kademlia_protocol_succinctly

giovedì 26 aprile 2018

VSTO Excel realizzare un componente per generare un file da due file VB.Net e C#

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/programmazione/art_vsto-excel-realizzare-un-componente-per-_1583.aspx


In questo articolo vedremo come creare un file Excel, estrapolando i dati da due distinti file di Microsoft Excel 2016.
L'articolo vuole fornire una tecnica o meglio una procedura, che permette di generare un file Excel con i dati presenti in due file Excel distinti.
Una procedura che sarà attivabile tramite componente aggiuntivo realizzato con VSTO e linguaggio di programmazione C# e VB.Net.
Creazione dei file
Prima di tutto bisogna creare due file Excel, con una colonna che presenti un codice ID per identificare la singola riga.
In questo modo, in base alla colonna identificativa possiamo creare in un file il record comprendente i valori dei singoli record per i due file.
Ma scriviamo adesso il nostro primo file, che chiameremo “FileA.xlsx” nella prima colonna in A1 mettiamo ID in B1 Nome e C1 Cognome, che sono le intestazioni delle colonne. Inseriamo un numero progressivo per ogni riga (ne bastano tre) per la colonna ID e per la colonna nome e cognome, inseriamo dei nostri valori.
Qui di seguito un esempio per il nostro articolo
ID Nome Cognome
1 Marco Aurelio
2 Gianni Bianchi
3 Emanuele Mattei

Ora non ci resta che salvare il file, con il nome “FileA” .
Si crea un secondo file Excel, che chiameremo “FileB.xlsx” e nella colonna A1 impostiamo come valore ID, mentre nella cella B1 impostiamo il valore “citta” e nella cella C1 impostiamo il valore telefono.
Nelle righe sottostanti, per la colonna ID dobbiamo mettere gli stessi valori che abbiamo inserito nel fileA, mentre per la colonna citta e telefono impostiamo dei nostri valori.
Il file di esempio sarà come quello qui di seguito
ID Citta Telefono
1 Roma 3398456321
2 Milano 339187441
3 Mantova 3391980065
A questo punto salviamo il file con il nome “FileB.xlsx”.
Creazione del progetto
A questo punto dobbiamo creare un nuovo progetto di tipo “Componente aggiuntivo per Excel 2016” utilizzando il linguaggio di programmazione di proprio interesse.
In riferimento alla versione di Visual Studio installata, possiamo visualizzare la versione di office 2016 o 2013, l’articolo va bene per tutte le versioni.
Confermate il tutto dopo aver impostato il nome e percorso del progetto
Abbiamo visto in altri articoli precedenti, qui https://www.iprogrammatori.it/articoli/programmazione/art_vsto-creazione-componente-per-outlook-20_1565.aspx la creazione del pulsante nella barra di office, che in questo articolo non verrà descritta.

Stesura del codice

Dopo aver impostato il codice per la creazione dei pulsanti, aggiungiamo un form al  nostro progetto.
Da esplora soluzione, selezioniamo il nostro progetto e facciamo tasto destra, e dal menu che viene visualizzato facciamo click su “Windows Form”.
Nella creazione della form, aggiungiamo tre controlli label, tre controlli textbox ed un pulsante, in modo che ogni Cassella avrà il compito di visualizzare nella textbox il percorso e nome del file Excel, mentre nell’ultima casella, il percorso e nome del file che verrà generato.
Il tutto come verrà visualizzato in figura 1.


Figura 1 – La form per la generazione del file Excel da due esistenti

Come si vede nella figura le prime due caselle riguardano i file Excel nel quale andremo a rilevare i dati, e che in precedenza abbiamo chiamato FileA e FileB.
Mentre nella casella di testo in basso, il percorso e nome del file che verrà generato.
I pulsanti, posti alla fine di ogni casella, avranno il compito di aprire una finestra di dialogo e selezionare i vari file Excel per il rilevamento dei dati. Facciamo doppio click sul primo pulsante in alto a destra, quello con i tre pulsanti posto alla fine della casella con la label “Filea”.
Nell’evento click scriviamo il seguente codice.


VB.Net

   Try

            Dim selezionaFile As New OpenFileDialog

            selezionaFile.Title = "Seleziona il file A da caricare i dati"

            selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx"

            selezionaFile.DefaultExt = "xls|xlsx"

            If selezionaFile.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

                txtFileA.Text = selezionaFile.FileName

            End If

        Catch ex As Exception

            MessaggioErrore(ex.Message)

        End Try

 

C#

try

            {

                OpenFileDialog selezionaFile = new OpenFileDialog();

                selezionaFile.Title = "Seleziona il file A da caricare i dati";

                selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx";

                selezionaFile.DefaultExt = "xls|xlsx";

 

                if (selezionaFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)

                {

                    txtFileA.Text = selezionaFile.FileName;

 

                }

 

 

            }

            catch (Exception ex)

            {

 

                MessaggioErrore(ex.Message);

            }


Come si vede dal codice, precedente, verrà aperta una finestra di dialogo per selezionare il file da estrapolare i dati. A questo punto passiamo in visualizzazione grafica e facciamo doppio click, sul pulsante posto alla fine della casella che viene indicata come File B.
In visualizzazione codice, nell’evento click, scriviamo il seguente codice che permette di selezionare il file, quello denominato FileB.


VB.Net

  Try

            Dim selezionaFile As New OpenFileDialog()

            selezionaFile.Title = "Seleziona il file B da caricare i dati"

            selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx"

            selezionaFile.DefaultExt = "xls|xlsx"

            If selezionaFile.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

                txtFileB.Text = selezionaFile.FileName

            End If

        Catch ex As Exception

            MessaggioErrore(ex.Message)

        End Try

 

C#

try

            {

                OpenFileDialog selezionaFile = new OpenFileDialog();

                selezionaFile.Title = "Seleziona il file B da caricare i dati";

                selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx";

                selezionaFile.DefaultExt = "xls|xlsx";

 

                if (selezionaFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)

                {

                    txtFileB.Text = selezionaFile.FileName;

 

                }

 

 

            }

            catch (Exception ex)

            {

 

                MessaggioErrore(ex.Message);

            }



Ora non ci resta che passare di nuovo in visualizzazione grafica per selezionare l’ultimo pulsante, quello posto alla fine della casella di testo contraddistinta con l’etichetta “Nome nuovo file”.
In questo caso, andremo ad utilizzare la classe per la gestione delle finestre di dialogo per il salvataggio, in modo da impostare il percorso e nome del file.
Qui di seguito il frammento di codice per entrambi i linguaggi.



VB.Net

Try

            Dim selezionaFile As New SaveFileDialog()

            selezionaFile.Title = "Seleziona il file da creare"

            selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx"

            selezionaFile.DefaultExt = "xls|xlsx"

            If selezionaFile.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

                txtNuovoFile.Text = selezionaFile.FileName

            End If

        Catch ex As Exception

            MessaggioErrore(ex.Message)

        End Try

 

 

C#

try

            {

                SaveFileDialog selezionaFile = new SaveFileDialog();

                selezionaFile.Title = "Seleziona il file da creare";

                selezionaFile.Filter = "Excel Files (*.xls, *.xlsx)|*.xls;*.xlsx";

                selezionaFile.DefaultExt = "xls|xlsx";

 

                if (selezionaFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)

                {

                    txtNuovoFile.Text = selezionaFile.FileName;

 

                }

 

 

            }

            catch (Exception ex)

            {

 

                MessaggioErrore(ex.Message);

            }


Termina qui la prima parte dell’articolo, nel successivo articolo andremo a vedere il codice da scrivere per il rilevamento dei dati, e soprattutto la generazione di un solo file con i dati presenti negli altri file Microsoft Excel.

Conclusioni

L’articolo ha fornito le nozioni per la creazione di un programma, che può essere esteso sulla gestione dei dati presenti in più file. In questa prima parte riguardante la creazione di un componente per Excel per la generazione di un file Excel, rilevando i dati da due file Excel.
Nel prossimo articolo, verrà illustrato il codice per la lettura dei dati, e l’inserimento in quello presente.

mercoledì 25 aprile 2018

C# Asp.Net MVC download File

Il frammento di codice qui di seguito, illustra una tecnica di come effettuare il download di un file in C# tramite tecnologia ASP.NET MVC.

Nel viewer:

 window.location.href = '@Url.Action("MioMetodo", "Home")?Parametro=' + valore;

Nel Controllers:

public FileResult MioMetodo(string parametro)
        {

            byte[] StreamDelFile =  GetFileStream(parametro);
           

            return File(StreamDelFile, System.Net.Mime.MediaTypeNames.Application.Octet, "NomeFile.csv");
           
        }

martedì 24 aprile 2018

C# convertire datatable in file Excel tramite Linq.

Il frammento di codice qui di seguito, illustra una tecnica di come convertire un DataTable in un file Excel tramite Linq.

    var Righe= new List();

            string[] nomiColonne= dttDati.Columns.Cast().
                                              Select(column => column.ColumnName).
                                              ToArray();

            var intestazione = string.Join(";", nomiColonne);
            Righe.Add(intestazione );
            Righe.Add("\r");
            var valoriPerRighe = dttDati.AsEnumerable()
                               .Select(row => string.Join(";", row.ItemArray)+"\r");

            Righe.AddRange(valoriPerRighe );

A questo punto abbiamo nell'oggetto Righe, la possibilità di trasformarlo in Excel, nel codice qui di seguito trasformiamo l'oggetto list string in array byte e fare il download del file in Asp.Net MVC.

  byte[] listRigheAsBytes = Righe.SelectMany(s => System.Text.Encoding.ASCII.GetBytes(s)).ToArray();

return File(listRigheAsBytes , System.Net.Mime.MediaTypeNames.Application.Octet, "ExcelRisultato.csv");

domenica 22 aprile 2018

Download gratuito antivirus di Kaspersky

Kaspersky Free                 feature1


Anche Kaspersky nota azienda mondiale sulla protezione informatica, ha una versione del famoso antivirus gratuita.
La versione free o meglio gratuita, si può scaricare dal seguente sito https://www.kaspersky.it/free-antivirus dove si possono vedere le varie versioni oltre a scaricare quella gratuita.
Il sito è in lingua italiana, per maggiori informazioni ed altro visitate la pagina indicata.


sabato 21 aprile 2018

Componente gratuito per le immagini in .Net ed open source



Una valida libreria gratuita e con codice sorgente, quella offerta dal seguente sito  https://kaliko.com/image-library/ per la gestione delle immagini.

Il componente è gratuito e con codice sorgente.
Nel sito sono presenti anche frammenti di codice in C# per il relativo utilizzo.
Per il download e maggiori informazioni visitate il sito indicato.


venerdì 20 aprile 2018

VSTO la gestione della PEC tramite la creazione di un componente aggiuntivo di Outlook in VB.Net e C#

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/programmazione/art_vsto-creazione-componente-per-outlook-20_1565.aspx

Da alcune versione di Visual Studio è possibile creare componenti per il  programma di posta elettronica più famoso ed utilizzato al mondo, Microsoft Outlook, utilizzando il linguaggio di programmazione Visual Basci e C#.
Il componente è una dll che permetterà di effettuare alcune operazioni all’interno dell'applicativo Outlook.
In questo articolo, vedremo come creare una nuova barra con un nuovo pulsante, che al click del pulsante, visualizza le informazioni di una email di tipo PEC.
L’articolo fornisce anche interessanti aspetti sulla gestione degli utenti.
Si creazione un nuovo progetto di tipo “Componenti Aggiuntivi” situato nei modelli di Office. Tra i modelli presenti nel pannello centrale selezionare Componente aggiuntivo per Outlook 2013 (figura 1).


Figura 1 – La creazione del progetto

A questo punto confermate il tutto tramite il pulsante “OK”.
Il progetto non avrà interfaccia grafica.

Stesura del codice

Il progetto verrà aperto subito in codice per la stesura del codice, per generare un pulsante e barra in Outlook dobbiamo utilizzare le classi “CommandBar” e “CommandBarButton” qui di seguito tale dichiarazione a livello di classe.


VB.Net

Dim ComBar As Office.CommandBar

    Dim pulsante As Office.CommandBarButton

C#

Office.CommandBar ComBar;

        Office.CommandBarButton pulsante;



Si crea il gestore di evento per il pulsante, che andremo a creare, per la gestione della PEC.
Qui di seguito tali dichiarazioni.



VB.Net

Private Sub pulsante_Click(Ctrl As Office.CommandBarButton, ByRef CancelDefault As Boolean)

 

  End Sub

 

C#

private void pulsante_Click(Office.CommandBarButton Ctrl, ref bool CancelDefault)

        {

 

        }


Ora dobbiamo scrivere il codice per la creazione del pulsante e della barra.
Sono due metodi, uno crea la barra, e l’altro il pulsante, per il gestore evento click creato in precedenza.
Qui di seguito tali dichiarazioni.


VB.Net

Private Sub CreaBarra()

        ComBar = Globals.ThisAddIn.Application.ActiveExplorer().CommandBars.Add("PEC", Office.MsoBarPosition.msoBarTop, False, True)

        ComBar.Protection = Office.MsoBarProtection.msoBarNoCustomize

        ComBar.Visible = True

    End Sub

 

 

    Private Sub CreaPulsante()

        'aggiungo il pulsante alla barra ed imposto la proprietà testo oltre al gestore di evento click

        pulsante = TryCast(ComBar.Controls.Add(Office.MsoControlType.msoControlButton, Type.Missing, Type.Missing, Type.Missing, True), Office.CommandBarButton)

        pulsante.Caption = "Demo PEC VB"

        pulsante.Style = Office.MsoButtonStyle.msoButtonIconAndCaption

        pulsante.TooltipText = "Demo rileva dati PEC VB"

        pulsante.FaceId = 2605

        'gestore dell'evento click

        AddHandler pulsante.Click, AddressOf pulsante_Click

 

    End Sub

 

C#

  private void CreaBarra()

        {

            ComBar = Globals.ThisAddIn.Application.ActiveExplorer().CommandBars.Add(

                   "PEC",

                   Office.MsoBarPosition.msoBarTop,

                   false,

                   true);

            ComBar.Protection = Office.MsoBarProtection.msoBarNoCustomize;

            ComBar.Visible = true;

        }

 

 

        private void CreaPulsante()

        {

            //aggiungo il pulsante alla barra ed imposto la proprietà testo oltre al gestore di evento click

            pulsante = ComBar.Controls.Add(Office.MsoControlType.msoControlButton, Type.Missing, Type.Missing, Type.Missing, true) as Office.CommandBarButton;

            pulsante.Caption = "Gestione PEC";

            pulsante.Style = Office.MsoButtonStyle.msoButtonIconAndCaption;

            pulsante.TooltipText = "Gestione delle email di tipo PEC.";

            pulsante.FaceId = 2605;

            //gestore dell'evento click

            pulsante.Click += new Office._CommandBarButtonEvents_ClickEventHandler(pulsante_Click);

        }


Come si è visto nel precedente codice, la funzione “CreaBarra” inizializza l’oggetto di tipo CommandBar, impostando le varie proprietà.
Mentre la funzione “CreaPulsante” aggiunge alla barra precedentemente creata, un pulsante e gli assegna il gestore dell’evento click ed impostazioni varie al pulsante, come l’immagine tramite la proprietà “FaceId”, il testo, ed altro ancora.

Ora dobbiamo scrivere il codice che ci permetterà di estrapolare i dati dell’account e della nostra posta elettronica, per rilevare l’email di tipo PEC.
La funzione dovrà funzionare solo in ambito di email e non quando siamo nell’elenco dei contatti o nel calendario o nelle attività, ma solo nelle caselle di posta elettronica.
Utilizzeremo le classi per la gestione degli oggetti di Outloook, ed una classe che ci permette di gestire le informazioni dell’email selezionata, tramite appunto la classe “MailItem”.
In questa classe, abbiamo le proprietà per gestire le informazioni dell’email, quale appunto, il mittente, data ed ora di arrivo, l’oggetto, etc.

Inoltre tramite la classe “Account” possiamo gestire le informazioni relative all’utente della posta elettronica.
Qui di seguito il frammento di codice per l’evento click del pulsante, per estrapolare le informazioni dell’email PEC.




VB.Net

Private Sub pulsante_Click(Ctrl As Office.CommandBarButton, ByRef CancelDefault As Boolean)

 

        Try

            If Me.Application.ActiveExplorer().Selection.Count > 0 Then

                Dim objectSelezionato As [Object] = Me.Application.ActiveExplorer().Selection(1)

 

                If TypeOf objectSelezionato Is Outlook.MailItem Then

                    Dim mailElemento As Outlook.MailItem = TryCast(objectSelezionato, Outlook.MailItem)

                    Dim emailTipoPec As Integer = 0

                    For Each elemento As Outlook.Attachment In mailElemento.Attachments

                        If elemento.FileName.Contains(".eml") OrElse elemento.FileName.Contains("daticert.xml") Then

                            emailTipoPec += 1

                        End If

                    Next

                    If emailTipoPec = 2 Then

                        Dim Testo As String = "Destinatario: " + mailElemento.[To]

                        Testo += vbCr & " "

                        Testo += "Oggetto: " + mailElemento.Subject

                        Testo += vbCr & " "

                        Testo += "Nome: " + mailElemento.SenderName

                        Testo += vbCr & " "

                        Testo += "Destinatario CC: " + mailElemento.CC

                        Testo += vbCr & " "

                        Testo += "ID email CC: " + mailElemento.EntryID

                        Dim application As New Outlook.Application()

 

                        Dim accounts As Outlook.Accounts = application.Session.Accounts

                        For Each account As Outlook.Account In accounts

                            Testo += vbCr & " "

                            Testo += "Account Display: " + account.DisplayName

 

 

                            Testo += vbCr & " "

 

 

                            Testo += "Username Display: " + account.UserName

                        Next

                        System.Windows.Forms.MessageBox.Show(Convert.ToString("Testo: ") & Testo)

 

                    End If

                End If

            End If

        Catch ex As Exception

            System.Windows.Forms.MessageBox.Show("Errore: " + ex.Message)

        End Try

 

 

 

    End Sub

 

 

 

C#

private void pulsante_Click(Office.CommandBarButton Ctrl, ref bool CancelDefault)

        {

            try

            {

 

 

                if (this.Application.ActiveExplorer().Selection.Count > 0)

                {

                    Object objectSelezionato = this.Application.ActiveExplorer().Selection[1];

 

                    if (objectSelezionato is Outlook.MailItem)

                    {

                        Outlook.MailItem mailElemento = (objectSelezionato as Outlook.MailItem);

                        int emailTipoPec = 0;

                        foreach (Outlook.Attachment elemento in mailElemento.Attachments)

                        {

                            if (elemento.FileName.Contains(".eml") || elemento.FileName.Contains("daticert.xml"))

                            {

                                emailTipoPec += 1;

                            }

                        }

                        if (emailTipoPec == 2)

                        {

                            string Testo = "Destinatario: " + mailElemento.To;

                            Testo += "\r ";

                            Testo += "Oggetto: " + mailElemento.Subject;

                            Testo += "\r ";

                            Testo += "Nome: " + mailElemento.SenderName;

                            Testo += "\r ";

                            Testo += "Destinatario CC: " + mailElemento.CC;

                            Testo += "\r ";

                            Testo += "ID email CC: " + mailElemento.EntryID;

                            Outlook.Application application = new Outlook.Application();

 

                            Outlook.Accounts accounts = application.Session.Accounts;

                            foreach (Outlook.Account account in accounts)

                            {

                                Testo += "\r ";

                                Testo += "Account Display: " + account.DisplayName;

 

 

                                Testo += "\r ";

                                Testo += "Username Display: " + account.UserName;

 

 

                            }

                            System.Windows.Forms.MessageBox.Show("Testo: " + Testo);

                        }

 

                    }

                }

            }

            catch (Exception ex)

            {

                System.Windows.Forms.MessageBox.Show("Errore: " + ex.Message);

            }

        }





Applichiamo nell’evento ThisAddIn_Startup l’esecuzione della creazione del pulsante e barra, inizialmente scritto.
Qui di seguito il frammento di codice.




VB.Net

  Private Sub ThisAddIn_Startup() Handles Me.Startup

        CreaBarra()

        CreaPulsante()

    End Sub

C#

private void ThisAddIn_Startup(object sender, System.EventArgs e)

        {

            CreaBarra();

            CreaPulsante();

        }




A questo punto non ci resta che eseguire la nostra applicazione.
Tramite f5 o il pulsante esegui, avviamo il programma.
Potrebbe visualizzare un messaggio che dice “Non è possibile eseguire il debug o avviare l'esecuzione di questo progetto perché non è installata la versione richiesta di Microsoft Office.”
In questo caso, aprire il file di progetto (.csproject) con un qualsiasi programma di editor, ed impostare il parametro “DebugInfoExeName” con il valore della versione di office, per esempio se c’è scritto “#Software\Microsoft\Office\15.0\Outlook\InstallRoot\Path#outlook.exe” diventerà “#Software\Microsoft\Office\16.0\Outlook\InstallRoot\Path#outlook.exe” nel caso che abbiamo Microsoft Outlook 2016.
Nel caso che abbiamo una email pec, la selezioniamo e facciamo click sul pulsante in modo da visualizzare le informazioni.

Conclusioni

Le potenzialità offerte dalla creazione di componenti aggiuntivi per Microsoft Outlook, fornisce al programmatore notevoli potenzialità ed al tempo stesso opportunità non indifferenti.
Proprio con questi componenti che si possono estendere le funzionalità offerte dal programma di posta elettronica più usato al mondo, dando così possibilità di integrare i processi aziendali ed al tempo stesso anche ad attività lavorative con la gestione delle email.
Uno scenario che i programmatori devono valutare con attenzione, proprio per le tante opportunità che possono nascere ed al tempo stesso la flessibilità che offre tale architettura utilizzando la tecnologia .Net ed in particolare le “Windows Forms”.
Vorrei ringraziare l'amico Aldo, a cui dedico questo articolo di programmazione su Microsoft Office 2016
Tramite la parola Download è possibile scaricare il file utilizzato per l'articolo.