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 :]