SwitchToThisWindow

C# Signature:

[DllImport("user32.dll", SetLastError=true)]
static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);

VB Signature:

Declare Sub SwitchToThisWindow Lib "user32.dll" ( _
   hWnd As IntPtr, fAltTab As Boolean)

Sample Code:

static void Main()
    {
        int nIndex;

        Process   procCurrent = Process.GetCurrentProcess();
        Process[] procProgram = Process.GetProcessesByName("Foo");

        /* check if program is already running */
        if(procProgram.Length > 1)
        {
            for(nIndex = 0; nIndex < procProgram.Length; nIndex++)
            {
                /* switch to the other instance and let this one die */
                if(procProgram[nIndex].Id != procCurrent.Id)
                    SwitchToThisWindow(procProgram[nIndex].MainWindowHandle, true);
            }
        }
        else
        {
            /* enable visual style, most commonly associated with the XP operating system */
            Application.EnableVisualStyles();
            Application.DoEvents();
            Application.Run(new frmFoo());
        }
    }

Última actualización