Как отобразить в Task Manager невидимое проложение?
В результате в Task Manager тоже ничего не видно, а нужно чтобы программу там было видно.
Цитата: Yurec
И так имеем: MainFrm.Visible:=false;
В результате в Task Manager тоже ничего не видно, а нужно чтобы программу там было видно.
В результате в Task Manager тоже ничего не видно, а нужно чтобы программу там было видно.
Список процессов смотрели? :D
И еще. В списке "задач" у таск-менеджера отображается список видимых топ-левел окон.
Вот если это поставить в onCreate
Код:
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
А это например в Form1onClick
Код:
ShowWindow(handle, SW_HIDE);
То получится то что вам нужно. Хотя почти уверен что это гемор, потому как VCL "не любит" WinApi.
вцл нормально относится к винапи если грамотно их совмещать. Для этого надо знать механизмы работы и вцл и винапи. об этом можно почитать в книге а.григорьева "о чем не пишут в книгах по delphi". Ссылка есть в соответствуючей прикрепленной теме. Книга кстати классная, купил недавно, не нарадуюсь.
Цитата: 0nni
Да и кстати отображается во вкладке приложения не окно MainFrm а окно Application.
Вот если это поставить в onCreate
А это например в Form1onClick
То получится то что вам нужно. Хотя почти уверен что это гемор, потому как VCL "не любит" WinApi.
Вот если это поставить в onCreate
Код:
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
А это например в Form1onClick
Код:
ShowWindow(handle, SW_HIDE);
То получится то что вам нужно. Хотя почти уверен что это гемор, потому как VCL "не любит" WinApi.
Отрабатывает действительно так как надо, но только если ShowWindow(handle, SW_HIDE); действительно испольщовать в онклике. Если вешать на ОнКреате окна, то не исчезает ни в какую... ( Как победить?
ShowWindow(Handle, SW_HIDE) надо поставить вместо MainFrm.Visible := false;
Цитата: Yurec
Отрабатывает действительно так как надо, но только если ShowWindow(handle, SW_HIDE); действительно испольщовать в онклике. Если вешать на ОнКреате окна, то не исчезает ни в какую... ( Как победить?
Очевидно надо написать это в обработчике другого события. Скажем вот так в OnActivate
Код:
if FirstTime then
begin
ShowWindow(handle, SW_HIDE);
FirstTime := false;
end;
begin
ShowWindow(handle, SW_HIDE);
FirstTime := false;
end;
Цитата: Yurec
Отрабатывает действительно так как надо, но только если ShowWindow(handle, SW_HIDE); действительно испольщовать в онклике. Если вешать на ОнКреате окна, то не исчезает ни в какую... ( Как победить?
Дело в том, что как правило при срабатывания события OnCreate окно еще не видимо, так что вызов ShowWindow не имеет смысла. Поэтому действительно этот вызов необходимо помещать в другой обработчик, либо сразу после создания окна.
Цитата: Yurec
Отрабатывает действительно так как надо, но только если ShowWindow(handle, SW_HIDE); действительно испольщовать в онклике. Если вешать на ОнКреате окна, то не исчезает ни в какую... ( Как победить?
Нажимаешь Project -> View Source и пишешь
Код:
...
Application.Initialize;
Application.ShowMainForm := false;//<<<<<
....
Application.Initialize;
Application.ShowMainForm := false;//<<<<<
....