Запуск игры из стима
Цитата: Удаленный пользователь от 20.09.2020, 16:00Всем привет, нужна помощь. У меня старенький монитор 16:10, в стиме есть игра Fall Guys, и она не поддерживает такое разрешение, но я нашел программу, которая позволяет растянуть окно. Вот теперь хочу написать лаунчер, который сначала запускает игру, а потом программу(только в таком порядке работает), но не знаю как грамотно сделать, чтобы лаунчер дождался полного запуска игры.
Всем привет, нужна помощь. У меня старенький монитор 16:10, в стиме есть игра Fall Guys, и она не поддерживает такое разрешение, но я нашел программу, которая позволяет растянуть окно. Вот теперь хочу написать лаунчер, который сначала запускает игру, а потом программу(только в таком порядке работает), но не знаю как грамотно сделать, чтобы лаунчер дождался полного запуска игры.
Цитата: Удаленный пользователь от 20.09.2020, 16:12Добрый день.
Что имеется ввиду "полного запуска"? Когда появится такой процесс или когда игра полностью загрузится?
Если пока загрузится, то можно банальным Thread.Sleep(<время в миллисекундах>) "подождать" какое-то время (примерно прикинуть через сколько секунд после запуска игры нужно запустить программу) и потом запустить программу.
Добрый день.
Что имеется ввиду "полного запуска"? Когда появится такой процесс или когда игра полностью загрузится?
Если пока загрузится, то можно банальным Thread.Sleep(<время в миллисекундах>) "подождать" какое-то время (примерно прикинуть через сколько секунд после запуска игры нужно запустить программу) и потом запустить программу.
Цитата: Удаленный пользователь от 20.09.2020, 16:15Цитата: nofate от 20.09.2020, 16:12привет. а пробовали пофиксить по этому мануалу
Привет, им и пользовался, но недавно завезли античит, который с модифицированным файлом не пускает.
Цитата: nofate от 20.09.2020, 16:12привет. а пробовали пофиксить по этому мануалу
Привет, им и пользовался, но недавно завезли античит, который с модифицированным файлом не пускает.
Цитата: Удаленный пользователь от 20.09.2020, 16:57Цитата: Adler от 20.09.2020, 16:12Добрый день.
Что имеется ввиду "полного запуска"? Когда появится такой процесс или когда игра полностью загрузится?
Если пока загрузится, то можно банальным Thread.Sleep(<время в миллисекундах>) "подождать" какое-то время (примерно прикинуть через сколько секунд после запуска игры нужно запустить программу) и потом запустить программу.Спасибо, а есть ли разница между Thread.Sleep и await Task.Delay?
Получилось как-то так:
[spoiler]public Form1() { InitializeComponent(); Cmd("start \"\" \"D:\\Games\\Steam\\steam.exe\" steam://rungameid/1097150"); Check1: if (Process.GetProcessesByName("COM Surrogate").Length == 0 && Process.GetProcessesByName("EasyAntiCheat Launcher").Length == 0 && Process.GetProcessesByName("FallGuys_client").Length > 0 && Process.GetProcessesByName("UnityCrashHandler64").Length > 0) { Thread.Sleep(6000); Cmd("start \"\" \"D:\\soft\\Borderless Gaming\\BorderlessGaming.exe\""); Close(); } else { Thread.Sleep(2000); goto Check1; } } void Cmd (string line) { Process.Start(new ProcessStartInfo { FileName = "cmd", Arguments = $"/c {line}", WindowStyle = ProcessWindowStyle.Hidden }); }[/spoiler]
Цитата: Adler от 20.09.2020, 16:12Добрый день.
Что имеется ввиду "полного запуска"? Когда появится такой процесс или когда игра полностью загрузится?
Если пока загрузится, то можно банальным Thread.Sleep(<время в миллисекундах>) "подождать" какое-то время (примерно прикинуть через сколько секунд после запуска игры нужно запустить программу) и потом запустить программу.
Спасибо, а есть ли разница между Thread.Sleep и await Task.Delay?
Получилось как-то так:
public Form1()
{
InitializeComponent();
Cmd("start \"\" \"D:\\Games\\Steam\\steam.exe\" steam://rungameid/1097150");
Check1:
if (Process.GetProcessesByName("COM Surrogate").Length == 0 && Process.GetProcessesByName("EasyAntiCheat Launcher").Length == 0 && Process.GetProcessesByName("FallGuys_client").Length > 0 && Process.GetProcessesByName("UnityCrashHandler64").Length > 0)
{
Thread.Sleep(6000);
Cmd("start \"\" \"D:\\soft\\Borderless Gaming\\BorderlessGaming.exe\"");
Close();
}
else
{
Thread.Sleep(2000);
goto Check1;
}
}
void Cmd (string line)
{
Process.Start(new ProcessStartInfo { FileName = "cmd", Arguments = $"/c {line}", WindowStyle = ProcessWindowStyle.Hidden });
}