AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung nur einmal starten

Offene Frage von "rabatscher"
Ein Thema von ruppi98 · begonnen am 4. Aug 2023 · letzter Beitrag vom 18. Aug 2023
Antwort Antwort
ruppi98

Registriert seit: 24. Jan 2007
7 Beiträge
 
#1

Anwendung nur einmal starten

  Alt 4. Aug 2023, 10:21
Hallo,

ich benutze den C++Builder 11.2 für meine Programmierung. Nun habe ich ein Programm, welches nur
einmal gestartet werden soll.

Mein Problem ist folgendes.

* Führe ich einmal das Programm von der Aufgabenplanung aus und danach den Code aus der IDE, funktioniert alles wie gewollt.
* Führe ich das Programm vom Desktop aus, funktioniert auch alles wie gewollt.
* Führe ich einmal das Programm von der Aufgabenplanung aus und starte es erneut vom Desktop, funktioniert es nicht mehr.
Es wird nicht erkannt, das das Programm bereits im Hintergrund läuft.

Das Programm besitzt Admin-Rechte.

Wo liegt das Problem. Kann mir hier einer einen Tipp geben?

Ruppi
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Anwendung nur einmal starten

  Alt 4. Aug 2023, 10:43
Die Aufgabenplanung wird wohl unter einem anderen Benutzerkontext (local SYSTEM account) ausgeführt. Die IDE vermutlich auch.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
ruppi98

Registriert seit: 24. Jan 2007
7 Beiträge
 
#3

AW: Anwendung nur einmal starten

  Alt 4. Aug 2023, 10:44
Hallo,

nein der Aufgabenplaner läuft unter dem selben Konto.

Ruppi
  Mit Zitat antworten Zitat
ruppi98

Registriert seit: 24. Jan 2007
7 Beiträge
 
#4

AW: Anwendung nur einmal starten

  Alt 4. Aug 2023, 10:51
Hallo,

Sorry, habe es grade noch mal gescheckt .
Hatte mich geirrt. Der Aufgabentask wird unter SYSTEM ausgeführt, das Programm aber unter den Benutzernamen.

Ruppi
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.765 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Anwendung nur einmal starten

  Alt 4. Aug 2023, 10:56
Dann wirst Du etwas anderes nutzen müssen, um Dein SingleInstance zu gewährleisten. Einfach ist da eine Semaphordatei zu setzen/löschen. Nicht trivial ist dann herauszufinden, ob die Datei da ist, weil gerade das Programm läuft, oder weil vergessen wurde sie zu löschen (Programmabsturz).

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.473 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Anwendung nur einmal starten

  Alt 4. Aug 2023, 14:59
Dann wirst Du etwas anderes nutzen müssen, um Dein SingleInstance zu gewährleisten. Einfach ist da eine Semaphordatei zu setzen/löschen. Nicht trivial ist dann herauszufinden, ob die Datei da ist, weil gerade das Programm läuft, oder weil vergessen wurde sie zu löschen (Programmabsturz).
Kein Akt: Einfach die Datei beim Start exklusiv öffnen/erzeugen/überschreiben und sie offen halten bis zum Programmende. Wenn das Öffnen/Erzeugen fehlschlägt, läuft bereits eine andere Instanz.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.211 Beiträge
 
Delphi 12 Athens
 
#7

AW: Anwendung nur einmal starten

  Alt 4. Aug 2023, 11:03
Einmal kann die Aufgabenplanung für sich selbst prüfen, ob es nur einmal läuft.
In dem Task kann man einstellen was passieren soll (nicht starten, wenn noch läuft / das alte beenden, wenn neu gestartet / oder sonstwas ) ... aber nur für seine eigenen Ausführungen.


So, also nun das Wichtigste:
Wie prüfst du ob es schon läuft?
* beim Mutex kann man auch Global oder Local angeben
* und auch bei der Suche nach Prozessen könnte man im gesamten PC oder nur im aktiven Nutzer/Kontext oder auf dem aktuellen Desktop suchen
* ...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
ruppi98

Registriert seit: 24. Jan 2007
7 Beiträge
 
#8

AW: Anwendung nur einmal starten

  Alt 4. Aug 2023, 11:50
Hallo,

der Aufgabenplaner ist so eingestellt, das nur eine Instanz läuft.
Das Problem ist, wenn sich der Benutzer Angemeldet hat und das Programm nochmals
startet.

Abfragen, ob das Programm bereits läuft, wird über die bekannten API-Funktionen
durchgeführt ( EnumProcesses, EnumProcessModules, GetModuleBaseName).

Hänge mal den Code als Datei an.

Ruppi
Angehängte Dateien
Dateityp: txt One-Instance.txt (1,1 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz