• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Single Instance Application

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

NikSoft

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

Код:
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

Уважаемый 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());
}
}
}
}
В принципе работает. Спасибо!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!