Я не вредный программист, но иногда бывают случаи когда необходимо сделать так, что бы что то не работало. И вот тут на выручку приходит программирование.
Все началось с того что на работе огромный парк техники. И многие используют её не совсем так как положено в рабочее время( Пасьянсы, Сапер, MostWanted,Counter Strike и т.д). И вот родилась она - задача.
Как не банально задача проста, необходимо исключить запуск некоторых приложений, а так как пользователи умудряются переименовывать exe файлы дабы администратор случайно на них не наткнулся ... то приходится использовать радикальные меры.
И так, что мы имеем? Может быть запущена "игра" исполняемый файл которой может быть переименован.
Ладно, запускаем Delphi и начинаем:
Несмотря на то, что исполняемый файл и переименован но при компиляции приложению, а точнее его главному окну был дан заголовок, вот он то нам и надо.
Вспоминаем WinAPI и начинаем кодить.
Логика получается примерно такая:
1) Имеем список шаблонов/маск заголовка окна, к примеру "Блокнот", запускам блокнот и наблюдаем
2) Зная часть Caption-а нужного нам окна, переберем все ВИДИМЫЕ окна системы и сверим их с файлом шаблона.
3) Если нашлось нужное нам окно - закрываем его.
4) А пользователю можно выдать сообщение, нечто вроде "Не стоит тут играться".
Для себя же добавим такие удобства как:
1) Показывать/Не показывать иконку в трее
2) Доступ к всплывающему меню программы
3) Ведение лога
когда все готово, запускаем программу у себя, будут созданы пустые фалы конфигурации.
Закрываем программу, а вот файлы конфигурации осторожно заполняем, дабы не написать "explorer" как маску закрываемого приложения.
Ну вот все и готово для наших любимых пользователей.
Теперь размещаем программу на сетевом диске где у пользователей есть права только на чтение, выкладываем туда программу и конфигурационные файлы.
Всем пользователям в скрипт запуска операционной системы добавляем запуск нашей программы и..... и все, после перезагрузки наша программа регулярно будет проверять что же запущено у пользователя.
Уже готовую программу можно взять тут https://docs.google.com/open?id=0B888Vt6ak9afeTg0Snp3LUNtMEE
Но стоит всегда помнить, никогда не делайте того что не сможете отменить или вернуть назад.
Все началось с того что на работе огромный парк техники. И многие используют её не совсем так как положено в рабочее время( Пасьянсы, Сапер, MostWanted,Counter Strike и т.д). И вот родилась она - задача.
Как не банально задача проста, необходимо исключить запуск некоторых приложений, а так как пользователи умудряются переименовывать exe файлы дабы администратор случайно на них не наткнулся ... то приходится использовать радикальные меры.
И так, что мы имеем? Может быть запущена "игра" исполняемый файл которой может быть переименован.
Ладно, запускаем Delphi и начинаем:
Несмотря на то, что исполняемый файл и переименован но при компиляции приложению, а точнее его главному окну был дан заголовок, вот он то нам и надо.
Вспоминаем WinAPI и начинаем кодить.
Логика получается примерно такая:
1) Имеем список шаблонов/маск заголовка окна, к примеру "Блокнот", запускам блокнот и наблюдаем
2) Зная часть Caption-а нужного нам окна, переберем все ВИДИМЫЕ окна системы и сверим их с файлом шаблона.
3) Если нашлось нужное нам окно - закрываем его.
4) А пользователю можно выдать сообщение, нечто вроде "Не стоит тут играться".
Для себя же добавим такие удобства как:
1) Показывать/Не показывать иконку в трее
2) Доступ к всплывающему меню программы
3) Ведение лога
когда все готово, запускаем программу у себя, будут созданы пустые фалы конфигурации.
Закрываем программу, а вот файлы конфигурации осторожно заполняем, дабы не написать "explorer" как маску закрываемого приложения.
Ну вот все и готово для наших любимых пользователей.
Теперь размещаем программу на сетевом диске где у пользователей есть права только на чтение, выкладываем туда программу и конфигурационные файлы.
Всем пользователям в скрипт запуска операционной системы добавляем запуск нашей программы и..... и все, после перезагрузки наша программа регулярно будет проверять что же запущено у пользователя.
Уже готовую программу можно взять тут https://docs.google.com/open?id=0B888Vt6ak9afeTg0Snp3LUNtMEE
Но стоит всегда помнить, никогда не делайте того что не сможете отменить или вернуть назад.
Комментариев нет:
Отправить комментарий