AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Alte Instanz über CmdLine aktivieren\starten
Thema durchsuchen
Ansicht
Themen-Optionen

Alte Instanz über CmdLine aktivieren\starten

Ein Thema von EWeiss · begonnen am 24. Mai 2017 · letzter Beitrag vom 25. Mai 2017
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: Alte Instanz über CmdLine aktivieren\starten

  Alt 24. Mai 2017, 21:18
Zitat:
wenn wenn du nur die Endung des letzten Parameters haben willst, warum nimmst du den dann nicht?
Ganz einfach..
Was ist denn der letzte Parameter von der Endung "F:\Mov\Das doppelte Lottchen.mp4"
Und du bist sicher das "Lottchen.mp4" dann abgespielt werden kann?

@SneakyBagels Danke!
Habe deinen Beitrag etwas angepasst damit funktioniert das soweit.

Delphi-Quellcode:
initialization

hMutex := CreateMutex(nil, true, 'KVPlayer');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
  if ParamCount > 0 then
  begin
    MainHandle := FindWindow('KVIDEOPLAYER', nil);
    pName := PWideChar(ParamStr(ParamCount));
    CopyDataStruct.dwData := 0;
    CopyDataStruct.cbData := (StrLen(pName) + 1) * SizeOf(Char);
    CopyDataStruct.lpData := pName;

    SendMessage(MainHandle, WM_COPYDATA, 0, Integer(@CopyDataStruct));
  end;

  Halt;
end;
Delphi-Quellcode:
    WM_COPYDATA:
      begin
        CopyDataStruct := pointer(Lp);
        ExecuteCmdLine(CopyDataStruct.lpData);
      end;
Delphi-Quellcode:
procedure ExecuteCmdLine(Title: Pointer);
var
  Ext: TSplitStrArray;
  Extension: string;
  ValidExt: Bool;
  IntI: integer;
  pTitle: PWideChar;
begin

  ValidExt := false;
  pTitle := Title;

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

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

        ShowWindow(MovieHandle, SW_SHOW);

        btnPlay.Enabled := false;
        btnPause.Enabled := true;
      end;
    end;
  end;
end;
Das ganze ist für die LaunchBar OverTheTaskBar damit wenn ich dort ein Movie auf mein KVideoPlayer Icon ziehe das Video abspielt.

gruss

Geändert von EWeiss (24. Mai 2017 um 21:47 Uhr)
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#2

AW: Alte Instanz über CmdLine aktivieren\starten

  Alt 24. Mai 2017, 22:40
Bitte sehr. Meine Lösung ist einfach und funktioniert wunderbar.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Alte Instanz über CmdLine aktivieren\starten

  Alt 25. Mai 2017, 07:29
Bitte sehr. Meine Lösung ist einfach und funktioniert wunderbar.

Ich wollte es mit einem Ein Zeiler versuchen aber das geht nicht weil der String ohne ihn vorher zu kopieren zwischenzeitlich verloren geht.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz