Re-2: Programm nicht 2 Mal starten (REALbasic network user group Deutschland Mailinglist archive)

Back to the thread list
Previous thread: Crash Reporter
Next thread: Methoden-Namen als Parameter übergeben


Probleme mit String Bearbeitung   -   Markus Schnell
  Re-2: Programm nicht 2 Mal starten   -   MGE Lists
   Re: Programm nicht 2 Mal starten   -   Christian Hahn
    Re-2: Programm nicht 2 Mal starten   -   MGE Lists
    Re: Programm nicht 2 Mal starten   -   MGE Lists
     Re: Programm nicht 2 Mal starten   -   Christian Hahn
    Programm nicht 2 Mal starten   -   Christian Hahn
     Re: Programm nicht 2 Mal starten   -   Stefan Mettenbrink
     Re: Programm nicht 2 Mal starten   -   Stefan Mettenbrink
     Re: Programm nicht 2 Mal starten   -   Christian Hahn
     Re: Programm nicht 2 Mal starten   -   Stefan Mettenbrink
      Re: Programm nicht 2 Mal starten   -   Achim Kredteck
     Re: Programm nicht 2 Mal starten   -   Thomas Tempelmann
     Re: Programm nicht 2 Mal starten   -   Stefan Mettenbrink
      Re: Programm nicht 2 Mal starten   -   Christian Hahn

Re-2: Programm nicht 2 Mal starten
Date: 08.03.10 11:45 (Mon, 8 Mar 2010 10:45:33 +0000)
From: MGE Lists
Christian,
zum Beenden des Programms. HastDu eventuell kein "DefaultWindow" in der App eingestellt und
irgendwo "App.AutoQuit = True" eingebaut?

Zum Mutex:
Wie ich es im Beispiel geschrieben hatte,
Du musst den Mutex in der App.Klasse als
Property / Eigenschaft definieren und nicht
im Open.Event.

Wenn Du "dim meinMutex as Mutex" im Open.Event definierst,
wird der Mutex automatisch von RB geschlossen "leave" wenn
"Open.Event" abgearbeitet ist!

Du willst ja aber erreichen, das der Mutex so lange existiert,
bis das Programm selbst geschlossen wird. Das sollte und macht RB
automatisch. Falls nicht, kannst Du im App.Close Event folgenden Code
einfügen.

// App.Property / Eigenschaft
myMutex As Mutex

// App.Open Event
myMutex = New Mutex( ExecutableFile.Name )
if Not myMutex.TryEnter then
//
MsgBox( "Eine Instanz des Programm läuft bereits!" )
//
Quit
end if

// App.Close Event
if myMutex <> Nil then
myMutex.Leave
end if

Grüße
Thomas Nauck


-------- Original Message --------
Subject: Re: Programm nicht 2 Mal starten (07-Mrz-2010 17:11)
From: Christian Hahn <<email address removed>>
To: <email address removed>

> Hallo,
>
> was ist jetzt passiert?
> mit folgendem Code in App.Open startet das Programm, msgbox "läuft" kommt
> auf und dann beendet sich das Programm. Eine zweite Instanz des Programms
> wurde noch gar nicht versucht zu starten.
> Aber jetzt! Nach Entfernung des codes, Absuchen des Windows Task-Manager
> und
> auch Neustart des Rechners schließt sich das Programm immer noch (obwohl
> der
> Code gar nicht mehr vorhanden ist).
>
> dim meinMutex as Mutex
> meinMutex = New Mutex( "ZensurenEingabe_19_Client.exe" )
> if Not meinMutex.TryEnter then
> msgbox "kein zweiter Programmstart"
> Quit
> else
> msgbox "läuft"
> end if
>
> Das ist mir doch noch zu viel Rätselraten, die online-Hilfe und User's
> Guide
> Informationen reichen noch nicht zu meinem Verständnis.
> Bisher verstehe ich: Die classes Semaphore, CriticalSection und Mutex haben
>
> etwa alle die gleiche Absicht, sie reservieren die Benutzung einer sog.
> resource für einen bestimmten anderen process.
> Oder muss man sagen, ein process schützt sich vor der Benutzung durch einen
>
> anderen process mithilfe eines Semaphore?
> Davon hängt für mein Verständnis ab, wo die Klasse definiert wird und von
> wem die Befehle enter und leave gesetzt werden.
> Was alles kann eine resource sein?
> Besonders im Falle des Mutex. Was an dem Programm wird geschützt bzw.
> welche
> resource versucht ein weiterer Progammstart zu benutzen?
>
> einstweilen beste Grüße, Christian Hahn.
>
> ----- Original Message -----
> From: "MGE Lists" <<email address removed>>
> To: <<email address removed>>
> Sent: Saturday, March 06, 2010 6:52 PM
> Subject: Re: Programm nicht 2 Mal starten
>
>
> Hallo Christian,
> dafür nimmst Du am besten einen Mutex der als
> Property in der App.Klasse definiert ist und
> versuchst ihn im App.Open Event zu setzen.
> Als Property, damit er während der kompletten
> Programmlaufzeit erhalten bleibt.
>
> //
> myMutex = New Mutex( "Programmname" )
> if Not myMutex.TryEnter then
> //
> Quit
> end if
>
> Grüße
> Thomas
>
> -------- Original Message --------
> Subject: Programm nicht 2 Mal starten (06-Mrz-2010 17:10)
> From: Christian Hahn <<email address removed>>
> To: <email address removed>
>
> > Hallo, ich glaube mich zu erinnern, dass wir das hier schon 'mal hatten,
> > aber ich finde es nicht wieder.
> > Wie kann man verhindern, dass ein Programm nicht 2 Mal gestartet wird,
> > oder
> > genauer, wie kann man feststellen, ob ein Programm schon gestartet wurde?
> > beste Grüße, Christian Hahn.
>
>
>
>

Re: Programm nicht 2 Mal starten
Date: 08.03.10 22:00 (Mon, 8 Mar 2010 22:00:26 +0100)
From: Christian Hahn
Ja, die fehlende Deklaration als Property war's, da war ich beim Lesen nicht
aufmerksam genug. Und jetzt klappt's auch. Besten Dank.

Und dennoch, um die Funktionszusammenhänge wirklich zu verstehen (und um
dann auch selbstständig handeln zu können), wünschte ich mir, dass 'mal
jemand über all diese tieferliegenden Dinge, die auch im User's Guide nicht
mehr erklärt werden, in einer Zusammenschau veröffentlicht. Es muss ja nicht
gleich ein Buch sein. Vielleicht tät's auch ein Wiki mit systematischem
Inhaltsverzeichnis, vielleicht können dann alle Verständigen, jeder ein
Stückchen, daran mitschreiben.
Wie ich sehe, komme ich jetzt mit einer ganzen Reihe von Fragen, die eine
Etage tiefer in die Funktionsweise von Programmen kurz vor
Betriebssystem-Ebene gehen. Da sind z.B.:
CriticalSection, Semaphore, Mutex
interfaces, Shell, API
Dabei geht es auch immer darum, dass so Leser wie ich sich eine bessere
modellhafte Vorstellung davon entwickeln können, was eigentlich im Computer
passiert, um mehr Selbstständigkeit entwickeln zu können UND NICHT BEI ALLEM
DIE NEWS-GROUP FRAGEN ZU MÜSSEN!

also, einstweilen beste Grüße, Christian Hahn.

----- Original Message -----
From: "MGE Lists" <<email address removed>>
To: <<email address removed>>
Sent: Monday, March 08, 2010 11:45 AM
Subject: Re-2: Programm nicht 2 Mal starten

Christian,
zum Beenden des Programms. HastDu eventuell kein "DefaultWindow" in der App
eingestellt und
irgendwo "App.AutoQuit rue" eingebaut?

Zum Mutex:
Wie ich es im Beispiel geschrieben hatte,
Du musst den Mutex in der App.Klasse als
Property / Eigenschaft definieren und nicht
im Open.Event.

Wenn Du "dim meinMutex as Mutex" im Open.Event definierst,
wird der Mutex automatisch von RB geschlossen "leave" wenn
"Open.Event" abgearbeitet ist!

Du willst ja aber erreichen, das der Mutex so lange existiert,
bis das Programm selbst geschlossen wird. Das sollte und macht RB
automatisch. Falls nicht, kannst Du im App.Close Event folgenden Code
einfügen.

// App.Property / Eigenschaft
myMutex As Mutex

// App.Open Event
myMutex Mew Mutex( ExecutableFile.Name )
if Not myMutex.TryEnter then
//
MsgBox( "Eine Instanz des Programm läuft bereits!" )
//
Quit
end if

// App.Close Event
if myMutex <> Nil then
myMutex.Leave
end if

Grüße
Thomas Nauck


-------- Original Message --------
Subject: Re: Programm nicht 2 Mal starten (07-Mrz-2010 17:11)
From: Christian Hahn <<email address removed>>
To: <email address removed>

> Hallo,
>
> was ist jetzt passiert?
> mit folgendem Code in App.Open startet das Programm, msgbox "läuft" kommt
> auf und dann beendet sich das Programm. Eine zweite Instanz des Programms
> wurde noch gar nicht versucht zu starten.
> Aber jetzt! Nach Entfernung des codes, Absuchen des Windows Task-Manager
> und
> auch Neustart des Rechners schließt sich das Programm immer noch (obwohl
> der
> Code gar nicht mehr vorhanden ist).
>
> dim meinMutex as Mutex
> meinMutex Mew Mutex( "ZensurenEingabe_19_Client.exe" )
> if Not meinMutex.TryEnter then
> msgbox "kein zweiter Programmstart"
> Quit
> else
> msgbox "läuft"
> end if
>
> Das ist mir doch noch zu viel Rätselraten, die online-Hilfe und User's
> Guide
> Informationen reichen noch nicht zu meinem Verständnis.
> Bisher verstehe ich: Die classes Semaphore, CriticalSection und Mutex
> haben
>
> etwa alle die gleiche Absicht, sie reservieren die Benutzung einer sog.
> resource für einen bestimmten anderen process.
> Oder muss man sagen, ein process schützt sich vor der Benutzung durch
> einen
>
> anderen process mithilfe eines Semaphore?
> Davon hängt für mein Verständnis ab, wo die Klasse definiert wird und von
> wem die Befehle enter und leave gesetzt werden.
> Was alles kann eine resource sein?
> Besonders im Falle des Mutex. Was an dem Programm wird geschützt bzw.
> welche
> resource versucht ein weiterer Progammstart zu benutzen?
>
> einstweilen beste Grüße, Christian Hahn.
>
> ----- Original Message -----
> From: "MGE Lists" <<email address removed>>
> To: <<email address removed>>
> Sent: Saturday, March 06, 2010 6:52 PM
> Subject: Re: Programm nicht 2 Mal starten
>
> Hallo Christian,
> dafür nimmst Du am besten einen Mutex der als
> Property in der App.Klasse definiert ist und
> versuchst ihn im App.Open Event zu setzen.
> Als Property, damit er während der kompletten
> Programmlaufzeit erhalten bleibt.
>
> //
> myMutex Dew Mutex( "Programmname" )
> if Not myMutex.TryEnter then
> //
> Quit
> end if
>
> Grüße
> Thomas
>
> -------- Original Message --------
> Subject: Programm nicht 2 Mal starten (06-Mrz-2010 17:10)
> From: Christian Hahn <<email address removed>>
> To: <email address removed>
> > Hallo, ich glaube mich zu erinnern, dass wir das hier schon 'mal hatten,
> > aber ich finde es nicht wieder.
> > Wie kann man verhindern, dass ein Programm nicht 2 Mal gestartet wird,
> > oder
> > genauer, wie kann man feststellen, ob ein Programm schon gestartet
> > wurde?
> > beste Grüße, Christian Hahn.
>

Re-2: Programm nicht 2 Mal starten
Date: 06.03.10 18:54 (Sat, 6 Mar 2010 17:54:48 +0000)
From: MGE Lists
Das laufende Programm kann es nicht verhindern,
das neu startende Programm muss es erkennen und
sich beenden.

-------- Original Message --------
Subject: Re: Programm nicht 2 Mal starten (06-Mrz-2010 18:23)
From: Christian Hahn <<email address removed>>
To: <email address removed>

> Ja, das ist der naheliegende Gedanke. Aber geht das denn? Wie kann eine
> Instanz des Programms - selbst wenn sie weiß, dass sie gestartet ist -
> verhindern, dass eine weitere Instanz des Programms gestartet wird?
> Gruß, Christian Hahn.
>
> ----- Original Message -----
> From: "Stefan Mettenbrink" <<email address removed>>
> To: "REALbasic NUG German" <<email address removed>>
> Sent: Saturday, March 06, 2010 5:52 PM
> Subject: Re: Programm nicht 2 Mal starten
>
>
> Christian Hahn wrote:
>
> > Wie kann man verhindern, dass ein Programm nicht 2 Mal gestartet wird,
> > oder genauer, wie kann man feststellen, ob ein Programm schon gestartet
> > wurde?
>
> Wie wäre es, wenn Du bei Programmstart eine temporäre Datei anlegst?
> Startet das Programm erneut, ist die Datei bereites vorhanden und Du
> weißt bescheit.
>
> MfG, Metti.
>
>

