Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows
Стороннее ПО использовать только в виде готового решения

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241

Открыть новую тему     Написать ответ в эту тему

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Старые и смежные темы: по CMD и в Программах | по PowerShell | В помощь системному администратору | Прикладное программирование

PowerShell
Версии | Ассоциация и подпись сценариев
 
Сценарий для ассоциации файлов PowerShell и запуска неподписанных скриптов.
Как запустить Pwsh старше 7.2.24 под Windows 7.
 
Прочее
Расширение возможностей
Функции
Write-Color
Output-DebugString
Провайдеры
Готовые скрипты
Полезные ссылки | Будет ли репозиторий PowerShell на ru-board?
Книги в PDF
Cheat Sheets
 

Cmd
Для перекодирования кириллицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы
 
Готовые решения и частые вопросы
 
Описания работы команд и символов участниками темы:
setlocal enabledelayedexpansion и переменные окружения
символы & и && в командной строке
Переменная %0
 
Полезные ссылки и утилиты

WSH (VBScript, JScript)
Программирование "удобняшек" на VBScript

Примечания:
• Большие куски кода заключайте в тэг [ more ]
• Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте код без пробелов иначе сценарий может работать неправильно. Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы

Всего записей: 11832 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: KLASS, 08:31 18-08-2025
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21




Флуд

Всего записей: 3685 | Зарегистр. 29-03-2016 | Отправлено: 17:09 06-12-2025 | Исправлено: bomzz, 17:52 06-12-2025
LevT



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Супертвикер, целиком на Powershell
Даже в систему не надо ничего ставить, только запустить скрипт.
 
https://github.com/ChrisTitusTech/winutil
 
 
Моё мнение: GUI перегружен.
Но ничего лучшего я не видел.
 
 
 
Добавлено:
 
Документация  
https://winutil.christitus.com/dev/
 
(отстаёт от кода, лучше читать по прямым кликам на [?])

Всего записей: 18364 | Зарегистр. 14-10-2001 | Отправлено: 12:16 10-12-2025
MKN



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT

Цитата:
Но ничего лучшего я не видел.  

Да. Много полезного.  Столько же - бесполезного и спорного для "здоровья" ОС... На мой взгляд, тулза для смелого любителя экпериментов...

Всего записей: 5233 | Зарегистр. 21-04-2005 | Отправлено: 16:09 12-01-2026 | Исправлено: MKN, 16:15 12-01-2026
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скрипт HideFromTaskbar.ps1 — скрывает значок с панели задач или скрывает окно
 
Делался для скрытия значка запрета.
 
Параметры:
 
  -Name — имя процесса (без расширения) или Заголовок окна.
  -HideWindow — скроет не только кнопку но и окно.
  -Show — указав параметр вернёт показ значка на панели задач или вернёт окно.
 
без параметра -Show и -HideWindow скрывает значок с панели задач.
если программа, чей значок нужно скрыть запущена от имени Администратора, то и скрипт нужно выполнять от имени Администратора.
у меня Windows 11 25H2, на других не проверялось.
 
PowerShell > C# > P/Invoke > WinAPI
HideFromTaskbar.ps1 v2
 
Запуск из CMD

Код:
powershell.exe -ExecutionPolicy Bypass -File "К:\скрипту путь\HideFromTaskbar.ps1" -Name "winws"


Код:
powershell.exe -ExecutionPolicy Bypass -File "К:\скрипту путь\HideFromTaskbar.ps1" -Name "zapret: general (ALT11)" -Show

 
*В версию 2 добавлено скрытие/показ окна, требование указать имя процесса или заголовка.

Всего записей: 3839 | Зарегистр. 16-08-2012 | Отправлено: 20:32 14-01-2026 | Исправлено: iNNOKENTIY21, 22:21 14-01-2026
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
   Некоторые наблюдения.
 
   1.
