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);
...
*
SplittString
*
MatchText
* 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