AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Problem mit Parameter an eine laufende Instanz übergeben

Problem mit Parameter an eine laufende Instanz übergeben

Ein Thema von MasterEvil · begonnen am 12. Feb 2005 · letzter Beitrag vom 13. Feb 2005
Antwort Antwort
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#1

Problem mit Parameter an eine laufende Instanz übergeben

  Alt 12. Feb 2005, 11:48
Hi allesamt,

ich hab da ein Problem bei dem ich selber keinen Ausweg finde.

Und zwar möchte ich meinem Programm auch Parameter übergeben, wenn es bereits läuft.
Und das Programm natürlich nicht nochmal starten.
Ich hab da auch ein scheinbar 100% passendes Tutorial auf SwissDelphiCenter gefunden --> hier

Aber nachdem ich es nun eingebaut habe, startet die Applikation komplett nichtmehr.
Ich poste unten den gesamten Quellcode der Programm-Datei.
Wenn ich einen Breakpoint auf das erste begin setze, dann hält er dort auch an. Will ich dann mit F8 einen Schritt vor gehen, dann schließt sich das Programm sofort und ich lande wieder in der IDE.
Die Funktionen im Hauptformular sind natürlich vorhanden.

Ich hoffe jemand hier kann mir helfen.

thx schonmal,
Steffen

Delphi-Quellcode:
program MusicPlayer;

uses
  Forms,
  Windows,
  Messages,
  AC_Main in 'AC_Main.pas{frmMain},
  AC_OptGen in 'AC_OptGen.pas{frmOptGen},
  AC_Const in 'AC_Const.pas',
  AC_Sound in 'AC_Sound.pas',
  AC_About in 'AC_About.pas{frmAbout},
  AC_Wake in 'AC_Wake.pas{frmWake},
  AC_Search in 'AC_Search.pas{frmSearch},
  AC_Shortcuts in 'AC_Shortcuts.pas{frmShortcuts};

{$R *.res}

const
  cMutexID = 'EW-MusicPlayer';

var
  Mutex : THandle;
  HAPPLICATION : HWND;
  HMAINFORM : HWND;
  StartParams : String;
  CountParams : Integer;
  AtomSend : Integer;
begin
  Mutex := CreateMutex(nil, True, cMutexID);
  if (Mutex <> 0) and (GetLastError = 0) then
  begin
    Application.Initialize;
    Application.CreateForm(TfrmMain, frmMain);
    Application.CreateForm(TfrmOptGen, frmOptGen);
    Application.CreateForm(TfrmAbout, frmAbout);
    Application.CreateForm(TfrmWake, frmWake);
    Application.CreateForm(TfrmSearch, frmSearch);
    Application.CreateForm(TfrmShortcuts, frmShortcuts);
    Application.Run;
    if (Mutex <> 0) then CloseHandle(Mutex);
  end else
  begin
    HAPPLICATION := 0;
    HMAINFORM := 0;
    Application.Initialize;
    repeat
      HAPPLICATION := FindWindowEx(0,HAPPLICATION, 'TApplication', PChar('EW-MusicPlayer'));
    until HAPPLICATION <> Application.Handle;
    if HAPPLICATION <> 0 then
    begin
      Windows.ShowWindow(HAPPLICATION, SW_Normal);
      Windows.SetForegroundWindow(HAPPLICATION);
      HMAINFORM := FindWindowEx(0,0,'TfrmMain', nil);
      if (HMAINFORM <> 0) then
      begin
        StartParams := ';';
        for CountParams := 1 to ParamCount do
          StartParams := StartParams + ';' + ParamStr(CountParams);
        try
          AtomSend := GlobalAddAtom(PChar(StartParams));
          SendMessage(HMAINFORM,WM_ACTIVATEEWMP,Length(StartParams),AtomSend);
        finally
          GlobalDeleteAtom(AtomSend);
        end;
      end;
    end;
    Halt;
  end;
end.
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#2

Re: Problem mit Parameter an eine laufende Instanz übergeben

  Alt 12. Feb 2005, 17:40
Dann dürfte es einen Fehler im "Initialization"-Code einer der Units geben. Der wird nämlich vor dem "begin" ausgeführt.

Ist da irgendwas mit Multithreading in dem Programm?
  Mit Zitat antworten Zitat
Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Problem mit Parameter an eine laufende Instanz übergeben

  Alt 13. Feb 2005, 00:58
hi,

danke für die Antwort.

Das Problem hat sich irgendwie von selbst gelöst.
Ich weiss nicht wie ichs gemacht hab.
Plötzlich ging es wieder.

hoffe das bleibt so

greetz,
Steffen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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