Цитата:
требование указать имя процесса или заголовка.

       У меня 'это требование' выглядит таким образом:
   
      WARNING: Обязательно укажите параметр -Name
 
      Я менял кодировки консоли, но 'китайская грамота' остаётся. Можно ли исправить?
   2. Сцерии 'HideFromTaskbar.ps1 v1' и 'HideFromTaskbar.ps1 v2' командой:
 
      powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name notepad
 
      'вырубают' не только отображение процесса в 'Панели задач', но и кнопки 'Свернуть' и 'Развернуть' в окне процесса. Разница между результатом их выполнения только в том, что 'HideFromTaskbar.ps1 v1' при выполнении:
 
      powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1
 
    удаляет указанные кнопки из всех открытых окон.  Если выполнить:
 
      powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name notepad -Show
 
      То кнопки в окне опять появляются.
   3. По моему мнению сценарий 'HideFromTaskbar.ps1 v1' тоже пусть будет именно на тот случай, если потребуется (зачем-то) удалить с 'Панели задач' отображение всех процессов.
   4. Открыт файл 'x.txt' c помощью 'notepad.exe' по-умолчанию.  
 
       a) Выполняем последовательно:
 
       powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name notepad -HideWindow
 
       powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name notepad -Show
 
     В результате на 'Панели задач' и в 'Диспетчере устройств' отображаются аж три процесса - 'x', 'Default IME' и 'MSCTFIME UI'. Однако!
 
     b)  Выполняем последовательно:
 
         powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name "x.txt - Блокнот"
 
         В 'Панели задач' скрываются два порцесса - 'x.txt - Блокнот' и 'cmd.exe' с соответствущим сокрытием кнопок в окнах.
 
         powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name "x.txt - Блокнот" -Show
 
        Кнопки и процессы 'возвращаются на место'.
 
     c)  Выполняем последовательно:
 
          powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name "x.txt - Блокнот" -HideWindow
 
          Скрываются два окна и два процесса - 'x.txt - Блокнот' и 'cmd.exe'. Так как окно 'cmd.exe' закрылось, то открываем его вновь и выполняем:
 
           powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name "x.txt - Блокнот" -Show
 
           В результате процесс 'x.txt - Блокнот' и его окно не восстанавливаются.
           Выходит так, что использование '-Name название окна' в сочетании с '-HideWindow' не имеет смысла. А использование '-Name название процесса' в сочетании с '-HideWindow' при последующей 'визуализации' приводит к запуску 'лишних' процессов. Что-то тут не очень 'гладко'. Также использование '-Name название окна' приводит к сокрытию кнопок в окне 'cmd.exe', что тоже неудобно.
       
     
       

Всего записей: 2695 | Зарегистр. 09-01-2010 | Отправлено: 23:28 14-01-2026 | Исправлено: LZAA, 01:07 15-01-2026
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA
1. В какой кодировке сохранили? В шапке про кодировки:

Цитата:
В отличие от батников, кодировка скриптов на PowerShell должна быть 1251 (ANSI). Начиная с версии PowerShell Core 6.0, кодировка по умолчанию UTF8NoBOM.

2. Первой версией лучше не пользоваться без указания правильного -Name.
Окно становится tooltip, без этого никак в этом способе, это же плюс, что бы случайно не свернули.
Есть другие способы, типа Shell API, com interface, но я их ещё меньше знаю, чем этот способ.
3. вот именно, что зачем то. А значит не зачем
 


 
При восстановлении окна (-Show) показываются и служебные окна.
Ничего лучше не придумал как сделать черный список:

Код:
   private static bool IsValidWindow(IntPtr hWnd)
    {
        StringBuilder className = new StringBuilder(256);
        GetClassName(hWnd, className, className.Capacity);
        string cls = className.ToString();
 
        if (cls.Contains("IME") || cls.Contains("MSCTF") ||  
            cls.Contains("GDI") || cls.Contains("Shadow") ||
            cls.Contains("tooltip", StringComparison.OrdinalIgnoreCase))
        {
            return false;
        }
 
        return true;
    }

v3
Параметр -HideWindow изменён на -Window
Для показа информации нужно использовать параметр  -InformationAction Continue

