AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mehrere Instanzen des Programms verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Instanzen des Programms verhindern

Ein Thema von Shaman · begonnen am 18. Aug 2004 · letzter Beitrag vom 19. Jan 2009
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Shaman
Shaman

Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
 
Turbo Delphi für Win32
 
#1

Mehrere Instanzen des Programms verhindern

  Alt 18. Aug 2004, 18:54
Hallo zusammen

Wenn man nicht will, dass die Anwendung mehrmals gestartet werden kann, ist das ziemlich mühsam zu implementieren. Hier eine Komponente von mir, die man nur auf die Hauptform zu platzieren hat, um sich nicht mehr um das Thema kümmern zu müssen. Sie verhindert den Start einer zweiten Instanz und übergibt Kommandozeilen-Parameter und Fokus der ersten.

Macht das Beste draus

Gruss
Shaman

PS: Eigentlich behindert, dass man sowas nicht direkt in TApplication oder so integriert hat. Aber gediegen, so hat man was zu tun...

[edit=Chakotay1308]Eintrag in der Code-Library ist hier zu finden. Mfg, Chakotay1308[/edit]
Angehängte Dateien
Dateityp: zip oneinstance_189.zip (3,6 KB, 120x aufgerufen)
Daniel Pauli
Looking for answers from the great beyond
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Mehrere Instanzen des Programms verhindern

  Alt 8. Jan 2009, 22:53
Hallo zusammen,

ich versuche diese Unit als Package zu installieren, über
-> Neu-> Package.
In der Projektverwaltung sehe ich dann das Package.
Ich speichere dieses unter einem neuen Namen und füge dann die Unit "OneInstance" hinzu.
Dann will ich kompilieren.
Ist das Überhaupt so richtig?
Ich bekomme dabei dann folgenden Fehler:
[DCC Fehler] E2161 Warning: Duplicate resource: Type 2 (BITMAP), ID TONEINSTANCE; File D:\_Programmierung\_installierte_Komponenten\Progr ammNurEinmalStarten\OneInstance.dcr resource kept; file D:\_Programmierung\_installierte_Komponenten\Progr ammNurEinmalStarten\OneInstance.dcr resource discarded.

Die Frage wäre:
Wie binde ich nun das als Komponente richtig ein?

Vielen Dank schon mal im Voraus!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Mehrere Instanzen des Programms verhindern

  Alt 8. Jan 2009, 22:59
Entferne die dcr wieder aus dem Package. diese wird implizit eingebunden.
Zudem solltest du das Package installieren und nicht nur comillieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Mehrere Instanzen des Programms verhindern

  Alt 8. Jan 2009, 23:15
Danke mkinzler!
Da wäre ich nicht drauf gekommen, mit dem entfernen der dcr.

Coole Komponente vom Daniel.
Besonders auch, dass die Anwendung in den Vordergrund kommt/ bleibt.

Ps.:
Glückwunsch zum Moderator!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Paul0703

Registriert seit: 24. Sep 2008
Ort: Halle(Saale)
138 Beiträge
 
Delphi 7 Professional
 
#5

Re: Mehrere Instanzen des Programms verhindern

  Alt 17. Jan 2009, 18:59
Hallo!

Ich bekomme es irgendwie nicht hin, dass die Komponente die Parameter an die die erste Instanz übergibt
Also im OnCreate der Anwendung übergebe ich die Parameter folgendermaßen:
for I := 1 to ParamCount do ListBox1.Items.Insert(0, ParamStr(i)); Wenn ich mehrere Parameter hatte, wurde das Programm immer mehrmals geöffnet. Durch die Komponente wird es jetzt auch verhindert, wie es sein soll. Aber es wird nur ein Parameter übergeben!

Ich hoffe, mir kann jemand helfen

MfG Paul
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Mehrere Instanzen des Programms verhindern

  Alt 17. Jan 2009, 19:11
Wie sieht dein Programmaufruf aus?
  Mit Zitat antworten Zitat
Paul0703

Registriert seit: 24. Sep 2008
Ort: Halle(Saale)
138 Beiträge
 
Delphi 7 Professional
 
#7

Re: Mehrere Instanzen des Programms verhindern

  Alt 17. Jan 2009, 19:20
Was meinst du mit Programmaufruf?
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Mehrere Instanzen des Programms verhindern

  Alt 17. Jan 2009, 19:24
Ich meine z.B. den Aufruf über die Konsole, wie sieht der aus?
Also, wie startest du deine Anwendung und wie sieht dort die Parameterliste aus?
  Mit Zitat antworten Zitat
Paul0703

Registriert seit: 24. Sep 2008
Ort: Halle(Saale)
138 Beiträge
 
Delphi 7 Professional
 
#9

Re: Mehrere Instanzen des Programms verhindern

  Alt 17. Jan 2009, 19:29
Naja ich klicke im Explorer auf eine bzw. mehrere Dateien und wähle dann über "Öffnen mit" mein Programm aus.
Meintest du das?
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Mehrere Instanzen des Programms verhindern

  Alt 17. Jan 2009, 19:38
Ja, dann wird dein Programm für jede dieser markierten Dateien gestartet und es wird an jede Instanz deiner Anwendung eine Datei (Dateiname als Parameter) übergeben. Da du jetzt verhinderst, dass deine Anwendung mehrfach gestartet wird, wird eben nur die erste Instanz wirklich ausgeführt und somit auch nur die erste markierte Datei angezeigt.
Ob deine Parameterverarbeitung richtig arbeitet, kannst du innerhalb von Delphi testen, über Start->Parameter.

Markiere mal im Explorer Dateien und ziehe sie dann mit der Maus über deine Anwednung und laß dann die Maustaste los.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:20 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