LabVIEWForum.de
Mehrfacher Programmaufruf unter Windows 7 - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Mehrfacher Programmaufruf unter Windows 7 (/Thread-Mehrfacher-Programmaufruf-unter-Windows-7)



Mehrfacher Programmaufruf unter Windows 7 - Albert1982 - 20.06.2011 18:01

Hallo zusammen,

durch die Winows 7 Umstellung habe ich aktuell folgende Problemstellung.
Unter Windows 7 können sich mehrere Benutzer gleichzeitig anmelden. Daher muss ich verhindern, dass meine Applikation mehrmals unter verschiedenen Benutzer geöffnet wird.
Mein erster Ansatz wäre die aktiven Prozesse anderer Benutzer zu prüfen, damit ich dem 2ten Benutzer den Start verweigern kann, ist dies unter Labview möglich? Bzw. hat jemand vielleicht eine bessere Idee?

Vielen Dank im Voraus.

Gruß
Albert


RE: Mehrfacher Programmaufruf unter Windows 7 - GerdW - 21.06.2011 08:02

Hallo Albert,

bevor du mit Win7-Interna rummachen musst:
Dein Programm öffnet eine Datei exklusiv. Wenn eine zweite Instanz deines Programms versucht, diese Datei zu öffnen, erhält sie eine Fehlermeldung - die du dann entsprechend auswerten kannst...


RE: Mehrfacher Programmaufruf unter Windows 7 - rolfk - 21.06.2011 08:51

Gerd's Lösung hat einiges für sich. Unter Windows 7 kannst Du nicht einfach so alle Prozesse anderer Benützer enumerieren. Das braucht wie so vieles unter Windows 7 Admin Privilegien. Zudem ist das ansprechen des APIs sehr lästig, obwohl .Net das wahrscheinlich etwas einfacher macht. Aber die Privilegien Probleme bestehen so oder so.


RE: Mehrfacher Programmaufruf unter Windows 7 - Albert1982 - 21.06.2011 17:40

Hallo Gerd,

danke für Idee mit der Datei. Hab jedoch gesternabend noch bisschen experimentiert und hab aktuell folgenden Ansatz der für mich ziehlführend aussicht.

Mit der Funktion "System Exec.vi" kann man Systembefehle ausführen.
Durch den Systembefehl "tasklist /v /FI "imagename eq application.exe" " konnte ich den aktiven Prozesse den ich mit einem 2ten Benutzer gestartet habe schon auslesen.

Funktioniert auch ohne Adminrechte, jedoch mit der Einschränkung das der Benutzername nicht angezeigt wird. Für die Benutzeridentifikation muss man die Applikation mit Adminrechten ausführen.

Dieser Ansatz funktioniert nur mit Applikationen (.exe) da eine VI im Taskmanager nur als Labview.exe erkannt und nicht weiter differenziert wird.

Gruß
Albert