prüfen ob programm schon läuft

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

ts-soft hat geschrieben:
PMV hat geschrieben:
dige hat geschrieben:Guckst Du hier: http://www.qrst.de/html/algo/mutex.htm
link geht nicht mehr :cry:

^^dabei interessiert mich die Fragestellung auch :D

MFG PMV
Schreib 2 Zettel, einmal mit Nicolaus, einmal mit Thomas, und packe diese
zusammengefaltet in einen Hut. Mischen und ziehen.
Nicolaus = Semaphore
Thomas = Mutex
Natürlich gibt es einen Unterschied:

http://msdn2.microsoft.com/en-us/library/ms682438.aspx
http://msdn2.microsoft.com/en-us/library/aa914601.aspx

Einfach mal durchlesen und vergleichen.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Einfach mal durchlesen und vergleichen.
Nein, bitte erklären, mein englisch reicht nicht, bzw. sehe nur min.
Unterschiede, die aber nur Services betreffen, also für dieses Vorhaben
vernachlässigt werden können.

Hab in anderen Sourcen, in anderen Sprachen bisher auch nur die Variante
mit Mutex gesehen, verwende diese deshalb auch.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Bei der überprüfung muss aber auch überprüft werden, ob das Programm in dem selben Benutzer oder in einem anderen Benutzer ausgeführt wird.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Bei der überprüfung muss aber auch überprüft werden, ob das Programm in dem selben Benutzer oder in einem anderen Benutzer ausgeführt wird.

berechtigter einwand, aber wohl doch eher selten zutreffend...(?)

meistens wird es ja um programme gehen, die auf single-stations laufen und vor abmeldung des benutzers beendet werden...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> vor abmeldung des benutzers beendet werden
Wieso? Es gibt mindestens 2 Möglichkeiten, das zu umgehen:
- Benutzer wechseln statt Abmelden
- Ausführen als
Ich dachte auch erst, es gibt mehr
> single-stations
als MultiUser-Umgebungen, aber dem ist nicht so. Habe allein schon im Bekanntenkreis mehr ulti- als Single-Stations gesehen. Und es gibt sooo viele Programme, die schon bei der Installation fragen, ob es für alle oder nur für einen selbst installiert werden soll - das sind Mioooonen, oder ein Dutzend? :lol:

Es kommt immer auf das Programm an, ob es unter welchen Umständen merfach laufen darf.

TeamSpeak beispiwlesweise kann auch unter 2 verschiedenen Benutzer nicht gleichzeitg laufen, weil das einfach nichts bringt. Wollte mit der einen mal reden und mit der anderen Instanz Musik senden, es ging nicht.
Programme wie ICQ hingegen können mE schon doppelt und dreifach laufen, man kann sich ja nicht zwei Mal mit dem selben Benutzernamen einloggen, denn solche DInge werden dann ja schon vom Server geregelt.
Dinge, die pro Benutzer aber nur einmal laufen sollten/dürfen sind AntiVirenprogramme oder z. B. PureBasic (wenn man "Nur eine Instanz zulassen" einschaltet).
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

bleibt trotzdem die frage, wo der sinn ist, und ob man da wirklich drauf reagieren soll.

wenn ich ein programm erneut als anderer benutzer starte,
wieso sollte das programm das nicht genauso unterbinden,
wenn es als single-instance laufen will?

wenn ich ein programm als ausdrücklich single-instance laufen lassen will,
warum soll ich mich drum scheren, ob der user versucht das mit nem anderen benutzerkonto erneut zu starten?

darauf rücksicht nehmen müßte ich eigentlich nur,
wenn tatsächlich zwei benutzer an einem arbeitsplatz arbeiten sollen,
und beide das programm brauchen.
also auch nur, wenn das programm deutlich dazu gemacht ist, auf dauer zu laufen,
auch in betrieb zu bleiben wenn der benutzer seine arbeit unterbricht/beendet.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Stell dir doch mal vor, du arbeitest an einem PC, hast IE, ICQ und TS auf. Jetzt kommt dein Kollege/Freund oder wer auch immer und will kurz seine Messages checken.
Dazu startet er IE und ruft seine E-mails ab, IE kann/darf/muss also 2x gestartet werden. ICQ will er auch kurz öffnen um nachzusehen.*
Tja uns TS geht wie gesagt nicht, da der Computer nur 1 Mikrofon hat, auf das dann beide Instanzen regiaren.

