Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1839 | Besucher online: 129
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Programm RUN Check


Autor: O.G.
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 4568
  
Kick it on dotnet-kicks.de  

Beschreibung:

Mit diesem Code kann ermittel werden ob das Programm schon läuft. so kann verhindert werden das es mehrfach ausgeführt wird.

Abgelegt unter: Programm RUN, Check, Task, .



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System.Diagnostics;  

 string StartTaskname = "MeinProgrammName"; // Taskname
 int ProgrammOK = 0;


 public void FirstRun()
        {
            // Pragamm nicht mehrmals Starten
            int ProgrammCount = 0;
            Process[] ProgrammTask = Process.GetProcesses();
            foreach (Process ScannTask in ProgrammTask)
            {
                if (ScannTask.ProcessName == StartTaskname) ProgrammCount = ProgrammCount + 1;
            }
            if (ProgrammCount > 0)
            {
                MessageBox.Show("Error\nDas Programm kann nicht mehrmals gestartet werden.", "Programm Error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                ProgrammOK = 1;
                this.Close();
            }
            else
            {
                ProgrammOK = 0;
		// Weitere Programm Code´s
		//...
            }
        }



        private void Form1_Load(object sender, EventArgs e)
        {
	    try
		{
            	ProgrammStart();
		}
	    catch
		{
		// Fehler
		//...
		}
        }
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

O.G. schrieb am:  30.06.2010 02:09:29

Ich weiss das " ProgrammOK = 1; " überflüssig ist! Aber falls sich das Programm irgendeine Grund NICHT beendet hab ich nich eine Sicherung!
Kosmo schrieb am:  30.06.2010 08:53:33

Das Problem lässt sich wesentlich einfacher mit einem Mutex lösen:
Zum Beispiel:

bool instanziert;
Mutex mutex = new Mutex(false, "Local\\" + programmName, out instanziert);


(http://en.csharp-online.net/CSharp_FAQ:_How_ensure_that_only_one_instance_of_an_application_will_run)
Keks1911 schrieb am:  05.07.2010 15:30:05

Mir gefällt die Lösung von Kosmo. Die verlinkte Lösung mit dem Socket ist dagegen ein wenig komisch.. ^^
Ole schrieb am:  07.07.2010 08:58:34

Schön wäre ein Tip, mit dem man das evtl. schon gestartete Programm in den Vordergrund holt.
RogerH schrieb am:  21.07.2010 10:29:11

Das Ganze funktioniert auf einem Terminal Server nicht, da kann das Programm in einer anderen Session bereits gestartet sein und das wäre dann OK. Daher zusätzlich mit EigenerProzess = Process.GetCurrentProcess den eigenen Prozess holen auf ScannTask.SessionID <> EigenerProzess.SessionID vergleichen.

Den Zähler kann man dann vermeiden, indem man auch noch auf ScannTask.Id <> EigenerProzess.Id vergleicht.
Martin Dauskardt schrieb am:  03.09.2010 20:21:48

Warum den Code nicht in die Main() schreiben?
Spart das Laden der Form;
O.G. schrieb am:  22.12.2010 07:12:59

@Martin,
Weil das ein teile eine Klasse ist und ich nicht die ganze Klasse hir rein setzten wollte. Es ist nur als Demo ich schreib in " Form1_Load " nur die Aufrufe
so halt ich den ganzen Quelltext sauber.

MFG Oliver G


Diese Snippets könnten für Sie interessant sein:
[C#] Prüfen, ob eine Datei ausfürbar ist (.exe, .bat, etc.)
[C#] Prüfen, ob Teil des .NET Frameworks
[C#] Herausfinden, ob ein Programm (ProgramName) installiert ist.
[C#] Property auf Attribute prüfen Property.HasAttribute
[VB.NET] Das Sieb des Eratosthenes
[VB.NET] Effizientere Primzahlprüfung großer Zahlen
[VB.NET] Das Sieb von Atkin
[VB.NET] Das Sieb von Atkin (2)
[VB.NET] Das Sieb von Atkin (2) - aktuell
[C#] Prüfen ob ein bestimmter Prozess gerade ausgeführt wird
[C#] Integers
[C#] Search Plugin-DLLs with one line
[C#] sehr einfacher Timer
[C#] BindingList mit Sortierfunktion
[C#] Datei öffnen
[C#] ListView Spalten sortieren
[C#] byte-String in byte wandeln
[C#] Excel Spalten Bezeichnung nach Integer
[C#] Prozentual Textvergleichen
[C#] Console in eigene Form einbinden
[C#] Programm am Desktop andocken
[C#] lokale User und Gruppen administrieren
[C#] SimpleDb
[C#] Primärschlüsselwerte ermitteln
[C#] Automatisches Umbenennen eines Pfades
[C#] Connection-String Dialog öffnen
[C#] URL auslesen
[C#] Silverlight Anwendung erstellen
[C#] Text codieren
[VB.NET] ''Enter'' in TextBox
[C#] Zufälliger Eintrag aus einer Liste (Extension Method)
[C#] XAML Grundlagen in Silverlight 3
[C#] MakeNiceSize()
[C#] 22 System Pfade abfragen
[C#] Zahlensysteme (BIN, HEX, OCT, DEZ) umrechnen
[C#] Erzeugen von Zeichenfolgen durch Permutation
[C#] Form ohne Rahmen verschieben
[C#] Byte-Array in Struktur kopieren
[VB.NET] Treenode-Tags zur verwendung abfragen [für Anfänger]
[C#] String to char Tarnung

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.