Всего записей: 3839 | Зарегистр. 16-08-2012 | Отправлено: 00:56 15-01-2026
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
   Немного продвигаемся.
 
   1. Кодировка - сделал - работает.
   2.
Код:
powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name notepad -Window
Add-Type : c:\Users\X\AppData\Local\Temp\1eegmwtz\1eegmwtz.0.cs(53) : No overlo
ad for method 'Contains' takes 2 arguments
c:\Users\X\AppData\Local\Temp\1eegmwtz\1eegmwtz.0.cs(52) :             cls.Cont
ains("GDI") || cls.Contains("Shadow") ||
c:\Users\X\AppData\Local\Temp\1eegmwtz\1eegmwtz.0.cs(53) : >>>             cls.
Contains("tooltip", StringComparison.OrdinalIgnoreCase))
c:\Users\X\AppData\Local\Temp\1eegmwtz\1eegmwtz.0.cs(54) :         {
At C:\Users\A\Desktop\HideFromTaskbar.ps1:12 char:9
+         Add-Type @'
+         ~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (Microsoft.Power...peCompilerError:
   AddTypeCompilerError) [Add-Type], Exception
    + FullyQualifiedErrorId : SOURCE_CODE_ERROR,Microsoft.PowerShell.Commands.
   AddTypeCommand
 
Add-Type : Cannot add type. Compilation errors occurred.
At C:\Users\X\Desktop\HideFromTaskbar.ps1:12 char:9
+         Add-Type @'
+         ~~~~~~~~~~~
    + CategoryInfo          : InvalidData: ( [Add-Type], InvalidOperationExc
   eption
    + FullyQualifiedErrorId : COMPILER_ERRORS,Microsoft.PowerShell.Commands.Ad
   dTypeCommand
 
Unable to find type [TaskbarHelper].
At C:\Users\X\Desktop\HideFromTaskbar.ps1:209 char:18
+         $count = [TaskbarHelper]::HideWithWindow($Name)
+                  ~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (TaskbarHelper:TypeName) [], R
   untimeException
    + FullyQualifiedErrorId : TypeNotFound
 

Всего записей: 2695 | Зарегистр. 09-01-2010 | Отправлено: 12:11 15-01-2026 | Исправлено: LZAA, 12:14 15-01-2026
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На методе ITaskbarList (кнопки управления окном не убираются): TaskbarButtonHider
-Name — имя процесса без расширения.
-Show — для показа скрытой кнопки.
 


 
LZAA, а Вы на какой системе? Какой версии PowerShell?
Выкинуть надо скрытие и особенно показ окна, лучше сразу запускать скрытым… зря добавил.
 
Добавлено:
HideFromTaskbar.ps1 v1 — слегка подправленный и переименованный: ToolTipWindow.ps1
-Name — имя процесса (без расширения) или заголовок окна (полностью, раньше искало по частичному совпадению).
-Show — для возврата стиля окна, кнопки на панели задач.
 
в теории может работать на Windows 7, x64.

Всего записей: 3839 | Зарегистр. 16-08-2012 | Отправлено: 18:29 15-01-2026 | Исправлено: iNNOKENTIY21, 18:56 15-01-2026
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA

Цитата:
2.

Словил ошибку на ps v5.1. В добавленном методе IsValidWindow (чёрный список окон) используется слишком новый c#. Я более новым ps 7 пользуюсь.
 
Исправленный метод (заменить метод целиком на этот):

Код:
private static bool IsValidWindow(IntPtr hWnd)
{
    StringBuilder className = new StringBuilder(256);
    GetClassName(hWnd, className, className.Capacity);
    string cls = className.ToString();
 
    if (cls.Contains("IME") || cls.Contains("MSCTF") ||  
        cls.Contains("GDI") || cls.Contains("Shadow") ||
        cls.ToLower().Contains("tooltip"))
    {
        return false;
    }
 
    return true;
}

Всего записей: 3839 | Зарегистр. 16-08-2012 | Отправлено: 21:15 15-01-2026 | Исправлено: iNNOKENTIY21, 21:16 15-01-2026
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
  1. 'Windows' 10 OS.
   2. 'powershell.exe' - версия файла 10.0.14393.0.
       Подозреваю, что это не та версия. Читал, что на 'Windows' 10 используется 'Powershell' v.5.
   3. Сценарий 'TaskbarButtonHider' - Error.
   4. Сценарий 'ToolTipWindow' у меня работает.
   5. Некоторые пожелания для 'ToolTipWindow'.
       a) Можно ли вернуть
       
Цитата:
раньше искало по частичному совпадению

       ?
       b) Можно ли использовать
       
