Imaginsystems


Tecniche di Programmazione - Codici Sorgenti - News Informatiche
Archivio Posts
Anno 2014

Anno 2013

Anno 2012
Statistiche
  • Views Home Page: 73.755
  • Views Posts: 551.407
  • Views Gallerie: 0
  • n° Posts: 210
  • n° Commenti: 224

VB.NET - CREARE UN SERVIZIO DI WINDOWS USANDO .NET CHE AVVIA UN PROGRAMMA (Esempio Calc.exe)

VB.NET - CREARE UN SERVIZIO DI WINDOWS USANDO .NET CHE AVVIA UN PROGRAMMA (Esempio Calc.exe)

 

Oggi vi voglio spiegare come creare un servizio che avvia in automatico un programma ad esempio : Calc.exe (la calcolatrice). Questo servizio è buono se vogliamo far apparire una finestra subito dopo il Login di un Utente.


Per prima cosa apriamo Visual Studio 2010 :

 

Aprire un Nuovo Progetto  e lo chiamiamo ServiceDemoCalc :

 
Ecco ci appare dopo il caricamento del nuovo progetto  :


Ora passiamo a rinominare il servizio da "Service1" a "ServiceDemoCalc"


Selezionare il file ServiceDemoCalc.vb e con il tasto destro del Mouse selezionare la voce  "Visualizza Codice"


Appare il seguente codice :


Ora dovete inserire il sostituire il codice che trovate con questo, fate copia e incolla :

CODICE VISUAL STUDIO 2010 - VISUAL BASIC .NET - VB.NET:

Imports System.Threading
Public Class ServiceDemoCalc
    Dim MyThread As Threading.Thread

    Protected Overrides Sub OnStart(ByVal args() As String)
        ' Inserire qui il codice necessario per avviare il proprio servizio. Il metodo deve effettuare
        ' le impostazioni necessarie per il funzionamento del servizio.


        MyThread = New Threading.Thread(AddressOf AvvioCalcolatrice)
        MyThread.Start()
    End Sub

    Protected Overrides Sub OnStop()
        ' Inserire qui il codice delle procedure di chiusura necessarie per arrestare il proprio servizio.
        MyThread.Abort()
    End Sub

    <Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)>
    Private Sub AvvioCalcolatrice()

        Dim myP As System.Diagnostics.Process = New System.Diagnostics.Process() 'Dichiari l'oggetto
        myP.StartInfo.Verb = "RUNAS"
        myP.StartInfo.UseShellExecute = False
        myP.StartInfo.CreateNoWindow = True
        myP.StartInfo.RedirectStandardOutput = True
        myP.StartInfo.FileName = "C:\WINDOWS\system32\calc.exe" 'imposti il percorso del file da eseguire
        myP.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal 'imposti il tipo di visualizzazione
        myP.Start() 'avvii il processo

    End Sub

End Class

Ora passiamo ad aggiungere programma di installazione del servizio, dobbiamo far click col destro del Mouse e selezionare la voce "Aggiungi programma di installazione" come nella foto .


Ci appare la seguente schermata e crea un nuovo file ProjectInstaller.vb , ora dobbiamo configurare i due oggetti, il primo ServiceInstaller1 impostare i seguenti parametri :

 
Il secondo oggetto ServiceProcessInstaller1 impostare i seguenti parametri.


Ora passiamo si passa all'inserimento del codice all'interno del file ProjectInstaller.vb per far in modo che il servizio può interagire con il desktop liberamente.


La prima volta che si visualizza il codice appare questo :


Sostituire il codice che si trova con questo qui di seguito, fate copia e incolla :

CODICE VISUAL STUDIO 2010 - VISUAL BASIC .NET - VB.NET:

Imports System.ComponentModel
Imports System.Configuration.Install

Public Class ProjectInstaller

    Public Sub New()
        MyBase.New()

        'Chiamata richiesta da Progettazione componenti.
        InitializeComponent()

        'Aggiungere il codice di inizializzazione dopo la chiamata a InitializeComponent

    End Sub

    Public Overrides Sub Commit(ByVal savedState As System.Collections.IDictionary)
        Dim ckey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine
        ckey.OpenSubKey("SYSTEM\CurrentControlSet\Services\ServiceDemoCalc", True)

        If ckey Is Nothing Then
            MsgBox("La chiave non esiste errore di sistema", MsgBoxStyle.Information)
        Else
            If DirectCast(ckey.GetValueNames, IList).IndexOf("Type") = -1 Then
                ckey.OpenSubKey("SYSTEM\CurrentControlSet\Services\ServiceDemoCalc", True).SetValue("Type", CType(272, Integer))
            Else
                ckey.OpenSubKey("SYSTEM\CurrentControlSet\Services\SeerviceDemoCalc", True).SetValue("Type", CType(272, Integer))
                MsgBox("Registrato Servizio Correttamente", MsgBoxStyle.Information)

            End If
        End If
    End Sub
End Class

Ora passiamo alla creazione del progetto Setup del servizio, Aggiungi un Nuovo Progetto .


Selezionare Installazione Guidata , vedi figura :


Ora seguire i 5 step della configurazione Guidata dell'installazione Step 1:


Step 2


Step 3


Step 4


Step 5


Ora dobbiamo aggiungere dei parametri personalizzati al progetto di installazione del servizio, click destro del mouse sul nome del Setup , poi Visualizza, poi Azioni personalizzate :


Ora passiamo alla configurazione, aspettiamo che apre la finestra Azioni personalizzate, posizionarsi su Installa e cliccare col destro del mouse e selezionare Aggiungi azione personalizzata.. :


Aprire la Cartella Applicazione 


E selezionare il file Output primo da ServiceDemoCalc e poi Ok


Ripeterlo per tutte le voci e si ottiene la seguente condizione vedi figura , ora passiamo a Compilare i due progetti sia ServiceDemoCalc e poi Setup .


Per vedere che tutto funziona installiamo il servizio in questa maniera ma sempre dopo che abbiamo Compilato entrambi i progetti :


Fine dell'articolo, ora avete un servizio che ogni volta che voi accendete il pc e dopo aver fatto il Login vi appare sul desktop la finestra della calcolatrice .

Per i pigri o sfaticati potete scaricare il file d'esempio :

Password :  "ImaginSystem" 
Link File Download : Download ServiceDemoCalc 

By ImaginSystems & Queen Gin
Categoria: VB.NET
lunedì, 17 set 2012 Ore. 15.35

Messaggi collegati


Ora e Data
Mappa
Blogs Amici
    Copyright © 2002-2007 - Blogs 2.0
    dotNetHell.it | Home Page Blogs
    ASP.NET 2.0 Windows 2003