Dźwięk przy zamykaniu aplikacji odgrywany do końca

0

Część
Mam pytanie jak podpiąć dźwięk(mp3) pod zamknięcie aplikacji ale tak że dźwięk musi odegrać się do końca
zwykłe zamknięcie, zwykłym 'X' na belce tytułowej aplikacji.

Ale z ciekawości zapytam czy przy 'zabijaniu' procesu też jest to możliwe, wymuszenie odtworzenia dźwięku do końca? i czy bardzo skomplikowane?

0

Do odegrania dźwięku możesz użyć funkcji PlaySound z modułu MMsystem - bez flagi SND_ASYNC; Ale to raczej dla plików wav - jak chcesz to sobie przekonwertuj; A jak koniecznie musi to być mp3 to możesz skorzystać z TMediaPlayer, albo z jakiejś biblioteki, np. BASS;

Mam pytanie jak podpiąć dźwięk(mp3) pod zamknięcie aplikacji ale tak że dźwięk musi odegrać się do końca zwykłe zamknięcie, zwykłym 'X' na belce tytułowej aplikacji.

Odegraj go w zdarzeniu OnDestroy głównego formularza; Wtedy dźwięk zostanie odegrany tylko i wyłącznie przy wyłączaniu aplikacji, bez względu na sposób (przycisk krzyżyka, Alt+F4, z menu kontekstowego belki tytułowej lub przycisku na pasku zadań czy dowolnego innego sposobu);

Ale z ciekawości zapytam czy przy 'zabijaniu' procesu też jest to możliwe, wymuszenie odtworzenia dźwięku do końca?

Raczej nie.

0
furious programming napisał(a):

Raczej nie.

No teorytycznie da się :) nadając odpowiednie "parametry" aplikacji z managera zadań dostaniesz "odmowę dostępu" jak w przypadku niektórych usług systemowych. Do tego odpowiednie zabezpieczenie procedury zamykającej aplikację mogłoby spowodować, że póki dźwięk się nie skończy odgrywać to aplikacja nie zostanie zamknięta ;)

0

Trzymam się zasady, że wszystko da się zrobić - problemem może być jedynie zbyt mała wiedzia;

Według mnie, spokojnie wystarczy odgrywanie dźwięku przy niszczeniu głównego formularza, bez synchronizacji; Natomiast odgrywanie dźwięku przy ubijaniu procesu jest zbędne i w mojej ocenie wygląda na nadgorliwość początkującego; Jak ubijam jakiś proces to liczę na to, że proces zostanie zakończony natychmiast, bez żadnych dodatkowych operacji; I do tego właśnie ta opcja służy - normalny użytkownik zamyka program w normalny sposób, a ubija proces raczej tylko wtedy, gdy ten np. nie odpowiada (zawiesił się);

@woolfik: jeśli o Twój pomysł chodzi - dobrze, ale w jakiej konkretnie sytuacji menedżer zadań miałby poinformować proces, że zaraz go ubije i dać mu czas na zrobienie czegokolwiek? Odmowę dostępu można dostać chyba jedynie w przypadku, gdy nie ma się uprawnień do zabicia procesu (np. chronionej usługi), co raczej nie ma odzwierciedlenia w przypadku zwykłej aplikacji;

Tego typu przekomarzanie się z systemem można wykonać w przypadku, gdy dana aplikacja działa, a system szykuje się do wyłączenia (czyli użytkownik zamyka system czy wylogowuje się); Wtedy system rozsyła komunikat WM_QUERYENDSESSION do działających aplikacji i one mają czas na wykonanie końcowych operacji lub też odmowę wyłączenia się;

To jeśli chodzi o zamykanie sesji systemu, ale jak przekomarzać się z menedżerem zadań - nie mam pojęcia :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1