Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.08.14;
Скачать: [xml.tar.bz2];

Вниз

Find and Kill   Найти похожие ветки 

 
SH   (2003-06-11 14:07) [0]

Find and Kill
--------------
Нужна программа, которая бы отслеживала активный процесс и, если сей
процесс был помечен админом как неугодный, тут же его прибивала.
Стараюсь писать без использования VCL и форм, вот что получилось:

program project;
uses
Windows,
Messages;
var
wnd,wnd2:HWND;
begin
while true do
begin
wnd:=getactivewindow;
wnd2:=findwindow(nil,"Run ie");
if wnd=wnd2 then
( wnd,wm_activate,1,1) Find and Kill
--------------
Нужна программа, которая бы отслеживала активный процесс и, если сей
процесс был помечен админом как неугодный, тут же его прибивала.
Стараюсь писать без использования VCL и форм, вот что получилось:

program project;
uses
Windows,
Messages;
var
wnd,wnd2:HWND;
begin
while true do
begin
wnd:=getactivewindow;
wnd2:=findwindow(nil,"Run ie");
if wnd=wnd2 then
postmessage(wnd,wm_activate,1,1);
end;
end.

Имхо, проблема с циклом: не прибивает эта прога ничего.
PS. Цикл нужен для обработки ситуации, когда неугодную прогу запущают ещё
раз и ещё раз, и ещё... Короче схема проста:
1) Определить хэндл активного окна
2) Определить хэндл неугодного окна (если оно запущено, но неактивно)
3) Если хэндлы совпали, делаем вывод, что запретная прога активна и
прибиваем сие безобразие
4) см 1)


 
Digitman   (2003-06-11 15:01) [1]

1. Если окно неактивно, это не есть факт неактивности процесса, его создавшего.

2. getactivewindow() определяет активное окно только того код.потока ( текущего процесса ! а не "чужого"), который создал это окно

3. в приведенном коде (даже при всем несоответствии его алгоритма условиям поставленной задачи) нет ничего похожего на попытку "прибить прогу"


 
clickmaker   (2003-06-11 15:08) [2]

может всет-ки WM_CLOSE, а не WM_ACTIVATE ?


 
SH   (2003-06-11 16:36) [3]

>может всет-ки WM_CLOSE, а не WM_ACTIVATE ?

OK: wm_quit or wm_close

Мастера, как же решить задачку? Что юзать есть правильно? (касательно WinAPI)


 
clickmaker   (2003-06-11 16:46) [4]

EnumWindows + PostMessage(Handle, WM_CLOSE



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.08.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
14-45105
pok
2003-06-12 17:39
2003.08.14
Сервис и API!


14-45051
NickBat
2003-07-25 17:12
2003.08.14
Компьютер дома.


14-45157
Ivanesus
2003-07-30 14:34
2003.08.14
HyperThreading и Delphi


14-45002
Dimka Maslov
2003-07-29 12:23
2003.08.14
Хочется знать


14-45056
Юля
2003-07-28 07:52
2003.08.14
Орфография





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский