Impedir ejecutar más de una vez la misma aplicación
Artículo por Club Developers · 11 mayo 2006
1918 vistas
El código mostrado a continuación permite detectar si la aplicación ya está en marcha. En tal caso, se mostrará un aviso.
vbnet
Imports System.IO Imports System.Management Imports System.IO.Path
vbnet
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '============================ '=== Las Variables '============================ Dim Process As New ManagementObjectSearcher("SELECT * FROM Win32_Process") 'Leemos los procesos Dim info As ManagementObject Dim stock As String Dim vrs As Integer '=== Recuperación de información del exe Dim MyNameApp As New FileInfo(Application.ExecutablePath) ' dónde está el programa Dim SingApp As FileVersionInfo = FileVersionInfo.GetVersionInfo(MyNameApp.Name) For Each info In Process.Get stock = info("Caption").ToString() If stock = SingApp.OriginalFilename.ToString() Then vrs = vrs + 1 If vrs > 1 Then MessageBox.Show("La aplicación '" & MyNameApp.Name & "' ya está ejecutándose", MsgBoxStyle.Critical) End End If End If Next End Sub
vbnet
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Process.Start(Application.ExecutablePath) End Sub