Как скрыть консольное приложение Delphi при запуске - PullRequest
0 голосов
/ 03 марта 2020

Я бы хотел контролировать, когда окно консоли Delphi становится видимым при запуске. В настоящий момент я использую следующий код в качестве первого шага, чтобы скрыть консоль, выполнить другие действия, а затем снова сделать ее видимой

showWindow(GetConsoleWindow, SW_HIDE);

... do other stuff

showWindow(GetConsoleWindow, SW_NORMAL);

Однако, все еще можно увидеть флаг sh начальное окно консоли, прежде чем оно будет скрыто SW_HIDE. Есть ли другой способ скрыть окно консоли, прежде чем windows даже попытается сделать его видимым при запуске?

Чтобы получить дополнительную справочную информацию, пользовательский опыт, который мне нужен, заключается в том, что экран консоли отображается в центре экрана. Я знаю, как центрировать консольное окно, но я все еще вижу fla sh при запуске, прежде чем окно будет отцентрировано. Я хотел бы иметь возможность контролировать, когда консоль становится видимой, чтобы пользователю при запуске отображалось окно консоли без каких-либо побочных эффектов окна.

1 Ответ

7 голосов
/ 03 марта 2020

Консольное приложение не контролирует начальное состояние окна консоли. Это окно может уже существовать до того, как приложение даже запустится, или ОС может потребоваться создать новое окно для приложения.

Для того, что вы ищете, вам лучше удалить {$APPTYPE CONSOLE} в целом, так что приложение больше не является консольным приложением, а затем используйте AllocConsole(), чтобы создать новое окно консоли, когда вы будете к нему готовы.

...