Programm nur 1 Mal starten



  • Hi, kurze Frage ... wie kann ich im c# zulassen, dass das Diaglogfenter nur geöffnet wird, wenn es nicht bereits offen ist?



  • Was denn nun, Dialog oder Programm ?!



  • Falls es wirklich ums Programm geht:
    Suche mal nach "Single Instance Application".

    Normalerweise wird sowas wie ein Mutex oder ähnliche prozessübergreifende Synchronisations Objekte benötigt.

    Gruss Simon



  • bool pobjIOwnMutex = false;
                System.Threading.Mutex pobjMutex = new System.Threading.Mutex(true, "mutexname", out pobjIOwnMutex);
    
                if (pobjIOwnMutex)
                {
    
                    finally
                    {
                        Console.WriteLine("Mutex release");
                        pobjMutex.ReleaseMutex();
    
                    }
                }
    else
    {
    // Programm schließen
    }
    


  • okay ... das sieht erst mal bisschen chinesisch für mich aus *g*

    wo genau muss ich den code einfügen wenn es bei mir so aussieht?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
        }
    }
    


  • Im gezeigten Code garnicht. Das fügst Du im Einstiegspunkt Deiner Anwendung ein.



  • also in dem Form1.Designer.cs meinst du jetzt?



  • Als erst einmal sollte geklärt werden, ob Du die Form nur einmal erlauben willst oder die Ausführung des Programms nur einmal erlauben willst.

    Die hier vorgestellten Lösungen zielen darauf ab, die gesamte Anwendung nur einmal zu starten.

    Per default ist der Dateiname für den Einstiegspunkt Program.cs . Darin befindet sich eine Klasse Program mit einer statischen Methode Main. In diese kannst Du obiges einbringen.


Log in to reply