Цитата:
ITaskbarList (кнопки управления окном не убираются)

       ?
    6. Вопрос: у 'ToolTipWindow' нет скрытия окна процесса. Вы считаете, что это не нужно (или сложно) или можно попробовать добавить?
 
 
   
 
Добавлено:
 
   Может быть, что я что-то не так отредактировал. Но сейчас у меня такая 'картина':

Код:
powershell -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name notepad -Window
C:\Users\X\Desktop\HideFromTaskbar.ps1 : A parameter cannot be found that m
atches parameter name 'Window'.
    + CategoryInfo          : InvalidArgument: ( [HideFromTaskbar.ps1],
   ParentContainsErrorRecordException
    + FullyQualifiedErrorId : NamedParameterNotFound,HideFromTaskbar.ps1

Всего записей: 2695 | Зарегистр. 09-01-2010 | Отправлено: 21:40 15-01-2026 | Исправлено: LZAA, 22:00 15-01-2026
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA
2.
    В cmd: powershell.exe /c $PSVersionTable.PSVersion.ToString()
    В powershell: $PSVersionTable.PSVersion.ToString()
 
но уже не актуально.
 
3.
    На ps v5.1 у меня работает. Нужны подробности.
 
5.
  а.
    Так будут ложные срабатывания, Вы на них жаловались, что лишние окна закрывает.
    Если надо несколько окон, перечислите их, в ps: "notepad", "notepad++" | "К:\Скрипту путь\ToolTipWindow.ps1"
  b.
   Это разные скрипты. на основе ToolTip — меняется стиль окна с обычного, на ToolTip, в результате у окна кнопки пропадают и на панели задач, благодаря этому. А на ITaskbarList, просто кнопки убираются.
 
6.
    У обоих нету скрытия / показа окон, теперь. Убрал. Да, сложно и глючно.
 
Добавлено:
LZAA

Цитата:
Может быть, что я что-то не так отредактировал. Но сейчас у меня такая 'картина':

код целиком

Всего записей: 3839 | Зарегистр. 16-08-2012 | Отправлено: 22:29 15-01-2026
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

   Немного систематизирую выпуски.
 
   1. HideFromTaskbar.ps1 v.1 - без скрытия окна процесса.
   2. HideFromTaskbar.ps1 v.2 - со скрытием окна процесса.
   3. HideFromTaskbar.ps1 v.3 - со скрытием окна процесса+чёрный список.
   4. HideFromTaskbar.ps1 v.4 (last) - без скрытия окна процесса и без поиска по частичному совпадению+чёрный список.
   5. TaskbarButtonHider.ps1 - не скрывает кнопки + не работает -Name Название окна.
 
   Проблемы и их решение.
 
   1.
Цитата:
3. Сценарий 'TaskbarButtonHider' - Error.

       Это ложная тревога - сценарий работает.
   2. Чёрный список был придуман для предотвращения появления 'лишних' процессов при использовании 'Show' после 'Window'. Но если скрытие окна процесса не используется, то и 'лишние' процессы при использовании 'Show' не появляются. Поэтому 'Чёрный список' из HideFromTaskbar.ps1 v.4 лучше убрать.
   3.
Цитата:
Так будут ложные срабатывания, Вы на них жаловались, что лишние окна закрывает.  

       Это недоразумение. Про закрытие лишних окон было:

Цитата:
powershell.exe -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name "x.txt - Блокнот"
 
         В 'Панели задач' скрываются два процесса - 'x.txt - Блокнот' и 'cmd.exe' с соответствущим сокрытием кнопок в окнах.

       То есть в 'Панели задач' скрывалось отображение процесса 'cmd'. Но это не было связано с видом названия окна в '-Name'. В HideFromTaskbar.ps1 v.4 такой проблемы нет. Поэтому можно попробовать использовать поиск имени по частичному совпадению.
     4. Так как TaskbarButtonHider.ps1 работает, то  
       
Цитата:
кнопки управления окном не убираются

       можно прописать в HideFromTaskbar.ps1 v.4. Но выбор имени по названию процесса или названию окна должен остаться.
      В конечном итоге с функционалом будет довольно неплохо.
 
 
 
 
   

Всего записей: 2695 | Зарегистр. 09-01-2010 | Отправлено: 03:20 16-01-2026
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть три скрипта.
 
• Скрытие кнопки с панели задач (окно tooltip), имя процесса, заголовок окна (частичное совпадение), скрытие/показ окна, чёрный список, depricated: HideFromTaskbar.ps1
 
• Скрытие кнопки с панели задач (окно tooltip), имя процесса, заголовок окна (полное совпадение): ToolTipWindow.ps1
 
• Скрытие кнопки с панели задач, имя процесса: TaskbarButtonHider.ps1
 
Строка в коде, частичное совпадение: title.IndexOf(name, StringComparison.OrdinalIgnoreCase) >= 0
Строка в коде, полное совпадение: title.Equals(name, StringComparison.OrdinalIgnoreCase)
 
И не забываем про команды самого PowerShell
 
Найти все процессы начинающиеся на note, PowerShell:
Код:
gps 'note*' | % ProcessName | & "К:\скрипту путь\TaskbarButtonHider.ps1"

Найти все процессы, чей заголовок начинается на 'Без' (например: Без имени — Блокнот), PowerShell:
Код:
gps | ? MainWindowTitle -Like 'Без*' | % ProcessName | & "К:\скрипту путь\TaskbarButtonHider.ps1"

Код:
gps | ? MainWindowTitle -Like 'Без*' | % MainWindowTitle | & "К:\скрипту путь\ToolTipWindow.ps1"

Всего записей: 3839 | Зарегистр. 16-08-2012 | Отправлено: 16:19 16-01-2026 | Исправлено: iNNOKENTIY21, 17:13 16-01-2026
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

   Битва за результат.
 
   1. 'HideFromTaskbar.ps1'.
     
       a) Вы правы -  

