Несмотря на то, что технически , с точки зрения PowerShell, вы передаете специальный c символ Unicode - с кодовой точкой 173
== 0xAD
== SOFT HYPHEN , U+00AD
- .SendKeys()
по-видимому интерпретирует кодовую точку этого символа (базовое число) как Windows код виртуальной клавиши , представляющий клавиша на клавиатуре , а именно клавиша VK_VOLUME_MUTE
(0xAD
) в данном случае.
Список всех кодов виртуальных клавиш здесь , хотя мне неясно, какое их подмножество на самом деле можно использовать с .SendKeys()
.
Резюмируя вопросы из связанных вопросов:
[char] 173
is VK_VOLUME_MUTE
(0xAD
) [char] 174
это VK_VOLUME_DOWN
(0xAE
) [char] 175
это VK_VOLUME_UP
(0xAF
)
В стороне: в Windows PowerShell (но больше не в PowerShell [Core] v6 +) кажется, что требуется дополнительное приведение к [string]
; например (включает / выключает звук):
# Extra [string] cast is *not* necessary anymore in PowerShell [Core], v6+
(New-Object -ComObject Wscript.Shell).SendKeys([string] [char] 173)