vi posto il programma:
in Form1.vb:
codice:
Imports Microsoft.Win32
Public Class FormAddIn
Dim strKey As String = "SOFTWARE\Microsoft\Office\Outlook\Addins\MyOutlookAddIn.Connect"
Dim ParentKey As RegistryKey = Registry.LocalMachine, Key As RegistryKey
Dim Valore As Integer, ValueName As String = "LoadBehavior"
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Call SettaInizio()
End Sub
Private Sub cmdAddIn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdAddIn.Click
Select Case cmdAddIn.Text.ToLower
Case "attiva"
Try
Key = ParentKey.OpenSubKey(strKey, True)
Key.SetValue(ValueName, 3)
Catch ex As Exception
Call Errore(ex)
End Try
Case "disattiva"
Try
Key = ParentKey.OpenSubKey(strKey, True)
Key.SetValue(ValueName, 2)
Catch ex As Exception
Call Errore(ex)
End Try
Case "registra"
Try
ParentKey.CreateSubKey(strKey)
Key = ParentKey.OpenSubKey(strKey, True)
Key.SetValue(ValueName, 3)
Catch ex As Exception
Call Errore(ex)
End Try
End Select
Key = Nothing
Call SettaInizio()
End Sub
Private Sub cmdChiudi_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdChiudi.Click
End
End Sub
Sub SettaInizio()
Try
If ControllaProgramma("outlook") = False Then 'va in errore qui
Dim strErr As String
strErr = "Impossibile Continuare! Outlook risulta aperto."
Throw New Exception(strErr)
End If
Catch ex As Exception
Call Errore(ex)
End Try
Try
Key = ParentKey.OpenSubKey(strKey)
If Key IsNot Nothing Then
Valore = Key.GetValue("LoadBehavior")
Select Case Valore
Case 0, 2
cmdAddIn.Text = "Attiva"
Case 3
cmdAddIn.Text = "Disattiva"
End Select
Else
cmdAddIn.Text = "Registra"
End If
Key = Nothing
Catch ex As Exception
Call Errore(ex)
End Try
End Sub
Sub Errore(ex as Exception)
Dim strMsg As String, strTitle As String
strMsg = ex.Message
strTitle = "Errore!"
MessageBox.Show(strMsg.ToUpper, strTitle, MessageBoxButtons.OK, MessageBoxIcon.Error)
End 'va in errore anche qui
End Sub
End Class
in module1.vb:
codice:
Module Module1
Function ControllaProgramma(ByVal strName As String)
Dim Funzione As Boolean, ProcProg As Process()
ProcProg = Process.GetProcessesByName(strName)
Funzione = True
If ProcProg.GetUpperBound(0) > -1 Then Funzione = False
ProcProg = Nothing
Return Funzione
End Function
End Module
il form è composto da due pulsanti: cmdAddIn e cmdChiudi.
grazie