Цитата:
частичное совпадение: title.IndexOf(name, StringComparison.OrdinalIgnoreCase) >= 0

       приводит к некоторым нежелательным последствиям. Заменил на

Цитата:
полное совпадение: title.Equals(name, StringComparison.OrdinalIgnoreCase)

       b) Нашлась (только) одна проблема:
 
powershell -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name "x.txt - Блокнот" -window
 
powershell -ExecutionPolicy Bypass -File HideFromTaskbar.ps1 -Name "x.txt - Блокнот" -show
 
    Скрытый процесс не восстанавливается вообще. 'Чёрный список' отрабатывает на 200%.
 
  2.
Цитата:
4. Так как TaskbarButtonHider.ps1 работает, то  
       
Цитата:
кнопки управления окном не убираются
 
       можно прописать в HideFromTaskbar.ps1 v.4. Но выбор имени по названию процесса или названию окна должен остаться.  

 
    Вопрос: может ли 'HideFromTaskbar.ps1' не скрывать кнопки? Если 'TaskbarButtonHider.ps1' это делает, то почему 'HideFromTaskbar.ps1' не может?
    Мне интересен вариант с нескрыванием кнопок.

Всего записей: 2695 | Зарегистр. 09-01-2010 | Отправлено: 22:42 16-01-2026
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA
HideFromTaskbar.ps1 — depricated, это значит я не буду его делать, в обозримом будущем по крайней мере, не буду говорить никогда. Я уже писал, что это сложно и глючно.
 
Вместо: HideFromTaskbar.ps1, теперь: ToolTipWindow.ps1  
 

Цитата:
Если 'TaskbarButtonHider.ps1' это делает, то почему 'HideFromTaskbar.ps1' не может?

