scanner

Programm 2 mal öffnen verhindern ?

GermansolvedQuestionMicrosoft
Hallo zusammen,
kann mir jemand sagen wie ich das 2 malige Öffnen eines Programms
(habe auf den Programmcode keinen Zugriff) verhindern kann ?

Oder anders gefragt, wie kann ich verhindern das eine bestimmte exe 2 mal (gleichzeitig)
ausgeführt wird ?

Hatte da mal so an GPO gedacht, aber hab bei google irgendwie nix gefunden.
Oder habe ich nur falsch gesucht ?

Umgebung Windows Server 2003 und XP mit SP2


Dank euch schon mal im Voraus.
Share on Facebook
Share on X (Twitter)
Share on Reddit
Share on Linkedin

Content-ID: 182605

Url: https://administrator.de/forum/programm-2-mal-oeffnen-verhindern-182605.html

Printed on: July 19, 2025 at 02:07 o'clock

nikoatit
nikoatit Mar 26, 2012 at 13:12:20 (UTC)
Moin,

wüsste jetzt nicht, dass man das per GPO oder ähnlich abfangen kann...
Aber es wäre interessant bei welchen Programm das bei dir passiert?
Im allgemeinen fangen Entwickler dieses "Missgeschick" ab, wenn es nicht ein Feature darstellt.
Ein Programm mit Datenbank knallt dir dann eine Fehlermeldung vor den Monitor, dass die DB zur Zeit verwendet wird und sogar ein Office fragt dich ob du das Dokument noch mal öffnen willst...
Also um welches Programm geht es dir denn konkret?

Gruß
Scanner
Scanner Mar 26, 2012 at 13:28:00 (UTC)
Ja das ist Richtig, normalerweise wird da so gemacht. face-wink
Aber die Programmierer die es gemacht haben hatten entweder nicht die Erfahrung,
oder haben es nicht gemacht weil es nicht in der Leistungsbeschreibung gestanden hat. face-sad
Grr was einem so ein blödes nicht gesetztes Häkchen einbrocken kann. face-sad

Das Programm ist ein extra für ein bestimmte Sache geschriebenes Programm.
Also kein Office oder irgend ein Standart Programm.

Ich muss die Sache definitiv von außerhalb des Programms Lösen.
Da eine Änderung des Codes nicht möglich bzw. zu Aufwendig und zu Teuer ist.
Skyemugen
Skyemugen Mar 26, 2012 at 13:42:26 (UTC)
Aloha,

wie wird denn das Programm aufgerufen?

Doppelklick auf .exe? Dann brützel alle Verknüpfungen weg und hau z.B. 'ne .bat dafür aktiv, die überprüft ob ein Task mit dem Namen soundso bereits existiert.

greetz André
Hubert.N
Hubert.N Mar 26, 2012 at 14:46:44 (UTC)
Moin

Das wäre dann auch meine Idee

qprocess <meineAnwendung.exe>
if not %errorlevel% == 0 <meineAnwendung.exe>

Gruß
Skyemugen
Solution Skyemugen Mar 26, 2012, updated at Mar 03, 2014 at 09:06:03 (UTC)
Aloha,

ich dachte eher an
tasklist|findstr /C:"Prozess.exe">nul && goto :eof || start Prozess.exe  

greetz André
Hubert.N
Hubert.N Mar 26, 2012 at 16:33:46 (UTC)
Viele Wege führen bekanntlich nach Rom...

Deiner allerdings nur wenn man daraus ein
tasklist|findstr /C:"Prozess.exe">nul && goto :eof | start Prozess.exe  
macht face-smile

Gruß
Skyemugen
Skyemugen Mar 26, 2012 at 18:02:38 (UTC)
Aloha,

... Blödsinn, das || erfüllt genau seinen Zweck, eventuell mal das nächste Mal voher testen, bevor man korrigieren möchte. Dein einer Strich macht's da nich'.

