SendMessageW()
我正在尝试使用标准方法从控制台应用程序取消静音。但是,我们有自己的应用程序作为 shell 运行,而不是 explorer.exe。当我尝试取消静音时,什么也没有发生;但是一旦我启动资源管理器,它就可以正常工作。是否必须运行资源管理器才能发送消息?
代码:
private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
private const int WM_APPCOMMAND = 0x319;
SendMessageW(Process.GetCurrentProcess().MainWindowHandle, WM_APPCOMMAND, Process.GetCurrentProcess().MainWindowHandle, (IntPtr)APPCOMMAND_VOLUME_MUTE);
返回值为SendMessageW()
0。
如果需要 Explorer,是否有人知道另一种取消静音的方法?
旁注
我刚刚使用vbs尝试过:
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys(chr(&hAD))
并得到了相同的结果。只有在 explorer.exe 正在运行时才会取消静音。