Как показать / скрыть консоль windows в панели задач? - PullRequest
0 голосов
/ 07 мая 2020

Я заканчиваю программу python, которую буду распространять как exe. Я использую Python 3.7 на Windows 10 64b.

Пользователь дважды щелкает exe, чтобы запустить мою программу. Затем открывается консоль windows и отображаются журналы в этой консоли.

Моей программе не нужны gui, но я хотел бы дать пользователям возможность скрыть консоль с журналами и показывать его, когда он / она захочет, с помощью значка на панели задач.

Я нашел здесь разные ответы, но ни один из них не отвечал моим потребностям.

Я думаю, что я не тот, кто хотел бы чтобы иметь эту опцию в нашем python скрипте. Это может быть очень полезно.

Я нашел руководство по созданию значка панели задач в python:

https://youtu.be/WM27fMo5Gg8

Но это об открытии windows программы, а не об открытии / скрытии собственной консоли.

1 Ответ

0 голосов
/ 07 мая 2020

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

  1. Я нашел этот знаменитый сценарий SystrayIcon.py для python 2, который помогает мне очень быстро создать свой значок с меню.
  2. Я нашел Python 3 версию этого скрипта здесь .
  3. Затем я использую GetConsoleWindow из types и ShowWindow из win32 gui, чтобы скрыть и показать консоль.

    def show (sysTrayIcon):

    the_program_to_hide = ctypes.windll.kernel32.GetConsoleWindow()
    
    win32gui.ShowWindow(the_program_to_hide, win32con.SW_SHOW)
    

    def hide (sysTrayIcon):

    the_program_to_hide = ctypes.windll.kernel32.GetConsoleWindow()
    
    win32gui.ShowWindow(the_program_to_hide, win32con.SW_HIDE)
    

Эти 2 функции связаны с меню моего значка на панели задач.

Надеюсь, однажды это кому-нибудь поможет.

PS: Ошибка редактора StackOverflow, и я не смог Не удается правильно отобразить код двух функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...