*Es muss jedes Programm selbst entscheiden, ob es mehrfach gestartet werden kann/darf/soll/muss. Das hängt IMHO von der Aufgabe des Programms ab: Systemprogramme (AntiVirus, Defrag) ist klar: 1x. Unterhaltungsprogramme (IE, ICQ, kleine Spiele, etc.) könnten schon mehrfach gestartet werden.
Kaeru Gaman hat geschrieben:wenn tatsächlich zwei benutzer an einem arbeitsplatz arbeiten sollen,
und beide das programm brauchen.
also auch nur, wenn das programm deutlich dazu gemacht ist, auf dauer zu laufen,
auch in betrieb zu bleiben wenn der benutzer seine arbeit unterbricht/beendet.
Genau, du sagst es ja auch selbst schon.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Stell dir doch mal vor, du arbeitest an einem PC, hast IE, ICQ und TS auf. Jetzt kommt dein Kollege/Freund oder wer auch immer und will kurz seine Messages checken.

da würd ich erstmal verbieten, mein account zu schließen, das soll er halt so machen.
ob er nen zweiten fifo aufmacht, oder nen weiteren tab in dem fifo den ich schon offen hab, is mir banane.
icq kann ich ausloggen und er kann einloggen, auch kein thema.
und wenn er im ts was checken will, dann sach ich "afk", muss ich eh wenn er dran will, und dann soll er halt mal fix in dem einen ts auf seinen channel wechseln...
geht doch alles. was meinste, wie meine freundin ihre mails checkt, wenn sie hier is.

im endeffekt ändert sich hierbei nicht der benutzer.
eigentlich geht es um programme, die ich laufen lassen muss,
wenn ich auschecke und feierabend mache,
und ein anderer kollege den rechnerplatz übernimmt.

das sind aber meiner ansicht nach absolute ausnahmen.
pb is auch schnell wieder offen, und hat n dutzend tabs geöffnet mit den foldings wie beim letzten mal.... braucht man nicht offen lassen.

ich sehe keinen sinn darin, 37 apps offen zu lassen, wenn ich den arbeitsplatz verlasse.
im gegenteil, wenn ich chef wäre, würde ich das meinen mitarbeitern sogar verbieten.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> da würd ich erstmal verbieten, mein account zu schließen
Sry, ich dachte du kommst selber drauf: Ich meinte, dein Kollege/Freund will dazu die Funktion "Benutzer wechseln" benutzen, dazu muss er deine Progs nicht schließen.

Er will, nein er muss diese Funktion benutzen, da er nicht FiFo, sondern... IE oder OP benutzt. Egal was, der Punkt ist: Unter seinem Account hat er seine eigenen EInstellungen, Favoriten/Lesezeichen. Er will auch kurz in seinen Account, weil ihm einfällt, dass er nicht nur seine Messages checken, sondern auch noch ein ganz wichtiges Dokument drucken muss, auf das er von deinem Account keine Zugriff hat (z. B. weil eure Acc's eingeschränkte Acc's sind).


Ich will dich jetzt nicht überzeugen oder totquatschen. Es geht nur darum: Es IST möglich, dass eine App mehrmals läuft. Der Autor, der ein Programm schreibt muss sich selbst darüber im Klaren sein, ob er eine 2. Instanz seines Programms verbieten will:
1) nein
2) ja (nur innerhalb eines Accounts)
3) systemweit

Ich programmiere selbst keine Securitysoftware, trotzdem arbeite ich immer nach dem Prinzip, dass ich alle möglichen Situationen, wie auch immer geartet, gut handlen kann. Jedoch liegt es letzen Endes immer am Autor, ob er/sie das auch will/braucht.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ja gut, so gesehen....

ich hab das ßenario nur nicht komplett durchdacht...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten