С# SetForegroundWindow не работаетC#

Место общения программистов C#
Ответить
Anonymous
 С# SetForegroundWindow не работает

Сообщение Anonymous »

Я ограничил свое приложение C# Windows, чтобы разрешить запуск только одного экземпляра одновременно, используя этот вопрос. Как заставить приложение C# .net запускать только один экземпляр в Windows?

Он работает хорошо и не позволяет одновременно запускать более одного экземпляра приложения.

Проблема в том, что если пользователь попытается открыть второй экземпляр приложения, я хочу, чтобы текущий активный пришел в фронт.

Вопрос, над которым я работал, похоже, касается этой проблемы, но у меня он не работает.

Я думаю, это потому, что мое приложение не соответствует критериям, позволяющим использовать этот метод:SetForegroundWindow
на работу.

Мой вопрос: как мне этого добиться? Мой код ниже:

using System ;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace RTRFIDListener_Client
{
static class Program
{
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);

///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
bool createdNew = true;

using (Mutex mutex = new Mutex(true, "RTRFIDListener_Client", out createdNew))
{
if (createdNew)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frm_Main());
}
else
{
Process current = Process.GetCurrentProcess();
foreach (Process process in Process.GetProcessesByName(current.ProcessName))
{
if (process.Id != current.Id)
{
SetForegroundWindow(process.MainWindowHandle);
break;
}
}
}
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/292 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»