如何在(期间)鼠标单击时发出 Console.Beep?
Posted
技术标签:
【中文标题】如何在(期间)鼠标单击时发出 Console.Beep?【英文标题】:How to Console.Beep while (during) mouse click down? 【发布时间】:2013-03-30 18:10:14 【问题描述】:所以,我正在尝试做一个简单的 GUI,以便在 C# 上使用 Beeps 制作音乐。我一直在尝试,但我不确定是否可以制作控制台。例如,当我按住一个按钮时会发出哔哔声。
正常的 Beep() 方法只播放一个中等频率的短哔声,并且存在过载 Beep(int 频率,int 持续时间)。我想要做的实际上是在我按住按钮的整个过程中播放它,但显然我之前无法说明持续时间。
我认为这是不可能的,但也许有办法?
这也是我在网站上的第一个问题,所以,嘿。
【问题讨论】:
表单还是 WPF?你应该可以使用鼠标按下事件处理程序 表单,问题是我无法设置持续时间,因为我将按住按钮未知的时间。 顺便在我的回答上打勾,谢谢 【参考方案1】:你可以这样做,我只是测试了它并且它可以工作,并且在运行时不会锁定表单。
private void Window_MouseDown_1(object sender, MouseButtonEventArgs e)
// Starts beep on background thread
Thread beepThread = new Thread(new ThreadStart(PlayBeep));
beepThread.IsBackground = true;
beepThread.Start();
private void PlayBeep()
// Play 1000 Hz for max amount of time possible
// So as long as you dont hold the mouse down for 2,147,483,647 milliseconds it should work.
Console.Beep(1000, int.MaxValue);
private void Window_MouseUp_1(object sender, MouseButtonEventArgs e)
//Aborts the beep with a new 1ms beep on mouse up which finishes the task.
Console.Beep(1000, 1);
【讨论】:
哇,酷,没想到要中止一声长哔声。这对我有用,你是什么意思它挂起? 另一个答案也很好,但是哔哔声停止了,而不是持续不断的声音,但这正是我所需要的。非常非常感谢你们。以上是关于如何在(期间)鼠标单击时发出 Console.Beep?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Qt3.0 中发出跨进程信号或发布触摸/鼠标单击事件?