Jeżeli dobrze zrozumiałem, to kiedy chcesz osiągnąc efekt jak dla Exploratora. To należało by wywoływać plik, a nie program i parametr. O ile w ogóle VLC Player działa ok. Ponieważ nawet kiedy w WinAMPie ustawiłem opcję aby uruchamiał się w wielu instancjach i zrobiłem taki kod programu, jak widać poniżej. To WinAMP nie wywołał mi się dwa razy. A klikałem przyciski naprzemiennie. Może jeszcze jakieś dodatkowe wpisy akurat dla niego w rejestrze o tym decydują, ale wątpie. To ważne jak program chyba jest stworzony. Na przykład czy nie tworzy Mutex i nie obsługuje nowych parametrów przy podaniu kiedy jest już uruchomiony.
//...
procedure TForm1.Button1Click(Sender : TObject);
begin
ShellExecute(Handle, 'open', PChar('C:\PROGRAM FILES\WINAMP\winamp.exe'), PChar('"' + 'C:\PROGRAMY\MP3\Weekend - Ona Tanczy Dla Mnie.mp3' + '"'), '', SW_SHOWNORMAL);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', PChar('C:\PROGRAM FILES\WINAMP\winamp.exe'), PChar('"' + 'C:\PROGRAMY\MP3\Sobota & Weekend - Ona Tanczy Dla Mnie (2sty Blend).mp3' + '"'), '', SW_SHOWNORMAL);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', PChar('"' + 'C:\PROGRAMY\MP3\Weekend - Ona Tanczy Dla Mnie.mp3' + '"'), '', '', SW_SHOWNORMAL);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', PChar('"' + 'C:\PROGRAMY\MP3\Sobota & Weekend - Ona Tanczy Dla Mnie (2sty Blend).mp3' + '"'), '', '', SW_SHOWNORMAL);
end;
Jeżeli jednak Explorator zachowuje się ok to myślę, że powinno pomóc wywołanie pliku. Ponieważ kiedy robisz dwuklik na pliku, to o ile się orientuje robisz właśnie tak jakbyś wywoływał sam plik jako program, a parametr pusty. Ewentualnie zobacz w Rejestrze czy wywołanie plików .flv
przez VLC nie odbywa się z jakimis dodatkowymi parametrami i tym podobne. Jeżeli to i reinstall nie pomoże to nie wiem jak można by jeszcze kombinować. Nie mam zamiaru instalować VLC na chwile i psuć sobie skojarzenia dla plików filmów. Natomiast przedwczesne jest raczej "wytaczanie takich dział" jak próba napisania wrappera dll (o ile taki da się łatwo napisac, bo VLC obsluguje jakąś udokumentowaną dllkę systemową przez małą ilośc eksportów), co jest moją jedną z moich ulubionych metod i w miarę łatwych do zaimplementowania. Jeżeli oczywiście chcemy łatwo ingerować w zachowanie kodu oryginalnego programu bez jego ręcznego patchowania albo inwazyjnego injectowania dllek. Wtedy takim wrapperem można by spróbować najprościej tworzyć Mutex
o unikalnej nazwie. Tylko kwestia, co zrobić jeżeli on by istniał. Jak przekazać nowy plik do VLC. Chyba tylko symulacją komunikatu o przeciąganiu pliku na okno, ewentualnie mechanizmem DDE jeżeli jest obsługiwany i udokumentowany dla tego playera. W ostateczności można szukać pomocy w supporcie VLC.