AGB  ·  Datenschutz  ·  Impressum  







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

Nur 1 Instanz des Programmes

Offene Frage von "Skullschildi"
Ein Thema von blackdrake · begonnen am 1. Feb 2007 · letzter Beitrag vom 23. Jan 2010
Antwort Antwort
Seite 2 von 2     12   
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#11

Re: Nur 1 Instanz des Programmes

  Alt 8. Feb 2007, 14:17
Welches Betriebssystem nutzt du? Bei XP und TurboDelphi geht alles. Starte deine Projekt1.exe und anschließend startest du über Delphi die Anwendung ein zweites Mal und gehst dabei per Debugger alle Einzelschritte durch (F7). Die Anwendung sollte bei Halt() ankommen, in deinem Fall jedoch offensichtlich wo anders.
Daniel Marschall
  Mit Zitat antworten Zitat
Skullschildi

Registriert seit: 7. Jan 2006
94 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Nur 1 Instanz des Programmes

  Alt 9. Feb 2007, 13:10
Ich hab mir des päckchen nochma runtergeladen. Ich kann Project1.exe öffnen, sehs, kanns schliessen und wieder öffnen und sehen, also das geht. wenn aber eins offen ist und ich ein zweites starte kommt 5000ms lang eine warteuhr , aber mein bestehendes project1 fenster bleibt unverändert. in meim tskmgr unter prozesse ist Project1 nun zweimal aufgeführt. ich denkma, dass diesich mit unterschiedlichen IDs bei windows anmelden. aber warum?

nutzen tu ich XP und delphi 7 enterprise
Ehe man über den Berg kommt, soll man nicht Juchhe schreien.
  Mit Zitat antworten Zitat
Skullschildi

Registriert seit: 7. Jan 2006
94 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Nur 1 Instanz des Programmes

  Alt 11. Feb 2007, 10:04
Hats euch die sprache verschlagen?
ich versteh des problem von dem progg net, immerhin scheint es ja zu wissen, dass es schoneinmal besteht, sonst würde sihc das zweite auch zeigen. Andererseits schliesst sich instanz 2 nicht, was irgendwie ziemlich verwirrend is. und der code von dem oneinst is mir sowieso schleierhaft
Ehe man über den Berg kommt, soll man nicht Juchhe schreien.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#14

Re: Nur 1 Instanz des Programmes

  Alt 11. Feb 2007, 10:23
Zitat von Skullschildi:
Hats euch die sprache verschlagen?
ich versteh des problem von dem progg net, immerhin scheint es ja zu wissen, dass es schoneinmal besteht, sonst würde sihc das zweite auch zeigen. Andererseits schliesst sich instanz 2 nicht, was irgendwie ziemlich verwirrend is. und der code von dem oneinst is mir sowieso schleierhaft


Möglicherweise liegt es daran das unsereiner seinen Sourcecode nicht kennt und es wird ein buntes
Raten veranstalted.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Skullschildi

Registriert seit: 7. Jan 2006
94 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Nur 1 Instanz des Programmes

  Alt 11. Feb 2007, 13:30
http://assarbad.net/de/stuff/!import/nico.old/

der link taucht oben schonmal auf. da hab ich des gezunsel her.
Ehe man über den Berg kommt, soll man nicht Juchhe schreien.
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Nur 1 Instanz des Programmes

  Alt 11. Feb 2007, 13:59
Und ich schrieb zwei mal, du sollest den Debugger für die Zweitinstanz benutzen, um herauszufinden, wo du landest, sonst können wir nicht helfen.

Delphi-Quellcode:
// Mutex erstellen...

// Mutex-Rückgabewert:

  case GetLastError of
    0:
      begin
        { Wir haben den Mutex angelegt; sind also die erste Instanz. }
        // Debug
        showmessage('Hier passiert gar nichts, es ist die Erstinstanz, das Programm wird sichtbar');
      end;
    ERROR_ALREADY_EXISTS:
      begin
        { Es gibt also schon eine Instanz - beginnen wir mit dem Prozedere. }
        // Debug
        showmessage('Es gibt bereits eine Instanz, Befehle werden übergeben');
        try
          HandleSecondInstance;
        finally
          { was auch immer passiert, alles endet hier ;o) }
          { Die 183 ist nicht ganz zufällig, kleiner Spaß }
          Halt(10);
        end;
      end;
  else
    { Keine Ahnung warum wir hier landen sollten,        }
    { außer Microsoft hat wiedermal die Regeln geändert. }
    { Wie auch immer - wir lassen das Programm starten.  }
    // Debug
    showmessage('Ausnahmefehler');
  end;
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
194 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Nur 1 Instanz des Programmes

  Alt 23. Jan 2010, 08:07
Dieser Code aus der OneInst.pas von Oliver kompiliert nicht unter Delphi 2010 - Compiler error "inkompatible Typen":

Delphi-Quellcode:
{ kleine Hilfsfunktion die uns die Kommandozeilenparameter entpackt }
function ParamBlobToStr(lpData: PChar): string;
var
  pStr: PChar;
begin
  Result := '';
  pStr := lpData;
  while pStr[0] <> #0 do
  begin
    Result := Result + string(pStr) + #13#10;
    pStr := @pStr[lstrlen(pStr) + 1]; <<< "E2008 - incompatible types"
  end;
end;

{ kleine Hilfsfunktion die uns die Kommandozeilenparameter einpackt }
function ParamStrToBlob(out cbData: DWORD): PChar;
var
  Loop: Integer;
  pStr: PChar;
begin
  cbData := Length(ParamStr(1)) + 3; { gleich inklusive #0#0 }
  for Loop := 2 to ParamCount do
    cbData := cbData + DWORD(Length(ParamStr(Loop)) + 1);
  Result := GetMemory(cbData);
  ZeroMemory(Result, cbData);
  pStr := Result;
  for Loop := 1 to ParamCount do
  begin
    lstrcpy(pStr, PChar(ParamStr(Loop)));
    pStr := @pStr[lstrlen(pStr) + 1]; <<< "E2008 - incompatible types"
  end;
end;
Ich versteh nur nicht warum, sieht doch alles wunderbar aus oder?
Ansgar Becker
https://www.heidisql.com
Wenn du loslässt, hast du zwei Hände frei.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#18

Re: Nur 1 Instanz des Programmes

  Alt 23. Jan 2010, 10:04
Zitat von anse:
Dieser Code aus der OneInst.pas von Oliver kompiliert nicht unter Delphi 2010 - Compiler error "inkompatible Typen"
Habe den Code mal eben in ein D2010-Projekt kopiert: compiliert einwandfrei...
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
194 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: Nur 1 Instanz des Programmes

  Alt 23. Jan 2010, 10:53
Jo, hast natürlich recht. Ich hatte aus irgendeinem Grund in den Projekt-Optionen "Typed @ operator" auf True stehen. Mit der Default-Einstellung "False" kompiliert es.
Ansgar Becker
https://www.heidisql.com
Wenn du loslässt, hast du zwei Hände frei.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:03 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