Single Instance Application

  • Автор темы NikSoft
  • Дата начала
N

NikSoft

#1
Следующий код решает задачу

Код:
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace Singleton
{
static class Program
{
const int showMinimized = 2;
const int showRestore  = 9;

[DllImport("User32.dll")]
public static extern int ShowWindowAsync(IntPtr hWnd, int swCommand);

[STAThread]
static void Main()
{
Process[] numberOfProcesses = Process.GetProcessesByName("Singleton");

if (numberOfProcesses.Length == 1)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
else
{
ShowWindowAsync(numberOfProcesses[0].MainWindowHandle, showMinimized);
ShowWindowAsync(numberOfProcesses[0].MainWindowHandle, showRestore);
}
}
}
}
Здесь "Singleton" имя приложения
 
E

Electro

#2
Уважаемый NikSoft большое спасибо, за код.
буду должен
Я сделал так :
Код:
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace WinData
{
static class Program
{
/// </summary>
[STAThread]
static void Main()
{
//процесс -> namespace
Process[] numberOfProcesses = Process.GetProcessesByName("WinData");
if (numberOfProcesses.Length <= 1)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
}
В принципе работает. Спасибо!