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()); } }
static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);
{
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());
}
}
[DllImport("USER32.DLL")]
public static extern void SwitchToThisWindow(IntPtr hwnd, Boolean fAltTab);如果写成.....(..., bool fAltTab)就不成
这有什么不同,晕!