AGB  ·  Datenschutz  ·  Impressum  







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

Doppelstart einer Anwendung

Ein Thema von Hador · begonnen am 18. Nov 2006 · letzter Beitrag vom 19. Nov 2006
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Doppelstart einer Anwendung

  Alt 18. Nov 2006, 23:08
Das war auf jeden Fall schonmal ein Fehler.
So bekomme ich ein Handle.

Allerdings funktioniert es dennoch nicht.


Das mit dem kopieren/umbenennen ist übrigends, bei meiner Anwendung, egal.
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Doppelstart einer Anwendung

  Alt 18. Nov 2006, 23:18
Moin Lars,

das das Übertragen des Wertes nicht funktioniert, durfte wohl daran liegen, dass Du bei der Funktion CopyData das Handle des Mutex übergibst, nicht das des Hauptfensters der Anwendung, und ich vermute mal stark, dass an dieses Handle die Daten mit WM_COPYDATA geschickt werden sollen.

Als String im Mutex würde ich prinzipiell etwas eindeutiges nehmen, z.B., eine GUID (STRG+SHIFT+G in der IDE um eine zu erzeugen)
Man kann durchaus von der gleichen Stelle im Dateisystem ein Programm starten, ohne dass der Pfad gleich ist (Stichwort: SUBST)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#13

Re: Doppelstart einer Anwendung

  Alt 18. Nov 2006, 23:24
Das mit dem Pfad ist ohnehin nicht möglich, aber meine Rede, eindeutiger Name.

@Hador: Wenns weiter nicht klappt, dann zeig' mal mehr Code, damit wir hier nicht herumraten müssen.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Doppelstart einer Anwendung

  Alt 18. Nov 2006, 23:27
Moin Sunlight,

Zitat von Sunlight7:
Das mir dem Pfad ist ohnehin nicht möglich,
Warum?
Da die Länge des Strings bei CreateMutex MAX_PATH ist wäre das möglich.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#15

Re: Doppelstart einer Anwendung

  Alt 18. Nov 2006, 23:30
Moin Christian,

weil wie ich es vorhin zitiert habe, es darf kein '\' in dem Namen sein, das war der Fehler, warum das Handle immer 0 war.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Doppelstart einer Anwendung

  Alt 18. Nov 2006, 23:38
Es ging mir eigentlich nur darum, dass sich die zweite Instanz des Programmes nicht schließt.

Kurz könnte man den Code daher auch so darstellen:

Delphi-Quellcode:
  mHandle := CreateMutex(nil, True, '{E46EF2D5-34C6-4FC1-A3BA-E9A49C0327B0}');
  if GetLastError = ERROR_ALREADY_EXISTS then
    Exit;
Und komischerweise hab ich grad bemerkt, dass er so auch funktioniert.
So aber nicht:

Delphi-Quellcode:
  mHandle := CreateMutex(nil, True, '{E46EF2D5-34C6-4FC1-A3BA-E9A49C0327B0}');
  ShowMessage(IntToStr(mHandle));
  if GetLastError = ERROR_ALREADY_EXISTS then
    Exit;
Ist zwar jetzt für mein Problem unerheblich (Das Showmessage kann da ja weg) aber es würde mich doch interessieren, warum es so nicht funktioniert. Schreibt ShowMessage was in LastError rein?

EDIT:
Auf jeden Fall schonmal danke für eure Antworten.
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Doppelstart einer Anwendung

  Alt 18. Nov 2006, 23:45
ich tippe ShowMessage schreibt den Lasterror (kann sein das es nur ein success ist).
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#18

Re: Doppelstart einer Anwendung

  Alt 18. Nov 2006, 23:47
Jupp, U.a. 1411

Das nervt mich immer

Mach doch so:

Delphi-Quellcode:
mHandle := CreateMutex(nil, True, '{E46EF2D5-34C6-4FC1-A3BA-E9A49C0327B0}');
  SavedError:=GetLastError;
  ShowMessage(IntToStr(mHandle));
  if SavedError = ERROR_ALREADY_EXISTS then
    Exit;
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#19

Re: Doppelstart einer Anwendung

  Alt 19. Nov 2006, 00:27
die lösung in dem thread könnte für dich vielleicht auch interessant sein...

KLICK MICH
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#20

Re: Doppelstart einer Anwendung

  Alt 19. Nov 2006, 00:37
Okay, nachdem ich drauf geklickt habe, weiß ich, das Du nicht mich meinst

Aber so was ähnliches wie in dem anderen Thread ist auch meine Methode
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 02:35 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