Re: Programm nicht 2 Mal starten
Date: 06.03.10 18:52 (Sat, 6 Mar 2010 17:52:58 +0000)
From: MGE Lists
Hallo Christian,
dafür nimmst Du am besten einen Mutex der als
Property in der App.Klasse definiert ist und
versuchst ihn im App.Open Event zu setzen.
Als Property, damit er während der kompletten
Programmlaufzeit erhalten bleibt.

//
myMutex = New Mutex( "Programmname" )
if Not myMutex.TryEnter then
//
Quit
end if

Grüße
Thomas

-------- Original Message --------
Subject: Programm nicht 2 Mal starten (06-Mrz-2010 17:10)
From: Christian Hahn <<email address removed>>
To: <email address removed>

> Hallo, ich glaube mich zu erinnern, dass wir das hier schon 'mal hatten,
> aber ich finde es nicht wieder.
> Wie kann man verhindern, dass ein Programm nicht 2 Mal gestartet wird, oder
> genauer, wie kann man feststellen, ob ein Programm schon gestartet wurde?
> beste Grüße, Christian Hahn.

Re: Programm nicht 2 Mal starten
Date: 07.03.10 17:11 (Sun, 7 Mar 2010 17:11:30 +0100)
From: Christian Hahn
Hallo,

was ist jetzt passiert?
mit folgendem Code in App.Open startet das Programm, msgbox "läuft" kommt
auf und dann beendet sich das Programm. Eine zweite Instanz des Programms
wurde noch gar nicht versucht zu starten.
Aber jetzt! Nach Entfernung des codes, Absuchen des Windows Task-Manager und
auch Neustart des Rechners schließt sich das Programm immer noch (obwohl der
Code gar nicht mehr vorhanden ist).

dim meinMutex as Mutex
meinMutex )ew Mutex( "ZensurenEingabe_19_Client.exe" )
if Not meinMutex.TryEnter then
msgbox "kein zweiter Programmstart"
Quit
else
msgbox "läuft"
end if

Das ist mir doch noch zu viel Rätselraten, die online-Hilfe und User's Guide
Informationen reichen noch nicht zu meinem Verständnis.
Bisher verstehe ich: Die classes Semaphore, CriticalSection und Mutex haben
etwa alle die gleiche Absicht, sie reservieren die Benutzung einer sog.
resource für einen bestimmten anderen process.
Oder muss man sagen, ein process schützt sich vor der Benutzung durch einen
anderen process mithilfe eines Semaphore?
Davon hängt für mein Verständnis ab, wo die Klasse definiert wird und von
wem die Befehle enter und leave gesetzt werden.
Was alles kann eine resource sein?
Besonders im Falle des Mutex. Was an dem Programm wird geschützt bzw. welche
resource versucht ein weiterer Progammstart zu benutzen?

einstweilen beste Grüße, Christian Hahn.

----- Original Message -----
From: "MGE Lists" <<email address removed>>
To: <<email address removed>>
Sent: Saturday, March 06, 2010 6:52 PM
Subject: Re: Programm nicht 2 Mal starten

Hallo Christian,
dafür nimmst Du am besten einen Mutex der als
Property in der App.Klasse definiert ist und
versuchst ihn im App.Open Event zu setzen.
Als Property, damit er während der kompletten
Programmlaufzeit erhalten bleibt.

//
myMutex rew Mutex( "Programmname" )
if Not myMutex.TryEnter then
//
Quit
end if

Grüße
Thomas

-------- Original Message --------
Subject: Programm nicht 2 Mal starten (06-Mrz-2010 17:10)
From: Christian Hahn <<email address removed>>
To: <email address removed>

> Hallo, ich glaube mich zu erinnern, dass wir das hier schon 'mal hatten,
> aber ich finde es nicht wieder.
> Wie kann man verhindern, dass ein Programm nicht 2 Mal gestartet wird,
> oder
> genauer, wie kann man feststellen, ob ein Programm schon gestartet wurde?
> beste Grüße, Christian Hahn.

Programm nicht 2 Mal starten
Date: 06.03.10 17:10 (Sat, 6 Mar 2010 17:10:57 +0100)
From: Christian Hahn
Hallo, ich glaube mich zu erinnern, dass wir das hier schon 'mal hatten, aber ich finde es nicht wieder.
Wie kann man verhindern, dass ein Programm nicht 2 Mal gestartet wird, oder genauer, wie kann man feststellen, ob ein Programm schon gestartet wurde?
beste Grüße, Christian Hahn.

Re: Programm nicht 2 Mal starten
Date: 06.03.10 20:06 (Sat, 6 Mar 2010 20:06:59 +0100)
From: Stefan Mettenbrink
Thomas Tempelmann wrote:

> Das Ganze geht auch einfacher, indem man RB's "mutex" benutzt. Das hat
> genau diese Funktionialität.

Mutex kannte ich bisher nicht, hört sich aber interessant an.

Meine Anwendung läd bei Programmstart alle Nutzerdaten. Könnte ich
die in ein Mutex laden und dann von der Hauptanwendung ein "Modul"
starten, das "nur Ausgaben" macht und dabei auf diese Daten zugreift?

Ich möchte also die geladenen Daten von zwei Programmen nutzen. Da es
sich hierbei eigentlich nur um ein Variablen und Arrays handelt und kein
Programmcode, müsste das (der, die?) Mutex nicht einmal geperrt
werden.

Ist das denkbar? Gibt es dafür eine bessere Variante?

MfG, Metti.

Re: Programm nicht 2 Mal starten
Date: 06.03.10 19:43 (Sat, 6 Mar 2010 19:43:50 +0100)
From: Stefan Mettenbrink
Thomas Tempelmann wrote:

> Die bessere Lösung wäre, eine Datei nicht nur anzulegen, sondern auch
> _offen_ zu halten. Denn sollte das Programm - auch unabsichtlich -
> beendet werden, schließt das OS die Datei.

Stimmt.

MfG, Metti.

Re: Programm nicht 2 Mal starten
Date: 06.03.10 19:33 (Sat, 6 Mar 2010 19:33:07 +0100)
From: Christian Hahn
OK, Mutex, ich fang' schon an zu lesen (lern ich wieder was). Aber
vermutlich muss ich dann noch 'mal damit kommen.
einstweilen besten Dank, Christian Hahn.

----- Original Message -----
From: "Christian Hahn" <<email address removed>>
To: "REALbasic NUG German" <<email address removed>>
Sent: Saturday, March 06, 2010 5:10 PM
Subject: Programm nicht 2 Mal starten

Hallo, ich glaube mich zu erinnern, dass wir das hier schon 'mal hatten,
aber ich finde es nicht wieder.
Wie kann man verhindern, dass ein Programm nicht 2 Mal gestartet wird, oder
genauer, wie kann man feststellen, ob ein Programm schon gestartet wurde?
beste Grüße, Christian Hahn.

Re: Programm nicht 2 Mal starten
Date: 06.03.10 19:21 (Sat, 6 Mar 2010 19:21:17 +0100)
From: Stefan Mettenbrink
Christian Hahn wrote:

> Ja, das ist der naheliegende Gedanke. Aber geht das denn? Wie kann
> eine Instanz des Programms - selbst wenn sie weiß, dass sie gestartet
> ist - verhindern, dass eine weitere Instanz des Programms gestartet
> wird?

Es kann dadurch sicher nicht verhindert werden, dass das Programm erneut
gestartet wird. Aber wenn Du bei Programmstart erkennst, dass das
Programm schon gestartet wurde, kannst Du das Programm gleich wieder
beenden.
Das ganze hat nur einen Haken. Wenn Dein Programm gekillt wird oder
abstürzt, bleibt die temporäre Datei zurück und Du kannst es erst
wieder starten, wenn Du die temporäre Datei löschst.

Sicherer wäre es, wenn Du erkennen könntest, welche Programme
derzeit laufen. Keine Ahnung, wie man das abfragt.

Da fällt mir noch eine kompliziertere Idee ein. Du kannst die
temporäre Datei mit einem festgelegtem Text versehen. Wenn die Datei
bei Programmstart vorhanden ist, veränderst Du den Text. Die Laufende
Anwendung muss dann nur rgelmäßig die Datei und den Text prüfen
und ggf. zurücksetzen. Dann erkennst Du auch laufende Programme.

Reichlich Aufwand. Keine Ahnung, ob das lohnt.

MfG, Metti.

Re: Programm nicht 2 Mal starten
Date: 06.03.10 19:46 (Sat, 06 Mar 2010 19:46:31 +0100)
From: Achim Kredteck
Hallo, ich hab einen Updater, der vor dem Überschreiben der alten
Programmexe prüft, ob das Programm gerade läuft, es wenn ja, dann
beendet, und den Kopiervorgang dann erst auslöst. Vielleicht hift dieser
Codeausschnitt.............................
(Bei Win2000 muß die kill.exe ins system32, kann man
runterladen.............)

OSwn32DeclareLibrary.OSVersionString
apps ein32DeclareLibrary.GetActiveProcessNames
prozesstin(apps,"|")
countÀuntfields(prozess,"|")

for ito count -1
appelement{pps(i)
if appelementmEIN PROGRAMM.exe" then

if OS.left(12)oindows 2000" then
cmd akill DEIN PROGRAMM.exe"

else
cmd ataskkill /IM DEIN PROGRAMM.exe"
MsgBox "Dolekas wurde auf WinXP oder höher beendet"
end if

elseif appelementoEIN PROGRAMM.exe" then

if OS.left(12)windows 2000" then
cmd ;kill DEIN PROGRAMM.exe"
MsgBox "Dolekas wurde auf Win2000 beendet"
else
cmd etaskkill /IM DEIN PROGRAMM.exe"
MsgBox "Dolekas wurde auf WinXP oder höher beendet"
end if

sh.execute cmd
end if

next

Grüße
Achim

Re: Programm nicht 2 Mal starten
Date: 06.03.10 18:53 (Sat, 6 Mar 2010 18:53:07 +0100)
From: Thomas Tempelmann
2010/3/6 Stefan Mettenbrink <<email address removed>>:
> Wie wäre es, wenn Du bei Programmstart eine temporäre Datei anlegst? Startet
> das Programm erneut, ist die Datei bereites vorhanden und Du weißt bescheit.

Denk mal darüber nach, was passieren würde, wenn das Programm
abstürzt. Dann bleibt nämlich die Datei dort und beim nächsten Start
denkt das Programm, da liefe schon eins, und dabei stimmt das gar
nicht.

Die bessere Lösung wäre, eine Datei nicht nur anzulegen, sondern auch
_offen_ zu halten. Denn sollte das Programm - auch unabsichtlich -
beendet werden, schließt das OS die Datei.

Beim Start muss daher dann nur probiert werden, die Datei neu
anzulegen - schlägt das fehl, weil schon eine mit dem Namen offen ist,
dann läuft da schon ein Prg.

Das Ganze geht auch einfacher, indem man RB's "mutex" benutzt. Das hat
genau diese Funktionialität.

Und Christian - _verhindern_ kann man so den 2. Start nicht, sondern
du mußt in deinem App.Open-Event selbst prüfen, ob da schon eine Kopie
läuft und sich dann ggf. selbst wieder beenden. Klar?

Re: Programm nicht 2 Mal starten
Date: 06.03.10 17:52 (Sat, 6 Mar 2010 17:52:46 +0100)
From: Stefan Mettenbrink
Christian Hahn wrote:

> Wie kann man verhindern, dass ein Programm nicht 2 Mal gestartet wird, oder genauer, wie kann man feststellen, ob ein Programm schon gestartet wurde?

Wie wäre es, wenn Du bei Programmstart eine temporäre Datei anlegst?
Startet das Programm erneut, ist die Datei bereites vorhanden und Du
weißt bescheit.

MfG, Metti.

Re: Programm nicht 2 Mal starten
Date: 06.03.10 18:23 (Sat, 6 Mar 2010 18:23:29 +0100)
From: Christian Hahn
Ja, das ist der naheliegende Gedanke. Aber geht das denn? Wie kann eine
Instanz des Programms - selbst wenn sie weiß, dass sie gestartet ist -
verhindern, dass eine weitere Instanz des Programms gestartet wird?
Gruß, Christian Hahn.

----- Original Message -----
From: "Stefan Mettenbrink" <<email address removed>>
To: "REALbasic NUG German" <<email address removed>>
Sent: Saturday, March 06, 2010 5:52 PM
Subject: Re: Programm nicht 2 Mal starten

Christian Hahn wrote:

> Wie kann man verhindern, dass ein Programm nicht 2 Mal gestartet wird,
> oder genauer, wie kann man feststellen, ob ein Programm schon gestartet
> wurde?

Wie wäre es, wenn Du bei Programmstart eine temporäre Datei anlegst?
Startet das Programm erneut, ist die Datei bereites vorhanden und Du
weißt bescheit.

MfG, Metti.





Links
MBS Realbasic PDF Plugins - Nachhilfe in Kell