en vb 2008 express esta opción está disponible en Propiedades de la aplicación. ¿Alguien sabe cuál es su función? ¿lo hace para que sea imposible abrir dos instancias al mismo tiempo?"make single instance application" ¿qué hace esto?
Respuesta
Incluso hay un método más fácil:
Utilice el siguiente código ...
Imports System.IO
En el evento principal de carga del formulario haga lo siguiente:
If File.Exist(Application.StartupPath & "\abc.txt") Then
'You can change the extension of the file to what ever you desire ex: dll, xyz etc.
MsgBox("Only one Instance of the application is allowed!!!")
Environment.Exit(0)
Else
File.Create(Application.StartupPath & "\abc.txt", 10, Fileoptions.DeleteonClose)
Endif
Esto se encargará de instancias únicas, así como clientes ligeros, y el archivo no se puede eliminar mientras se ejecuta la aplicación. y al cerrar la aplicación o si la aplicación falla, el archivo se eliminará solo.
¿Lo hace de modo que sea imposible abrir dos instancias al mismo tiempo?
Sí.
Sí, tiene razón, ya que solo permitirá que una instancia de su aplicación esté abierta a la vez.
Sí, es makes it impossible para abrir dos instancias al mismo tiempo.
Sin embargo, es muy importante para tener en cuenta errores. Con algunos firewalls, es impossible para abrir incluso instancia de - ¡su aplicación falla al iniciarse! Consulte this excellent article de Bill McCarthy para obtener más detalles y una técnica para restringir su aplicación a una instancia. Su técnica para comunicar el argumento de la línea de comandos desde una segunda instancia a la primera instancia usa pipes en .NET 3.5.
Interesante artículo, gracias! – Kaniu
¿Por qué no utilizar un Mutex? Esto es lo que MS sugiere y lo he usado por muchos años sin problemas.
Public Class Form1
Private objMutex As System.Threading.Mutex
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Check to prevent running twice
objMutex = New System.Threading.Mutex(False, "MyApplicationName")
If objMutex.WaitOne(0, False) = False Then
objMutex.Close()
objMutex = Nothing
MessageBox.Show("Another instance is already running!")
End
End If
'If you get to this point it's frist instance
End Sub
End Class
Cuando el formulario, en este caso, se cierra, se libera el mutex y puede abrir otro. Esto funciona incluso si tu aplicación falla.
porque es solo .NET 4.5. ¡pero esta es una gran información! –
¿Qué es .NET 4.5? He estado usando esto desde 1.1 y actualmente lo uso en VS2008, como se indica en la pregunta original. – Steve
esto no funciona en usuarios múltiples –
Encontré un artículo excelente para este tema: Single Instance Application in VB.NET. el uso
Ejemplo:
Module ModMain
Private m_Handler As New SingleInstanceHandler()
' You should download codes for SingleInstaceHandler() class from:
' http://www.codeproject.com/Articles/3865/Single-Instance-Application-in-VB-NET
Private m_MainForm As Form
Public Sub Main(ByVal args() As String)
AddHandler m_Handler.StartUpEvent, AddressOf StartUp ' Add the StartUp callback
m_Handler.Run(args)
End Sub
Public Sub StartUp(ByVal sender As Object, ByVal event_args As StartUpEventArgs)
If event_args.NewInstance Then ' This is the first instance, create the main form and addd the child forms
m_MainForm = New Form()
Application.Run(m_MainForm)
Else ' This is coming from another instance
' Your codes and actions for next instances...
End If
End Sub
End Module
Dim _process() As Process
_process = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)
If _process.Length > 1 Then
MsgBox("El programa ya está ejecutandose.", vbInformation)
End
End If
- 1. ¿Qué hace "make check"?
- 2. ¿Qué hace esto?
- 3. ¿Por qué hace esto lo que hace?
- 4. ¿Qué hace esto en javascript?
- 5. ¿Por qué hace esto? si - __name__ == '__main__'
- 6. "base.send: include, InstanceMethods" ---> ¿Qué hace esto?
- 7. int num = * (int *) número; ¿Qué hace esto?
- 8. ¿Qué hace esto realmente? - Crazy C++ función
- 9. ¿Qué hace un símbolo de porcentaje en un archivo MAKE?
- 10. El método de registro Authlogic. ¿Qué hace esto?
- 11. ¿Qué hace esto? lista de tareas/m "mscor *"
- 12. ¿Por qué hace esto fundido operaciones de mecanismos
- 13. ¿Por qué agregar el símbolo @ hace que esto funcione?
- 14. ¿Qué hace "devolver esto" dentro de una función javascript?
- 15. Nombre del método vacío, ¿qué hace esto realmente?
- 16. ¿Qué hace g_signal_connect_swapped()?
- 17. Codeigniter: Get Instance
- 18. * esto hace una llamada al constructor?
- 19. Java Static vs Instance
- 20. ¿Por qué verificar esto? = Nulo?
- 21. jQuery anidado Esto hace referencia a
- 22. ¿Qué hace este código xkcd?
- 23. ¿Qué significa "todo" en un archivo MAKE?
- 24. ¿qué significa esto: "jQuery ('> li', esto)"
- 25. ¿Qué hace "make oldconfig" exactamente en el archivo makefile del kernel de Linux?
- 26. Single Responsibility y Mixins
- 27. Instance Show para la función
- 28. Ruby Instance Variable Scope Pregunta
- 29. Static Vs Instance Method Performance C#
- 30. Android ListView Refresh Single Row
Requiere acceso de escritura al directorio que contiene el EXE, que no está disponible si instala el archivo EXE en Archivos de programa y ejecuta el EXE como un usuario que no es administrador. – MarkJ
No diría ** ** que esto es más fácil que marcar la casilla 'Hacer solicitud de instancia única' –