AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mehrere Instanzen auf einmal schließen
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Instanzen auf einmal schließen

Ein Thema von ramboni · begonnen am 2. Okt 2016 · letzter Beitrag vom 4. Okt 2016
Antwort Antwort
ramboni

Registriert seit: 3. Dez 2012
24 Beiträge
 
Delphi XE Starter
 
#1

Mehrere Instanzen auf einmal schließen

  Alt 2. Okt 2016, 19:10
Hallo zusammen,

ich bastel gerade an einem kleinen Projekt bei dem ich ca. 10 - 20 Instanzen meines Programmes
öffnen kann (nicht muss), nun wollte ich das schließen für den User etwas einfacher gestalten
(da vor dem schließen noch abschließende Arbeiten getan werden müssen (vom Programm)) und einen Button "Alle schließen" erstellen.

Nur .... naja... wie kann ich das am Besten machen? Erste Überlegungen gingen in Richtung:
- Programm guckt alle x Sekunden ob eine bestimmte Datei existiert, wenn ja schließ dich....

Aber schön ists so ja nicht Ideen?
  Mit Zitat antworten Zitat
Benedikt Magnus

Registriert seit: 6. Jul 2012
Ort: Bonn
190 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Mehrere Instanzen auf einmal schließen

  Alt 2. Okt 2016, 19:45
Mir fielen da mehrere Sachen ein, am einfachsten wäre wohl, einen Broadcast zu schicken, das alle geöffneten Programme erhalten und sich anschließend schließen. Oder die erste geöffnete Instanz fungiert als Server, bei dem sich die folgenden Instanzen anmelden.
Will man Netzwerk vermeiden, könnte man ebenso die Prozessliste durchgehen und Messages verschicken. Auch hier könnte man wieder die erste geöffnete Instanz als Mittler verwenden.
Oder das hier (wo auch noch ein paar Methoden genannt werden, wenngleich etwas älter):
https://www.delphi-treff.de/tutorial...-mapped-files/
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Mehrere Instanzen auf einmal schließen

  Alt 2. Okt 2016, 19:50
oder MSDN-Library durchsuchenFindWindow/MSDN-Library durchsuchenFindWindowEx und dann MSDN-Library durchsuchenPostMessage+WM_QUIT
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
ramboni

Registriert seit: 3. Dez 2012
24 Beiträge
 
Delphi XE Starter
 
#4

AW: Mehrere Instanzen auf einmal schließen

  Alt 4. Okt 2016, 15:52
Der Titel des Forms ändert sich sekündlich, geht das trotzdem?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Mehrere Instanzen auf einmal schließen

  Alt 4. Okt 2016, 16:07
Dann eben über den Klassennamen der Form und und nicht die Caption. (auch besser, bezüglich Lokalisierung)

Eventuell besser auch noch den Namen der EXE prüfen, falls der Klassenname sowas wie TForm1 ist
(den Thread der gefundenen Form nennt dir Windows und davon schaut man dann, zu welchem Programm der Thread gehört)

Oder du verwendest IPC und sendest direkt an die Anwendungen.
z.B. MSDN-Library durchsuchenRegisterWindowMessage und dann einen Broadcast (PostMessage) an "alle" TopLevel-Fenster.
Deine Programme hören/verstehen dabei diese Message und machen dann etwas.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Okt 2016 um 16:11 Uhr)
  Mit Zitat antworten Zitat
ramboni

Registriert seit: 3. Dez 2012
24 Beiträge
 
Delphi XE Starter
 
#6

AW: Mehrere Instanzen auf einmal schließen

  Alt 4. Okt 2016, 16:14
Danke, werde es versuchen
  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 09:24 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