调高系统音量
Autocad 2012,VS2010 net 3.5,C# Windows 7有谁知道如何直接从C#访问/更改电脑扬声器音量?我进行了广泛的搜索,找到的所有内容都创建了一个带有滑块的表单。在播放从. dll网络加载到AutoCAD的. mp3文件之前,我想将音量调到最大。此代码适用于实例化的媒体播放器,但不影响计算机的扬声器声音。尝试确定是否有方法获得主卷的句柄, 命名空间口哨。{ 。
。
公开课哨子。
{ 。
公共汽笛()。
{ 。
} 。
。
。
。
public void PlayFile()。
{。
。
系统,音频.音量= 100;//对于100% 。
。
media player MP = new media player();。
mp,打开(新Uri(@ " G:/AutoCAD 2012 support/visual studio 2010/whistle sounds/Samsung _ whistle _ ringtone . MP3 ",UriKind。绝对));。
mp,play();。
。
系统,音频.音量= 14;。
}。
}。
}。
。
命名空间系统。
{。
公共分部类音频。
{。
。
static extern int waveOutGetVolume(int ptr hwo,out uint dw volume);。
。
。
static extern int waveOutSetVolume(int ptr hwo,uint dw volume);。
。
公共静态int卷。
{。
获取。
{。
uint CurrVol = 100。
ushort calc vol =(ushort)(curr vol & 0x 0000 ffff);。
返回CalcVol/// (ushort,max value/100);。
}。
设置。
{ 。
int NewVolume = value。
uint NewVolumeAllChannels =((uint)new volume & 0x 0000 ffff);。
waveOutSetVolume(IntPtr,Zero,NewVolumeAllChannels);。
}。
}。
} 。
} 。
。
**** Hidden Message ***** 是的,我似乎有些进步。我想我得到了主窗口的正确窗口句柄,我不确定我得到的消息是否正确。仍在研究中, 公开课哨。
{ 。
公共汽笛()。
{ 。
} 。
。
。
。
public void PlayFile()。
{ 。
。
IntPtr hWnd = Process,GetProcessesByName(" explorer "),MainWindowHandle。
。
uint msg = 0x319//。
。
UIntPtr VOLUME _ UP =(UIntPtr)0x 319;//0xa 0000;。
IntPtr lParam = IntPtr,零;。
。
IntPtr e = DirectVolume,VolUp.SendMessageW(hWnd,msg,VOLUME_UP,lParam);。
。
系统,windows . messagebox . show(" e的值:"+e . ToString());。
。
if (e.ToInt32() > 0)。
{。
media player MP = new media player();。
mp,打开(新Uri(@ " G:/AutoCAD 2012 support/visual studio 2010/whistle sounds/Samsung _ whistle _ ringtone . MP3 ",UriKind。relative or absolute));。
mp,play();。
}。
}。
}。
}。
命名空间DirectVolume。
{。
公共分部类VolUp。
{ 。
。
。
public static extern int ptr FindWindow(String s class name,String app name);。
。
public static extern int ptr sendmessage w(int ptr hWnd,uint msg,UIntPtr VOLUME_UP,int ptr lParam);。
。
。
//P/Invoke User32,并使用SendMessageW() + VOLUME_UP const或KeyBd_Event() + Keys。VolumeUp枚举。
//const int VOLUME _ UP = 0xa 0000;。
}。
}。
。
。
哈哈的笑...这对同事来说可能会很糟糕
您可能会喜欢这条老线索:
http://forums.augi.com/showthread.php?53823-AutoCAD Speak&p=1136822&viewfull=1#post1136822 哈哈的笑...那是很棒的东西
我的主要目标不是“惹”同事,而是......
有一个人使用了我们都觉得很讨厌的铃声。
所以我想,如果我能让他周围的几台机器偶尔播放同一个铃声,
这可能会帮助他寻找另一种音调来使用。
问题是,当机器开15%-20%时,几乎听不到. mp3的声音,
大多数机器都开15%-20%的声音,因为在那个设置下蜂鸣声会大得多,
所以我需要在播放mp3后调高音量,然后再调低。
根据您的域凭据,可能更简单的方法是简单地使用PowerShell…查看此线程以获取设置扬声器调用,以及其他选项:
http://stackoverflow.com/questions/21355891/change-audio-level-from-powershell
…一名成员甚至编写了自己的PowerShell CmdLet,该CmdLet公开了:
获取DefaultAudioDevice找一个音响设备专家设置DefaultAudioDevice[-Index]
设置DefaultAudioDevice[-Name]
设置DefaultAudioDevice[-InputObject]<AudioDevice>设置DefaultAudioDeviceVolume-音量
获取DefaultAudioDeviceVolume设置DefaultAudioDeviceMute写入DefaultAudioDeviceValue[-StreamValue]
http://www.automatedops.com/projects/windowsaudiodevice-powershell-cmdlet/ 是的,嗯...。
这可能有点超出我的头和权限,不知道。
如果它在这里变慢,我会试一试。
谢谢!
法案
我的主要目标不是“惹”同事,而是......
有一个人使用我们都觉得讨厌的铃声。
所以我想如果我能让他周围的几台机器偶尔播放相同的铃声,
这可能会帮助他寻找另一种音调来使用。
问题是,当一台机器处于15%-20%时,. mp3几乎听不见,
大多数机器都是这样,因为在那个设置下哔哔声要大得多,
所以我需要在播放mp3后将音量调高并再次调低。
直到有人戴上耳机,你给他们暂时失聪。像这样的事情很少有好结果。
这个。
页:
[1]
2