Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I get Visual Studio to beep at me if a build succeeds?

Often, I need to recompile and it takes a minute or two, so I tend to switch to a web browser to kill that time. Sometimes I forget to look back and the build succeeded a few minutes before I noticed.

Is it possible to somehow get Visual Studio (just UI version, not command line) to beep at me if the build (for the project or solution) completes successfully without warning?

Also helpful would be a beep when the first breakpoint is hit while debugging, since sometimes I have to wait a minute or two for this to happen as well.

Do I need to write a macro for it, perhaps? Are there hidden settings somewhere?

like image 335
Mike Atlas Avatar asked Sep 02 '10 16:09

Mike Atlas


People also ask

How do you make a beeping sound in C#?

Given a normal Console in C#, the task is to play Beep sound through the Console. Approach: This can be achieved with the help of Beep() method of Console Class in System package of C#. The Beep() method of Console Class is used to play a Beep sound through the Console speaker. Syntax: public static void Beep ();

How do I get the welcome screen in Visual Studio?

Go to the 'Help' tab in the top menu and then select 'Welcome'. Look at the bottom of the page and click the checkbox below that says 'Show welcome page on startup'.

What does console beep do?

The Beep(int, int) method of Console Class is used to play a Beep sound through the Console speaker at the specified frequency for a specified duration. These frequency and duration are specified as parameters to this method. By default, the beep plays at a frequency of 800 hertz for a duration of 200 milliseconds.


3 Answers

I'm seeing in my System Sounds a category called "Microsoft Visual Studio Macros" that contains three sounds: Build Canceled, Build Failed, and Build Succeeded. I'm guessing they got there from the sample macros that get installed by default. Might try hitting Alt-F8 in VS and poking around in the macros.

My favorite solution is this one though: VSBuildStatus. If you've got Windows 7, it will show the build progress in the taskbar (like Explorer does with file copying). Turns red on a build failure. Must-have.

http://visualstudiogallery.msdn.microsoft.com/en-us/2A2293B4-1808-44AA-B030-661F6803D8A1

like image 120
scobi Avatar answered Nov 01 '22 06:11

scobi


Here is a macro found at: http://elegantdevelopment.blogspot.com/2009/09/visual-studio-2008-macro-fun.html

Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
   If (Not failed) Then
      ' System.Windows.Forms.MessageBox.Show("Build is complete!")
      Beep()
      Threading.Thread.Sleep(250)
      Beep()
   End If
End Sub

Good luck!

like image 32
Kevin Crowell Avatar answered Nov 01 '22 06:11

Kevin Crowell


  1. Open Up a Macro Explorer (Alt + F8).
  2. Create a new Macro Project if you don't have one already.
  3. Open up Microsoft Visual Studio Macros (Alt + F11)
  4. If you don't already have a macro titled EnvironmentEvents create it.
  5. Make sure the macro contains the following code (pay attention to the snippet at the bottom!)

The code:

Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics

Public Module EnvironmentEvents

    #Region "Automatically generated code, do not modify"

    'Automatically generated code, do not modify
    'Event Sources Begin
    <System.ContextStaticAttribute()> Public WithEvents DTEEvents As EnvDTE.DTEEvents
    <System.ContextStaticAttribute()> Public WithEvents DocumentEvents As EnvDTE.DocumentEvents
    <System.ContextStaticAttribute()> Public WithEvents WindowEvents As EnvDTE.WindowEvents
    <System.ContextStaticAttribute()> Public WithEvents TaskListEvents As EnvDTE.TaskListEvents
    <System.ContextStaticAttribute()> Public WithEvents FindEvents As EnvDTE.FindEvents
    <System.ContextStaticAttribute()> Public WithEvents OutputWindowEvents As EnvDTE.OutputWindowEvents
    <System.ContextStaticAttribute()> Public WithEvents SelectionEvents As EnvDTE.SelectionEvents
    <System.ContextStaticAttribute()> Public WithEvents BuildEvents As EnvDTE.BuildEvents
    <System.ContextStaticAttribute()> Public WithEvents SolutionEvents As EnvDTE.SolutionEvents
    <System.ContextStaticAttribute()> Public WithEvents SolutionItemsEvents As EnvDTE.ProjectItemsEvents
    <System.ContextStaticAttribute()> Public WithEvents MiscFilesEvents As EnvDTE.ProjectItemsEvents
    <System.ContextStaticAttribute()> Public WithEvents DebuggerEvents As EnvDTE.DebuggerEvents
    <System.ContextStaticAttribute()> Public WithEvents ProjectsEvents As EnvDTE.ProjectsEvents
    <System.ContextStaticAttribute()> Public WithEvents TextDocumentKeyPressEvents As EnvDTE80.TextDocumentKeyPressEvents
    <System.ContextStaticAttribute()> Public WithEvents CodeModelEvents As EnvDTE80.CodeModelEvents
    <System.ContextStaticAttribute()> Public WithEvents DebuggerProcessEvents As EnvDTE80.DebuggerProcessEvents
    <System.ContextStaticAttribute()> Public WithEvents DebuggerExpressionEvaluationEvents As EnvDTE80.DebuggerExpressionEvaluationEvents
    'Event Sources End
    'End of automatically generated code

    #End Region


    Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
        'Beep to notify that we finished building
        Console.Beep()
        Threading.Thread.Sleep(250)
        'Beep again just for fun
        Console.Beep()
        ' Alternatively, or in Addition to the motherboard beeps, you can 
        ' play a sound from your hard drive via your audio card like so:
        My.Computer.Audio.Play("C:\WINDOWS\Media\Windows XP Startup.wav", _
            AudioPlayMode.Background)
    End Sub


End Module

FYI: I've found that Windows 7's Console.Beep() is not a motherboard beep. Also, I quite like "C:\Windows\Media\Windows Shutdown.wav" for the audio clip when on Windows 7.

like image 44
David Murdoch Avatar answered Nov 01 '22 05:11

David Murdoch