Потому что разные api используют:
  TaskbarButtonHider — список кнопок панели задач, удаление кнопки из списка.
  HideFromTaskbar и ToolTipWindow — меняют стиль окна на специальный tooltip, такой стиль не имеет кнопки на панели задач и кнопки окна, кроме крестика, как следствие иконка с панели задач скрывается.
 
Нужно скрыть кнопку с панели задач, оставив кнопки управления окном (не менять стиль окна) — TaskbarButtonHider.
 
 
 

Всего записей: 3839 | Зарегистр. 16-08-2012 | Отправлено: 23:08 16-01-2026
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скрипт для удаления(не путайте со скрытием) иконки из системного трея по имени процесса: Remove-TrayIcon.ps1
 
Скрипт для восстановления, ранее удалённой иконки с помощью Remove-TrayIcon.ps1, по имени процесса: Restore-TrayIcon.ps1
 
Удаляются, вроде как, все иконки чей процесс найден. А вот восстанавливаются не все. Нету api для восстановления чужих иконок.
Восстанавливаются иконки, только те, чьи приложения подписываются на сообщение/событие TaskbarCreated и получив сообщение сами восстанавливают иконки, многие современные так и делают, а старые программы, часто нет.
Скрипт для восстановления Restore-TrayIcon.ps1 посылает это сообщение указанному процессу.
 
Это как при перезапуске «Проводника», чьи иконки восстановятся, то и скриптом восстановятся.
 
Иконки хранятся в памяти «Проводника», при закрытии — пропадут. При запуске «Проводник» отправляет сообщение всем окнам TaskbarCreated.
Если в программе сделали подписку на это сообщение и сделали восстановление иконки в трее — иконка восстанавливается, если авторы программы так не сделали, то не восстановится.
 
Пример запуска:

Код:
.\Remove-TrayIcon.ps1 -Name 'PowerToys' -Verbose


Код:
.\Restore-TrayIcon.ps1 -Name 'PowerToys' -Verbose

Параметр -Verbose не обязателен, только для информаци.

----------
RuBoard — Внешний вид

Всего записей: 3839 | Зарегистр. 16-08-2012 | Отправлено: 18:08 17-01-2026 | Исправлено: iNNOKENTIY21, 18:15 17-01-2026
LevT



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

гитхабный профиль с ништяками для Windows-сценаристов:
 
https://github.com/PolarGoose?tab=repositories

Всего записей: 18364 | Зарегистр. 14-10-2001 | Отправлено: 03:45 18-01-2026
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

                          iNNOKENTIY21
 
  OK. Буду использовать 'TaskbarButtonHider'. Можно ли в него добавить возможность '-Name Название окна'?

Всего записей: 2695 | Зарегистр. 09-01-2010 | Отправлено: 14:44 18-01-2026
virjokk



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Цитата:
Restore-TrayIcon.ps1
Естественным продолжением идеи был бы Create-TrayIcon.ps1 - создание иконки в трее для программы, работающей только в комстроке, с менюшкой для простейших действий
 

Всего записей: 538 | Зарегистр. 19-05-2006 | Отправлено: 15:20 18-01-2026
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA

Цитата:
Можно ли в него добавить возможность '-Name Название окна'?

Теоретически да, по полному совпадению заголовка окна, но не сей момент.
 
virjokk

Цитата:
Естественным продолжением идеи был бы Create-TrayIcon.ps1 - создание иконки в трее для программы, работающей только в комстроке, с менюшкой для простейших действий

Ну для скрипта это уж не очень естественная задача скрипт нельзя будет закрывать, что бы иконка не пропала.
Поподробнее, я не знаю, какие простейшие действия, общие для всех, можно было бы сделать.
Почему только для консольных программ (работающих в комстроке)?
Значок то можно показать а вот действия общие для всех. Это хз, возьмусь ли. Если только очень скучно станет

Всего записей: 3839 | Зарегистр. 16-08-2012 | Отправлено: 18:28 18-01-2026
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.B0ard 2000-2026

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru