Member 13679701 Ответов: 2

Как вывести на передний план


Я работаю над командиром для игр, чтобы сделать команды проще
но я не могу понять, как вывести игру на передний план, не перезапустив ее
Я использую c#

Что я уже пробовал:

процесс = процесс.Старт(@"D:\Games\SteamLibary\steamapps\common\ARK\ShooterGame\Binaries\Win64\Shootergame.exe");
ручка = процесс.MainWindowHandle;
SetForegroundWindow(ручка);

2 Ответов

Рейтинг:
1

Leo Chapiro

Вам нужно импортировать эту функцию следующим образом:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

process = Process.Start(@"D:\Games\SteamLibary\steamapps\common\ARK\ShooterGame\Binaries\Win64\Shootergame.exe");
handle = process.MainWindowHandle;
SetForegroundWindow(handle); 

[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);


Member 13679701

Нет мне нужно сделать это не запуская его программа должна быть открыта полностью

Рейтинг:
1

Richard Deeming

Воспользуйся Процесс.GetProcessesByName[^] для получения списка запущенных процессов с указанным именем.

Process theProcess;
Process[] processes = Process.GetProcessesByName("shootergame");
if (processes.Length == 0)
{
    // The game is not running:
    theProcess = Process.Start(@"...");
}
else
{
    theProcess = processes[0];
}

handle = theProcess.MainWindowHandle;
SetForegroundWindow(handle);