C#模拟VolumeMute按键得到如下代码模拟volumemute按键:[DllImport("coredll.dll",SetLastError=true)]staticexternvoidkeybd_event(bytebVk,bytebScan,intdwFlags,intdwExtraInfo);字节VK_VOLUME_MUTE=0xAD;constintKEYEVENTF_KEYUP=0x2;constintKEYEVENTF_KEYDOWN=0x0;privatevoidbutton1_Click(objectsender,EventArgse){keybd_event(VK_VOLUME_MUTE,0,KEYEVENTF_KEYDOWN,0);keybd_event(VK_VOLUME_MUTE,0,KEYEVENTF_KEYUP,0);这段代码不起作用。我知道还有另一种通过SendMessageW静音/取消静音的方法,但我不想使用SendMessageW,因为我使用KeyState来检测我是否需要静音或取消静音(如果用户想要取消静音并且它已经取消静音那么我不不需要切换-这就是为什么我需要模拟VolumeMute按键)谢谢。它不起作用的第一个原因是因为您使用了错误的DLL,coredll.dll是WindowsMobile。在桌面版Windows上,keybd_event由user32.dll导出。它不起作用的第二个原因是发送击键不够好。不太清楚为什么,这似乎是在通用输入处理程序之前被拦截的。可以使用WM_APPCOMMAND,它支持一系列命令,APPCOMMAND_VOLUME_MUTE就是其中之一。它充当开关,打开和关闭静音。让你的代码看起来像这样:privatevoidbutton1_Click(objectsender,EventArgse){varmsg=newMessage();msg.HWnd=this.Handle;msg.Msg=0x319;//WM_APPCOMMANDmsg.WParam=this.Handle;msg.LParam=(IntPtr)0x80000;//APPCOMMAND_VOLUME_MUTEthis.DefWndProc(refmsg);这段代码需要在窗体的实例方法中,注意它是如何使用DefWndProc()的。如果你想把它放在别处,你需要回退到SendMessage()。实际的窗口句柄并不重要,只要它是有效的顶级句柄即可。以上就是《C#学习教程:C#模拟音量静音》的全部内容分享。如果对你有用,需要进一步了解《C#学习教程》,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
