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
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#6

AW: Alte Instanz über CmdLine aktivieren\starten

  Alt 24. Mai 2017, 19:38
Du willst also dein Singleton mehrmals haben ... dann bau einfach den Code für das SingleInstance aus.
Oder bau ein, dass es bei einem bestimmten Parameter nichts prüft.



Zitat:
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;
Delphi-Quellcode:
// Commandline Parameter auswerten
if ParamCount > 0 then
begin
  ValidExt := false;
  Ext := SplitString(VIDEOEXT, ';');
  Extension := Lowercase(ExtractFileExt(ParamStr(ParamCount))); //Extension := Lowercase(ExtractFileExt(GetCommandLine));

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

    ...
Delphi-Quellcode:
// Commandline Parameter auswerten
if ParamCount > 0 then
begin
  Ext := SplitString(VIDEOEXT, ';');
  Extension := ExtractFileExt(ParamStr(ParamCount)); //Extension := ExtractFileExt(GetCommandLine);
  if AnsiMatchText(Extension, Ext) then
  begin
    RunMediaFile(PChar(GetCommandLine));
    SKAERO_InvalidateRect(MainHandle, false);

    ...
* Delphi-Referenz durchsuchenSplittString
* Delphi-Referenz durchsuchenMatchText
* ParamStr enthält keine " mehr, womit es hoffentlich schön knallt, wenn aus deine.exe "pfad mit lerzeich.en" zu deine.exe pfad mit lerzeich.en wird
* wenn wenn du nur die Endung des letzten Parameters haben willst, warum nimmst du den dann nicht?

200 Byte gespart, 80% der Codezeilen weg und dafür nur bissl nicht ganz funktionierenden und "doppelten" Code entfernt
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Mai 2017 um 19:53 Uhr)
  Mit Zitat antworten Zitat
 


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 10:07 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