LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Nur eine Anwendung soll zur gleichen Zeit laufen

Hallo zusammen,

gibt es in LabVIEW die Möglichkeit abzufragen ob die Anwendung (exe) bereits einmal läuft?
Ich möchte verhindern das meine Anwendung mehrmals gestartet wird.

MfG

M. Hupe
0 Kudos
Message 1 of 15
(3,664 Views)

Hallo hupe,

du könntest versuchen mit der Funktion "FindWindowA" aus der User32.dll ein Handle auf dein Program zu bekommen. Wenn es funktioniert, dann exisitiert bereits eine Instanz deiner Anwendung.

Mike

0 Kudos
Message 2 of 15
(3,660 Views)
Hallo Mike,

kannst Du mir das etwas genauer erklären. Ich bin in den Windows-Tiefen nicht so  bewandert.  Vielleicht  hast du einen Bsp.-Code wie ich das mit LV programmieren kann.
0 Kudos
Message 3 of 15
(3,648 Views)

Hallo hupe,

mit diesem Beispiel kannst Du dir das Handle des Fensters holen (also deiner Applikation). Gib den Namen an der in der Titelleiste angezeigt wird. Wenn ein Fenster existiert das diesen Namen trägt, dann bekommst du einen Wert ungleich null geliefert.

Mike

0 Kudos
Message 4 of 15
(3,644 Views)
Danke Mike  für deine schnelle Hilfe.

MfG hupe
0 Kudos
Message 5 of 15
(3,641 Views)
Hallo Mike,

leider kann ich mit dieser Funktion nur abfragen ob ein Programm schon offen ist. Ich möchte aber alles in einer exe unterbringen.
Da ist es so wenn die exe gestartet wird, frage ich als erstes ab ob es schon läuft. Leider macht es das auch beim ersten öffen.
Gibt es eine Möglichkeit abzufragen wie viel mal die exe geöffnet ist?

MfG

M. Hupe
0 Kudos
Message 6 of 15
(3,633 Views)

Hallo hupe,

du kannst dir auch alle tasks anzeigen lassen die laufen und dann abfragen wie oft deine exe dabei ist. Den dazu passenden Quellcode habe ich aber im Moment nicht greidbar. In deinem Fall ist es doch jetzt aber möglich (auch beim ersten mal) zu schauen ob die exe schon läuft und dann zu entscheiden was du machst. Wenn die Applikation noch nicht läuft dann ist der Rückgabewert der Funktion null, also kann dein Programm starten. Versuchst du nun eine zweite Instanz zu starten, dann ist der Rückgabewert nicht null sondern das Handle zu dem Programm, so dass du das zweite gestartete wieder beenden kannst (oder du zeigst eine Meldung an).

So habe ich bisher deine Anforderung gesehen. Smiley Happy

Mike

0 Kudos
Message 7 of 15
(3,631 Views)
Hallo Mike,

zum Verständnis: meine exe nennt sich zb. OHM
wenn ich diese exe starte soll das  programm (OHM) abfragen ob OHM schon läuft
Somit frage ich immer mich selber ab und bekomme immer die Antwort OHM läuft
Daher muß ich wissen , ob OHM mehr als einmal läuft.

MfG

M. Hupe
0 Kudos
Message 8 of 15
(3,624 Views)

Hi hupe,

entschuldige, mein Denkfehler. Smiley Happy

Ich werde nach dem anderen Quellcode schauen.

Mike



Message Edited by MikeS81 on 04-03-2008 05:25 PM
0 Kudos
Message 9 of 15
(3,622 Views)

Hallo hupe,

 

falls OHM.exe von LabVIEW erstellt wurde, wird diese exe nur einmal gestartet, wenn sie sich im gleichen Ordner befindet, d. h. C.\Projekt\OHM.exe läuft nur einmal. Nur wenn sich OHM.exe in verschiedenen Ordnern befindet oder kopiert und umbenannt wurde kann es mehrmals laufen.

Waldemar

Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questions
0 Kudos
Message 10 of 15
(3,613 Views)