![]() |
Как в powershell gui скрыть значок с панели задач в трей?
Всем привет.
Есть такое простое окошко, нужно по нажатию на стандартную кнопку свернуть в трей и убрать с панели задач значок. Пробовал ставить в $form.add_Resize - $form.ShowInTaskbar = $false, сворачивает, но тут же закрывает его. Не могу понять как это сделать. Скрытый текст
Код:
$HideWindow = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);' Ещё хотел спросить, возможно ли в стандартный заголовок windows добавить ещё одну кнопочку свернуть в трей. Почитав немного, понял что вроде это нельзя сделать, но может я что не понял и всё же как то можно сделать? |
делайте сразу System.Windows.Forms.NotifyIcon
|
Serguei Kouzmine, Дело было в другом))
При добавлении [System.Windows.Forms.Application]::Run() перестало закрываться при сворачивании в трей. Кому надо используйте) Готовый powershell gui скрипт, окно которое скрывается при нажатии кнопки свернуть в заголовке окна в трей, уведомляет что оно свернуто, после нажатия на значок в трее разворачивается, что я и хотел). Правда я хотел ещё что бы была в заголовке окна ещё одна кнопка, но как я понял это невозможно сделать на powershell gui только если писать свою программу, там можно, а тут нельзя ну или я не совсем разобрался. Если знаете как это сделать напишите. Скрытый текст
Код:
$HideWindow = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);' PS. Возможно где то ошибки, но вариант рабочий если поправите и скините сюда, будет очень хорошо. Serguei Kouzmine, реально ли поменять стили такого окошка? Может фон прикрутить или кнопки красивые сделать? Можно потом после дописанания окончательно конвертировать в ps2exe в .exe и будет своя мини программа), которая делает какое то действие в системе. Недавно тут спрашивал про тачпад, оригинальная программа урезана в функционале, на win7 была удобнее и настроек больше, можно с win7 настройки программы скопировать из реестра, добавить их в powershell в виде галок, и конвертировать в exe))) будет некий заменитель оригинальной программы) |
1. очевидные вещи в комментариях не пишут. Пояснять лучше непонятные действия, например add_SizeChanged с дублированием add_Resize. Или использование системной ShowWindow() для скрытия окна консоли, или добывание иконки из файла текущего процесса PS.
2. процесс остаётся висеть после выхода, потому что нет $form.Dispose(). Возможно нужен ещё [System.Windows.Forms.Application]::Exit() (выходит и без него). 3. ContextMenu работает только в нативном PS (powershell.exe). Для pwsh (.NET Core) надо пробовать ContextMenuStrip. |
Sham, 1. Я только учусь, могу всего не знать, так всякие простые шутки делаю на powershell gui.
2. выше в скрипте забыл добавить, а то на кнопку закрытие окно сворачивалось)): Скрытый текст
Код:
# Добавляем обработчик закрытия формы 3. С ContextMenu я пока не разобрался, просто добавил кнопку закрытие. ps. щас сделал ещё форму текстовую, но не могу понять как обрабатывать tab. выделять текст нашел как сделать, а вот tab не работает как бы не делал, но нашел рабочий вариант но пока не могу дойти как оно там работает) Скрытый текст
Код:
$textBox.Add_KeyDown({ |
И правда в диспетчере процесс висит после закрытия, что то все перепробовал, а оно всё равно там остается.
|
может быть закрывать его
Код:
$process = [System.Diagnostics.Process]::GetCurrentProcess() | Get-Process Код:
$form.add_FormClosing({ |
Время: 03:17. |
Время: 03:17.
© OSzone.net 2001-