AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Verhindern eine Anwendung mehrfach zu starten
Thema durchsuchen
Ansicht
Themen-Optionen

Verhindern eine Anwendung mehrfach zu starten

Ein Thema von Moony · begonnen am 6. Mai 2008 · letzter Beitrag vom 15. Jan 2022
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#21

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 15:13
also ich habe es bei mir mit gemacht habe es nie anders versucht habe auch mit dem Code nie Probleme gehabt

Da kommt man ja mit dem schreiben garnet hinterher
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
BOH

Registriert seit: 6. Feb 2007
50 Beiträge
 
Delphi 5 Professional
 
#22

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 15:14
Noch'n Tipp: Max Components: TmxOneInstance (Freeware)
Gruß
BOH
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#23

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 15:17
@Klaus:
Die Exception kommt auch, wenn ich keinerlei Überprüfungen in die Applikation einbinde.

Und wo bekomme ich diese GUI-ID her?
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#24

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 15:18
Zitat von Moony:
...Und wo bekomme ich diese GUI-ID her?
Einfach im Editor [STRG]-[Umschalten]-G drücken.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 15:20
PS: MD5 und GUID sind gleich groß ... also falls sich mal jemand eine GUID live berechnen will


Also wenn man möchte, daß eine bestimmte Datei (und nur die eine Dateiversion) nur einmal gestartet werden darf > MD5 aus sich selbst (eigene EXE) berechnen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#26

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 15:23
So, habe das folgendermaßen gemacht:

Delphi-Quellcode:
unit Unit1;

interface

implementation

uses windows,Dialogs,sysutils;

var mHandle: THandle; // Mutexhandle

Initialization
  mHandle := CreateMutex(nil,True,'{7A366489-37B0-4E63-81A0-F0BBC281614D}');
  // 'xxxxx' Der Anwendungsname ist hier einzutragen
  if GetLastError = ERROR_ALREADY_EXISTS then begin
    // Anwendung läuft bereits
    {showMessage('Anwendung läuft bereits!!!!!');}   
    // Wenn du deine Meldung willst, mach die Klammern weg
    Halt;
  end;

finalization // ... und Schluß
  if mHandle <> 0 then
    CloseHandle(mHandle)
end. {Dieter Hirt}
In der *.dpr selbst steht nichts drin, was eine vorherige Überprüfung durchführt. Weiterhin bekomme ich beim zwieten Start eine Exception. Blöd, dass man so etwas nicht debuggen kann...
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#27

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 15:27
Hi,

Zitat von Moony:
Blöd, dass man so etwas nicht debuggen kann...
doch, kann man. Notfalls mit zweimal Delphi offen, aber es sollte reichen, das Programm das zweite Mal zu debuggen und das erste Mal ohne Debugger zu starten.

Mfg
FAlter
Felix Alter
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#28

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 15:40
Also:
  • 1.
    Wenn man in den tausend anderen Units auch tausend andere Initialisierungen hat, dann MUSS man die Überprüfungsunit auch als aller erste Unit in der *.dpr in die uses aufnehmen. Dann funktioniert auch die Überprüfung ohne weitere Exceptions.

    2. Wenn die Anwendung bereits geöffnet ist, dann soll diese auch in den Vordergrund geholt werden. Ich habe das so versucht, aber ohne Erfolg:
    Delphi-Quellcode:
      mHandle := CreateMutex(nil,True,'{7A366489-37B0-4E63-81A0-F0BBC281614D}');
      if GetLastError = ERROR_ALREADY_EXISTS then
      begin
         if IsIconic(mHandle) then
          ShowWindow(mHandle, SW_RESTORE)
        else SetForegroundWindow(mHandle);
        Halt;
      end;
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#29

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 15:41
Hallo,

benenne die Unit mal um.
Unit1 ist denkbar schlecht.

Und dann binde sie als erste unit in der dpr ein.


zu langsam ;(


schau dir mal das "In den Vordergrundbringen" hier an
1


Beitrag #14


Heiko
Heiko
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#30

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 16:14
Klar, dass die Unit umbenannt wird. Wurde nur vorerst zum Test angelegt und gespeichert.

Habe mir die Funktion "EnsureSingleInstance" angeschaut. Theoretisch muß ich nicht die ganzen Überprüfungen machen. Was das eigentliche in dieser Funktion betrifft, führe ich ja bei mir aus. Sprich:
Delphi-Quellcode:
mHandle := CreateMutex(nil,True,'{7A366489-37B0-4E63-81A0-F0BBC281614D}');
...
SetForegroundWindow(mHandle);
BringWindowToTop(mHandle);
Aber leider wird das Programm immer noch nciht in den Vordergrund gesetzt.
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


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 05:42 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