Wykrywanie zamykania programów

Odpowiedz Nowy wątek
2006-08-23 17:54
SysRq
0

Jak wykryc zamknięcie programu który został uruchomiony przez shellExecute?

Pozostało 580 znaków

2006-08-23 19:19
ŁF
0

jak masz uchwyt do procesu, to waitforsingleobject()


Pozostało 580 znaków

2006-08-23 19:35
0

Jednym ze sposobów obsługi okien (aplikacji) przez system operacyjny jest mechanizm przesyłania wiadomości systemowych, w kierunku od systemu do aplikacji. Cały proces obsługiwany jest przez system, aplikacja użytkownika musi tylko wykonać odebrane polecenie. Jeżeli tego nie zrobi system wyświetla tekst '[Nie odpowiada]' informujący że dany program nie wykonuje wysyłanych poleceń. Procedury obsługi poleceń tworzone są automatycznie w chwili otwarcia formy. Dzięki takim poleceniom można np. zamknąć aplikację wysyłając do niej komunikat systemowy WM_SYSCOMMAND z parametrem SC_CLOSE. Aplikację adresuje się poprzez tzw. uchwyt czyli 'adres' okna w systemie Windows. Może on posłużyć również do innych operacji na wybranej aplikacji.

var Uchwyt : HWND;
begin
// pobranie uchwytu do okna na podstawie jego nazwy
Uchwyt := FindWindow('notepad', nil);
// jeżeli dane okno istnieje
if Uchwyt <> 0
// wysłanie stosownego komunikatu
then PostMessage(Uchwyt, WM_SYSCOMMAND, SC_CLOSE, 0);

...
Inne podobne parametry WM_SYSCOMMAND
SC_CLOSE zamknij okno
SC_RESTORE pokaż zminimalizowane okno
SC_MAXIMIZE maksymalizuj okno
SC_MINIMIZE minimalizuj okno
SC_SCREENSAVE uruchom wygaszacz
SC_HOTKEY uaktywnij wskazane okno

Inne komunikaty systemowe
SC_MONITORPOWER Programowe wyłączenie monitora

Typ wiadomości odbierane przez okno
WM_TIMECHANGE Aktualizacja czasu systemowego
WM_NCPAINT Rysowanie belki tytułowej i obramowania okna
WM_RASDIALEVENT Nawiązanie połączenia internetowego

// Programowe zaznaczanie/odznaczanie (Checked) kontrolki RadioButton
SendMessage(RadioButton1.Handle, BM_SETCHECK, 1 lub 0, 0);

// ale jaki to ma związek z tematem??? :| - Ł


<span style="color: blue">"Kolarstwo to jedna z najtrudniejszych dyscyplin sportu. Nawet najgorszy kolarz jest wciąż wybitnym sportowcem."
s.p. Marco Pantani
</span>

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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