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

Вниз

Проблемма с окнами   Найти похожие ветки 

 
ZeTToG350   (2010-03-27 21:00) [0]

Привет всем.
Вобщем я пишу как бы защиту для сервера.
Работает она так:
Если запущена игра, то сканируем комп на открытые окна.
Заганяем их в масив, и сверяем со списком окон исключений,
Если не совпадает то закрываем окна.
У меня на компе работает как надо, а вот у людей начинаются приколы:
То с рабочего стола уйдут все ярлыки то ещё что то.
Помогите решить эту проблемму.
Мои соображения: программа закрывает какоето системное окно,
в моей винде это было Program manager, когда его закрывало с рабочего стола слетали ярлыки.

Вот код проги:
Wnd := GetWindow(Handle, gw_HWndFirst);
 while (Wnd <> 0) do begin {Не показываем:}
   if (Wnd <> Application.Handle) and {-Собственное окно}
     IsWindowVisible(Wnd) and {-Невидимые окна}
     (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) {-Окна без заголовков}
     then begin
     GetWindowText(Wnd, buff, sizeof(buff));
// начало списка исключений.
     a:= pos("Opera", buff);
     b:= pos("Winamp", buff);
     c:= pos("qip", buff);
     d:= pos("Окно сообщений", buff);
     e:= pos("Internet Explorer", buff);
     j:= pos("Mozilla Firefox", buff);
     k:= pos("Спокойное общение", buff);
     m:= pos("Skype", buff);
     n:= pos("Infium", buff);
     l:= pos("ICQ", buff);
     if (buff = "Program Manager") or (buff = "Form1")
     or (buff = "Form2")
     or (a <> 0) or (b <> 0) or (c <> 0) or (d <> 0)
     or (e <> 0) or (j <> 0) or (k <> 0) or (m <> 0)
     or (buff = "RocketDock") or (n <> 0) or (l <> 0)
     then
     //нечего не делаем.
     else   //закрываем окна...
     PostMessage(FindWindow(nil, buff), WM_QUIT, 0, 0);
     end;
   Wnd := GetWindow(Wnd, gw_hWndNext);
 end;

согласен, написано немного туповато:)


 
Jeer ©   (2010-03-27 21:54) [1]

Считай, что мы прочитали сценарий RPG - ничего, что немного туповат.


 
Вася   (2010-03-28 10:05) [2]

Чем закрывать все окна кроме списка исключений,
не лучше ли пытаться закрывать окна как раз по списку, а все остальные (про которые ты знать ничего не знаешь) оставить?

ЗЫ. Если бы на моем компьютере какая-то программа что-либо закрыла без моего согласия, это был бы последний день ее работы у меня


 
Anatoly Podgoretsky ©   (2010-03-28 10:38) [3]

> Вася  (28.03.2010 10:05:02)  [2]

Возможно вместе с тобой.


 
[true]TRIx ©   (2010-03-28 14:18) [4]

Приколы будут возникать. Разве ты не знал, что рабочий стол у тебя тоже начинает WM_QUIT

Вобще что ты написал это никак не годится для того что ты делаешь!. Не сделать это так.


 
ZeTToG350   (2010-03-28 14:44) [5]

А сверять по списку тоже не вариант, они название окон сменят и все:)


 
Chirockie   (2010-03-28 22:10) [6]

The FindWindow function retrieves the handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows.

...

Return Values

If the function succeeds, the return value is the handle to the window that has the specified class name and window name.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.

(C) Delphi Help

const
 HWND_DESKTOP = 0;


(C) Borland (Windows.pas)



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

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.069 c
15-1274853689
12
2010-05-26 10:01
2010.08.27
Как лучше составлять форму с кучей контрлов?


15-1266214599
Дмитрий С
2010-02-15 09:16
2010.08.27
У вас работает virtual treeview в delphi2010?


15-1265026861
contek
2010-02-01 15:21
2010.08.27
Помогите с простым вроде запросом


2-1270722524
Учащийся
2010-04-08 14:28
2010.08.27
перевести Integer в Char, String в Char


15-1267466564
М. Береговой
2010-03-01 21:02
2010.08.27
Что за полосы на дне Тихого Океана?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский