Запустите партию молча с помощью горячей клавиши (проблема с разрешениями?)

Я пытаюсь управлять громкостью Spotify из игры, не переключая окна. Для этого я сделал следующее:

A. Нашел nircmd.exe от NirSoft, который может управлять отдельными программными томами в Windows B. Написал пакет для выполнения команды C. Написал этот .vbs-скрипт для тихого подключения к пакету:

Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "Spotify App Volume Up.bat" & Chr(34), 0
Set WshShell = Nothing 

^ Использование этого фрагмента .vbs для выполнения бесшумного запуска очень популярно. Это работает, когда я сам нажимаю на файл .vbs. У меня проблема в том, что мне нужен способ выполнить это из другой программы. Когда я пытаюсь выполнить из любой программы с горячими клавишами или чего-то вроде AutoHotKey, я получаю эту ошибку:

Компонент ActiveX не может создать объект «WScript.Shell». Код: 800a01ad

Я попытался установить безопасность всех задействованных файлов для всех, полный контроль. Это не помогло. Мне кажется, что Windows пытается защитить меня, не давая скриптам инициализироваться другими программами. Какие-либо предложения? В противном случае кто-нибудь знает, как выполнить это молча с помощью другого метода?

ИЗМЕНИТЬ:

Команда запуска AutoHotKey сделает следующее: run "mybat.bat",, Hide Однако кто-нибудь знает, как обойти это поведение с помощью .vbs? Я любопытный.


person user3692356    schedule 10.12.2015    source источник
comment
Что именно вы подразумеваете под how to get around this behavior with .vbs?   -  person Forivin    schedule 11.12.2015


Ответы (1)


Я считаю, что все ваши скрипты, vbscript и ваш командный файл потенциально могут быть написаны изначально на Ahk, но вот как я запустил бы ваш скрипт vb.

x:: ; press x
sc := ComObjCreate("ScriptControl")

sc.Language := "VBScript"

script =
(
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "Spotify App Volume Up.bat" & Chr(34), 0
Set WshShell = Nothing 
)

sc.ExecuteStatement(script)

return
person errorseven    schedule 11.12.2015