Маскировка никогда не помешает

Частенько при автоматизации какой-то задачи приходиться писать консольные приложения. Это достаточно удобная штука, но есть один минус — «чёрное окно». Да соглашусь, что в 90 процентов случаев это просто эстетическая фишка, но есть ведь и ещё 10 процентов когда нужно его убрать, да и эстетику порой тоже хочется навести.

Один из способов скрыть это «чёрное окно» при написании консольного приложения в Delphi — это воспользоваться инструкциями компилятора. В начале каждой такой программы можно увидеть загадочную строчку:

{$APPTYPE CONSOLE}

это как раз и есть упомянутая инструкция, которая говорит компилятору, что приложение консольное и для него нужно создать соответствующее окошко, от которого мы сейчас пытаемся избавиться. Сразу же напрашивается мысль если эта инструкция говорит создать окно, то если её стереть она не скажет этого и компилятор этого не сделает. Да если верить некоторым источникам это действительно так, но я честно сказать так и не проверил этот способ, а применял всегда более формальную штуку — заменял данную строку на строку:

{$APPTYPE GUI}

которая уже говорит, что это приложение GUI и, что для него уже программой будут создаваться стандартные окна Windows и автоматически создавать ничего не надо. А далее мы просто забываем своё «обещание», и получается, что не создаётся вообще никаких окон.

Способ достаточно простой и удобный при написании маленьких «процессов автоматизации», но есть одно «но»: антивирусы начинают такую программу считать чем-то вредоносным, и приходиться с ними договариваться путём редактирования «списка доверенных программ». В остальном способ, по моему, замечательный.

Запись опубликована в рубрике Delphi с метками , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий