Verhindern das die Anwendung mehrfach geöffnet wird ?



  • Wie kann ich verhindern dass ein Benutzer mehrere Instanzen meiner Anwendung öffnen kann ? - Jeder eingeloggter Benutzer soll immer nur eine Instanz am Laufen haben.



  • garnichtmal lange her da wollte jemand laufende Programme finen

    // findet alle laufenden Instanzen eines Programm
    			Process [] apps = Process.GetProcessesByName(Application.ProductName);
    			if(apps.Length > 1)
    				Application.Exit();
    

    In einem GUI kann man das im Form.Load einbauen und schon gehts das Ding nur einmal auf denke ich.
    Gut um nun diese Daten direkt noch mit Usern in Zusammenhang zu bringen muss man mehr Künste vollbringen!
    Da dürfte folgender Namensraum noch interessant werden:

    using System.Security;
    

    mfg sclearscreen

    Hmm interessant damit habe ich mich och noch nicht weiter beschäftigt!
    Mal schauen ob ich da noch was finde.





  • Process [] alleaufderMaschine = System.Diagnostics.Process.GetProcesses("Computername");
    

    und fals sich der Rechnername mal ändert

    Process [] alle = System.Diagnostics.Process.GetProcesses(Environment.MachineName);
    


  • hab jetzt nen Quelltext gefunden augenscheinlich NET 2.0
    da ist Process.StartInfo vermutlich erweitert worden k.A.
    ich schaffe noch mit NET 1.1

    Naja jedenfalls gibts dort innerhalb von StartInfo och nen Username

    http://www.derkeiler.com/Newsgroups/microsoft.public.dotnet.framework.aspnet.security/2005-05/0275.html

    dann kannste obiges

    Process [] apps = Process.GetProcessesByName(Application.ProductName);
    			if(apps.Length > 1)
    				Application.Exit();
    

    Dann spezifischer abfragen!



  • Danke, Problem hat sich zwar mittlerweile erledigt, aber dann weiss ichs wenigstens für die Zukunft 😉


Log in to reply