Seite 1 von 2
ich komme mit ProgramRunning nicht klar
Verfasst: 22.10.2017 16:18
von wie_jetzt?
Hallo Leute,
muss Euch wieder mal mit einem Anfänger-Prob belästigen:
Mein Prog soll ein externes Prog starten, aber nur, falls dieses Prog nicht bereits gestartet ist. Ich dachte also (naiv wie ich bin) ...
Code: Alles auswählen
if ProgramRunning("dingsbums.exe") = 0
RunProgram ("dingsbums.exe")
endif
wär's ja, aber: will nicht!
Wie muss man das denn anstellen, dass dingsbums.exe nur dann gestartet wird, wenn es noch nicht läuft (also nicht mehrfach gestartet werden kann)?
Und, absolutes Leckerli wäre für mich noch:
Wenn dingsbums.exe bereits liefe, wie dann in den Vordergrund bringen, damit es der User sehen kann?
Re: ich komme mit ProgramRunning nicht klar
Verfasst: 22.10.2017 16:33
von ts-soft
So einfach geht es wohl nicht
Hier mal mein Modul:
http://www.purebasic.fr/english/viewtop ... 95#p437795
Sollte alles gewünschte erfüllen, hauptsache es wird auch verstanden.
Re: ich komme mit ProgramRunning nicht klar
Verfasst: 22.10.2017 18:25
von wie_jetzt?
Hallo ts-soft,
vielen Dank für den Code. Werde mich da wohl erstmal reinfuchsen müssen, wird wohl seine Zeit dauern. Allerdings habe ich in den Code-Kommentaren das Stichwort "Lockfile" gelesen, das brachte mich auf die Idee
Code: Alles auswählen
If aufruf = 0
aufruf = RunProgram("dingsbums.exe")
EndIf
womit schon mal das Gröbste (mehrfach starten) erschlagen ist. Vielen Dank für den Schubs in die richtige Richtung.
Re: ich komme mit ProgramRunning nicht klar
Verfasst: 22.10.2017 19:05
von ts-soft
Das ist jetzt meiner Meinung nach der falsche Weg, da dann das Modul das noch viel mehr bietet, wie z.B. Parameterübergabe an Programm usw.
Besser erst mal so:
Denn Text natürlich ändern

Re: ich komme mit ProgramRunning nicht klar
Verfasst: 22.10.2017 19:27
von helpy
Könnte es sein, dass Ihr aneinander vorbeiredet?
wie_jetzt möchte mit seinem PB-Programme eine fremde EXE starten, aber nur, wenn diese noch nicht läuft!
@ts-soft:
Wenn ich das richtig verstehe, dann kann Dein Modul verhindern dass ein PB-Programm nicht ein zweites Mal gestartet wird ... und falls doch, dann können Parameter an das zuerst gestartete Programm übergeben werden.
Aber dann kann mit dem Modul von ts-soft das Problem von wie_jetzt nicht gelöst werden.
...
Re: ich komme mit ProgramRunning nicht klar
Verfasst: 22.10.2017 19:45
von STARGÅTE
Result = RunProgram ("dingsbums.exe") gibt ja einen Wert zurück.
Dieser Wert kann danach benutzt werden, um zu prüfen ob das Programm (noch) Läuft:
ProgramRunning(Result)
Re: ich komme mit ProgramRunning nicht klar
Verfasst: 22.10.2017 19:48
von Sicro
Siehe:
Ermitteln, ob Prozess gerade läuftCode: Alles auswählen
If CheckRunningPureBasic("dingsbums.exe")
MessageRequester("","Dingsbums läuft schon!",0)
Else
MessageRequester("","Dingsbums läuft noch NICHT!",0)
EndIf
Den Code habe ich nicht getestet.
Re: ich komme mit ProgramRunning nicht klar
Verfasst: 22.10.2017 21:17
von ts-soft
helpy hat geschrieben:Könnte es sein, dass Ihr aneinander vorbeiredet?
Das glaube ich eher nicht
Er möchte, das wenn ein Programm mehrmals gestartet wird, das erstgestartete das einzige bleibt und den Focus bekommt!
Genau das macht mein Modul, es verhindert mehrfachstarten und bietet optional an, das erstgestartete in den Vordergrund zu bringen und leitet evtl. übergebenen Parameter an dieses weiter.
Ist Crossplattform und einfach
Einfacheres Vorgehen wäre wie von Sirco gepostet (auch mein Code?), aber nicht so komfortabel. Das Modul macht fast alles alleine.
Re: ich komme mit ProgramRunning nicht klar
Verfasst: 22.10.2017 22:11
von helpy
ts-soft hat geschrieben:Er möchte, das wenn ein Programm mehrmals gestartet wird, das erstgestartete das einzige bleibt und den Focus bekommt!
Und wenn dieses Programm "dingsbums.exe", welches von wie_jetzt mit seinem PB-Programm gestartet ist, nicht von ihm stammt und er dort Dein Modul OnlyOne nicht einbauen kann?
Mir scheint, wir interpretieren den ersten Beitrag unterschiedlich

Welche Interpretation nun richtig ist, kann ich nicht sagen.
Dazu müsste wie_jetzt etwas mehr Infos zum Programm "dingsbums.exe" (welches er mittels seines PB-Programms starten möchte) mitteilen.
...
Re: ich komme mit ProgramRunning nicht klar
Verfasst: 23.10.2017 01:13
von NicTheQuick
Ich verstehe es auch so wie helpy. Er schreibt ja auch, dass er ein externes Programm starten will.