Standardmäßig lege ich ja unter Visual Basic .NET bereits über die Projektoptionen fest, ob eine Anwendung eine Einzelinstanzanwendung (Option: Einzelinstanzanwendung erstellen) ist oder nicht. Der Nachteil: Die Änderung erfordert immer eine neue Übersetzung. Ist es möglich, diese Funktion wahlweise über das generierte Assembly zu (de)aktivieren, beispielsweise durch eine Änderung der Programmdatei im binären Dateimodus (aber wie?)? Oder gibt es einen anderen Weg, um diese Funktion - vielleicht per Kommandozeilenschalter - wahlweise zu aktivieren?
Hallo, du kannst das am besten über einen Mutex selbst steuern. Ich würde den Part schon beim Starten der Anwendung in den ApplicationEvents einbauen. Die Steuerung, ob Einzel- oder Mehrfachanwendung könnte ja durch die app.config erfolgen. Der Programmcode sollte dann etwa so aussehen:
Dim ok As Boolean Dim m As System.Threading.Mutex = new System.Threading.Mutex(True, Application.ProductName, ok) If Not ok Then MsgBox Application.ProductName + " läuft bereits!" End If
Alternativ könnte er die an das Programm übergebenen Parameter überprüfen und anhand derer solche Sachen steuern... aber ich würde ebenfalls den Weg über den Mutex gehen.
Wenn er natürlich mit einem "einfachen Schalter" dieses Verhalten steuern will muss der Wert irgendwo gespeichert werden... und da sind der Phantasie zum Glück keine Grenzen gesetzt ~~~~
Wenn er natürlich mit einem "einfachen Schalter" dieses Verhalten steuern will muss der Wert irgendwo gespeichert werden... und da sind der Phantasie zum Glück keine Grenzen gesetzt
~~~~