Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Alte Instanz über CmdLine aktivieren\starten

  Alt 24. Mai 2017, 18:52
Ich möchte ein Movie starten wenn meine Anwendung schon aktiv ist.

Ist sie es nicht stellt es kein Problem dar.
Delphi-Quellcode:
      // Commandline Parameter auswerten
      StartParams := '';
      ValidExt := false;
      for Params := 1 to ParamCount do
        StartParams := StartParams + ' ' + ParamStr(Params);

      if length(StartParams) > 0 then
      begin
        try
          Ext := Split(VIDEOEXT, ';');
          Extension := Lowercase(ExtractFileExt(StartParams));

          for IntI := 0 to High(Ext) do
          begin
            if (Ext[IntI] = Extension) then
            begin
              ValidExt := true;
              break;
            end;
          end;
        finally
          if ValidExt then
          begin
            RunMediaFile(PWideChar(StartParams));
            SKAERO_InvalidateRect(MainHandle, false);

            ShowWindow(MovieHandle, SW_SHOW);

            btnPlay.Enabled := false;
            btnPause.Enabled := true;
          end;
        end;
      end;
Wenn die Anwendung startet erstelle ich vorher den Mutex um einen Neustart zu verhindern.
Delphi-Quellcode:
initialization

hMutex := CreateMutex(nil, true, 'KVPlayer');
if GetLastError = ERROR_ALREADY_EXISTS then
  Halt;

finalization

if hMutex <> 0 then
  CloseHandle(hMutex)
Wie kann ich den jetzt umgehen wenn ich mit DragDrop ein Movie auf mein Anwendungsicon ziehe während die Anwendung aktiv ist.
Es soll aber keine zweite Instanz gestartet werden.

gruss
  Mit Zitat antworten Zitat