Другие языки программирования и технологии
Один вопрос по Pascal (или Object Pascal, или Delphi) (не надо ничего решать, просто один вопрос)
Как в DOS приложение написанный на Pascal или Object Pascal (если в среде Delphi) скрыть черную коммандное окошко, а чтобы само приложение было запущено и продолжало работать. Ну вот например системные программые ctfmon.exe, winlogon.exe, svchost.exe и т.д. у них ведь нету никаких форм и черной окошки, они скрытно запускаются и работают. Как сделать такое в Pascal или в Object Pascal? Ведь такое возможно.
1. Вопрос никакого отношения к Паскалю не имеет.
2. Предыдущие отвечающие в принципе все сказали правильно, но, увы, не объяснили, в чем заключается твоя ошибка. А она - в путанице понятий.
Есть операционная система (ОС) DOS. Для нее существует специальный формат исполняемого файла. Эти файлы могут запускаться как в ОС DOS, так и в ОС Windows, причем последняя при запуске приложения создает для него консольное окно.
Есть ОС Windows, для нее существует другой формат исполняемого файла. Кроме того, приложения Windows принято делить на консольные и оконные.
И здесь ГЛАВНОЕ: приложение DOS и консольное приложение Windows - это совершенно различные форматы программ, хотя при запуске из Windows они могут выглядеть внешне совершенно одинаковыми.
Приложение DOS никак (!) не может влиять на то, как оно выглядит при запуске из Windows - это целиком определяет ОС. Кроме того, приложение DOS не может вызывать функции WinAPI. Но зато оно может перейти в графический режим (правда, как на попытку такого перехода отреагирует Windows - вопрос: мы ведь помним, что внешний вид приложения DOS определяется ОС) . Из консольного приложения Windows можно вызывать функции WinAPI, в частности, можно создавать дополнительные окна. Но само консольное окно ни при каких условиях нельзя сделать графическим либо скрыть с экрана.
Те, приложение, которые называются оконными на самом деле не создают окон по умолчанию. Все создаваемые в них окна создаются вручную программистом, поэтому такое приложение может работать вообще без окна либо со скрытым окном (чтобы получать оконные сообщения) .
Все сказанное относится исключительно к ОС, но никак не связано с языком программирования, будь то Паскаль, Си, Бейсик, Ассемблер либо Оберон.
2. Предыдущие отвечающие в принципе все сказали правильно, но, увы, не объяснили, в чем заключается твоя ошибка. А она - в путанице понятий.
Есть операционная система (ОС) DOS. Для нее существует специальный формат исполняемого файла. Эти файлы могут запускаться как в ОС DOS, так и в ОС Windows, причем последняя при запуске приложения создает для него консольное окно.
Есть ОС Windows, для нее существует другой формат исполняемого файла. Кроме того, приложения Windows принято делить на консольные и оконные.
И здесь ГЛАВНОЕ: приложение DOS и консольное приложение Windows - это совершенно различные форматы программ, хотя при запуске из Windows они могут выглядеть внешне совершенно одинаковыми.
Приложение DOS никак (!) не может влиять на то, как оно выглядит при запуске из Windows - это целиком определяет ОС. Кроме того, приложение DOS не может вызывать функции WinAPI. Но зато оно может перейти в графический режим (правда, как на попытку такого перехода отреагирует Windows - вопрос: мы ведь помним, что внешний вид приложения DOS определяется ОС) . Из консольного приложения Windows можно вызывать функции WinAPI, в частности, можно создавать дополнительные окна. Но само консольное окно ни при каких условиях нельзя сделать графическим либо скрыть с экрана.
Те, приложение, которые называются оконными на самом деле не создают окон по умолчанию. Все создаваемые в них окна создаются вручную программистом, поэтому такое приложение может работать вообще без окна либо со скрытым окном (чтобы получать оконные сообщения) .
Все сказанное относится исключительно к ОС, но никак не связано с языком программирования, будь то Паскаль, Си, Бейсик, Ассемблер либо Оберон.
Среда Delphi не предназначена для разработки ДОС-приложений.
> скрыть черную коммандное окошко
Убери из текста проекта строчку {$APPTYPE CONSOLE} и будет тебе счастье.
> Перечисленные тобой системные программы 100 пудово не консольные, они оконного типа
Не надо пороть чушь.
> скрыть черную коммандное окошко
Убери из текста проекта строчку {$APPTYPE CONSOLE} и будет тебе счастье.
> Перечисленные тобой системные программы 100 пудово не консольные, они оконного типа
Не надо пороть чушь.
Черное окошко появляется у консольных программ. Они по другому скомпонованы (компоновщику дается указание консольное или оконное приложение сделать и в PE заголовке файла тип приложения прописан) . Когда загрузчик загружает консольное приложение, то автоматически создает для него черное окно и потокам ввода-вывода назначает нужные дескрипторы. Даже если в этом приложении создать свое окно, то черное так и будет висеть пока не закроется программа.
Перечисленные тобой системные программы 100 пудово не консольные, они оконного типа. Неверю, что программисты написавшие ОС (пусть и хреновую) не знают какой тип приложения компонавть для системных программ.
А вообще при запуске программы запускается процесс (его ты видишь в диспетчере задач) , а он уже может создавать окно.
Перечисленные тобой системные программы 100 пудово не консольные, они оконного типа. Неверю, что программисты написавшие ОС (пусть и хреновую) не знают какой тип приложения компонавть для системных программ.
А вообще при запуске программы запускается процесс (его ты видишь в диспетчере задач) , а он уже может создавать окно.
найди, скачай и прочти книжку "Програмирование в Delphi глазами хакера" автора М. Фленова, там найдешь ответ на свой вопрос
Похожие вопросы
- В чём отличия Pascal ABC, Free Pascal, Lazarus, Delphi?
- pascal or delphi
- Delphi (Object Pascal.). Если тут есть те кто составляет программу для школ. Зачем детем этот бред ?
- для чего используют языки програмиирования: С++,Java, Object Pascal(Delphi), C,C#, PHP.если можно то по несколько примеро
- добрый день подскажите пожалуйста программисты есть отличия между turbo и object Pascal я знаю что object pascal
- Можно ли назвать Turbo Pascal или Delphi мёртвым языком программирования?
- Правда, что язык PASCAL это тот же язык Delphi или же они просто похожи??
- Что такое депозитарий форм в Dalphi? или object PAscal.
- Pascal and Delphi
- Как написать программу для перевода числа с 8-ричной в 16-ричную систему? (язык Pascal или delphi в крайнем случае C++)