вторник, 4 декабря 2012 г.

Запрет запуска программ

Я не вредный программист, но иногда бывают случаи когда необходимо сделать так, что бы что то не работало. И вот тут на выручку приходит программирование.

Все началось с того что на работе огромный парк техники. И многие используют её не совсем так как положено в рабочее время( Пасьянсы, Сапер, MostWanted,Counter Strike и т.д). И вот родилась она -  задача.
Как не банально задача проста, необходимо исключить запуск некоторых приложений, а так как пользователи умудряются переименовывать exe файлы дабы администратор случайно на них не наткнулся ... то приходится использовать радикальные меры.

И так, что мы имеем? Может быть запущена "игра" исполняемый файл которой может быть переименован.

Ладно, запускаем Delphi и начинаем:

Несмотря на то, что исполняемый файл и переименован но при компиляции приложению, а точнее его главному окну был дан заголовок, вот он то нам и надо.
Вспоминаем WinAPI и начинаем кодить.
Логика получается примерно такая:
1) Имеем список шаблонов/маск заголовка окна, к примеру "Блокнот", запускам блокнот и наблюдаем
2) Зная часть Caption-а нужного нам окна, переберем все ВИДИМЫЕ окна системы и сверим их с файлом шаблона.

3) Если нашлось нужное нам окно - закрываем его.
4) А пользователю можно выдать сообщение, нечто вроде "Не стоит тут играться".

Для себя же добавим такие удобства как:
1) Показывать/Не показывать иконку в трее
2) Доступ к всплывающему меню программы
3) Ведение лога

когда все готово, запускаем программу у себя, будут созданы пустые фалы конфигурации.
Закрываем программу, а вот файлы конфигурации осторожно заполняем, дабы не написать "explorer" как маску закрываемого приложения.

Ну вот все и готово для наших любимых пользователей.

Теперь размещаем программу на сетевом диске где у пользователей есть права только на чтение, выкладываем туда программу  и конфигурационные файлы.
Всем пользователям в скрипт запуска операционной системы добавляем запуск нашей программы и..... и все, после перезагрузки наша программа регулярно будет проверять что же запущено у пользователя.

Уже готовую программу можно взять тут https://docs.google.com/open?id=0B888Vt6ak9afeTg0Snp3LUNtMEE

Но стоит всегда помнить, никогда не делайте того что не сможете отменить или вернуть назад.


Комментариев нет:

Отправить комментарий