greetz André
Hubert.N
Hubert.N Mar 26, 2012 at 18:50:46 (UTC)
eventuell mal das nächste Mal voher testen, bevor man korrigieren möchte

selbstverständlich hatte ich das getan face-smile

wenn ich tasklist|findstr /C:"sdfsdfsfs">nul && goto :eof || start notepad.exe in meinem Windows 7 eingebe, dann startet das Notepad
wenn ich tasklist|findstr /C:"svchost.exe">nul && goto :eof || start notepad.exe im meinem Windows 7 eingebe, dann startet auch das Notepad

wenn ich tasklist|findstr /C:"sdfsdfsfs">nul && goto :eof | start notepad.exe in meinem Windows 7 eingebe, dann startet das Notepad
wenn ich tasklist|findstr /C:"svchost.exe">nul && goto :eof | start notepad.exe im meinem Windows 7 eingebe, dann startet das Notepad nicht

Aber ich will hier keine Grundsatzdiskussion führen face-smile

Schönen Abend noch
Skyemugen
Skyemugen Mar 26, 2012 at 19:20:35 (UTC)
Aloha,

kann ich nicht nachvollziehen, siehe POC-Screenshot
s7.directupload.net/images/120326/2zb8xuua.jpg

hier noch einmal die Klarausgabe des SS
C:\Users\Melphiz>tasklist|findstr /C:"Prozess.exe">nul && echo goto :eof | echo
start Prozess.exe

C:\Users\Melphiz>tasklist|findstr /C:"Prozess.exe">nul && echo goto :eof || echo
 start Prozess.exe
start Prozess.exe

C:\Users\Melphiz>tasklist|findstr /C:"firefox.exe">nul && echo goto :eof | echo
start Prozess.exe
start Prozess.exe

C:\Users\Melphiz>tasklist|findstr /C:"firefox.exe">nul && echo goto :eof || echo
 start Prozess.exe
goto :eof

C:\Users\Melphiz>

Windows 7 x64 HP

Zitat von @Hubert.N:
will hier keine Grundsatzdiskussion führen face-smile
Du vielleicht nicht, ich steh' nicht darauf, offene Bücher wegzupacken.

Bei WIndows XP x86 Prof. verhält sich es genauso ...
Hubert.N
Hubert.N Mar 27, 2012 at 15:47:29 (UTC)
ich scheine hier ein besondere Version der cmd.exe zu haben face-smile

Heute kopiere ich die Zeilen in das cmd-Fenster rein und es startet das Notepad, wo es eigentlich nicht starten sollte.

Allerdings funktioniert dein Befehl (bei mir muss ich wohl sagen) auch nur in der letzten Version mit dem echo hinter dem && face-smile Aber soll ja nichts heißen face-smile
Skyemugen
Skyemugen Mar 28, 2012 at 05:12:59 (UTC)
Aloha ...

was soll goto :eof auch in der cmd ohne echo bewirken? ein exit /B aka goto :eof ist nun einmal kein exit und eigentlich ist die Zeile ja auch für eine Batch gedacht ...

greetz André
Scanner
Scanner Mar 03, 2014 at 09:04:01 (UTC)
Ups vergessen das Teil auf gelöst zu Setzen face-confused
Na egal, vielen Dank noch mal für eure vielen Comments face-smile Hat mir sehr geholfen.

Habe es wie folgt gelöst.

Habe eine Script mit folgenden Inhalt in eine Exe umgewandelt und dies dann anstatt der Original Exe gelinkt face-wink

::Suchen ob Prozess laeuft.
@echo off & setlocal
set "Tsk=Prozess.exe"
set Running=
for /f %%i in ('tasklist') do echo (%%i)|findstr /C:"(%Tsk%)" >nul && set Running=True
if not defined Running goto :NoProzessrunning
::Wenn Prozess laeuft nichts machen
exit


:NoProzessrunning
start prozess.exe
exit


Dank euch noch mal, war ein Schubs in die richtige Richtung face-smile