Jak NIE pokazywać mojego programu na pasku zadań?

Jak NIE pokazywać mojego programu na pasku zadań?
GS
  • Rejestracja:ponad 20 lat
  • Ostatnio:prawie 5 lat
0

Cześć!

Potrzebuję napisać prosty program. Ma wyświetlać dialog z tekstem i kilkoma przyciskami. Program będzie używany między innymi w plikach BAT/CMD. Informacja o wybranym przycisku będzie zwracana jako ErrorLevel.

Na przykład:

Kopiuj
MsgDlg --message "Przykładowa informacja" --button "Opcja 1" --button "Opcja 2"
if ErrorLevel 2 goto Opcja2
if ErrorLevel 1 goto Opcja1
goto EOF
...

Chciałbym, żeby okno z tym dialogiem nie było widoczne na pasku zadań Windows. Mógłbym użyć standardowej funkcji MessageBox. Wtedy na pasku zadań nie ma mojego programu, ale możliwości tej funkcji nie są wystarczające. Jeżeli zastąpię ją własnym, dynamicznie budowanym oknem, to program pojawia się na pasku zadań Windows.

Zdawało mi się, że powinno wystarczyć dodanie instrukcji Application.ShowMainForm := False;. Niestety, program pojawia się na pasku zadań.

W Internecie znalazłem, że powinna pomóc instrukcja ShowWindow(Application.Handle, SW_HIDE);. Niestety, to też nie działa.

edytowany 1x, ostatnio: gskoczylas
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Tuchów
  • Postów:12171
2

Application.ShowMainFormOnTaskBar – sprawdź. Więcej pomysłów znajdziesz np. tutaj.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
GS
  • Rejestracja:ponad 20 lat
  • Ostatnio:prawie 5 lat
0

Wypróbowałem chyba wszystkie sposoby z tej strony. Żaden nie działa.
Podejrzewam, że w Windows 10 z jakiegoś powodu zablokowali możliwość ukrywania zadania z paska zadań.

SK
  • Rejestracja:około 7 lat
  • Ostatnio:około 21 godzin
  • Postów:99
0

Przed chwilą sprawdziłem i działa rozwiązanie stąd:
https://stackoverflow.com/questions/14811935/how-to-hide-an-application-from-taskbar-in-windows-7

Trzeba użyć "not WS_EX_APPWINDOW" w CreateParams, aby schować "przycisk" aplikacji na pasku zadań

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:8 miesięcy
  • Postów:6610
1

u mnie pierwsze z SO (ShowWindow(Application.Handle, SW_HIDE);) działa - delphi 10.2, windows 10


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
edytowany 1x, ostatnio: abrakadaber
GS
  • Rejestracja:ponad 20 lat
  • Ostatnio:prawie 5 lat
0

Ja mam Delphi 10 Seattle.

Chciałem sobie uprościć życie i tworzę ten dialog przez funkcję CreateDSAMessageForm z modułu JvDSADialogs, z pakietu JEDI VCL. Gdzieś w tym kodzie musi być coś, co powoduje, że u mnie to ukrywanie programu z paska zadań nie działa.

Dziękuję Wam za pomoc. Skoro Wam to działa, to mam pewność, że źródło problemu jest gdzieś w moim kodzie, a nie w Windows 10.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.