Ich habe eine Windows Forms -App, die am Ende eine SteamApp startet. Ich möchte, dass meine App wartet, bis das Spiel gefunden wird und wenn es geschlossen ist, um ein paar weitere Sachen zu machen.
void LaunchViaSteam()
{
try
{
Process.Start(new ProcessStartInfo
{
FileName = "steam://rungameid/1086940",
UseShellExecute = true,
});
}
catch (Exception ex)
{
MessageBox.Show("An error occurred: " + ex.Message);
}
}
< /code>
Ich habe schon so etwas ausprobiert: < /p>
private async void buttonStart_Click(object sender, EventArgs e)
{
Process process = new Process();
process.StartInfo.FileName = SteamDetection.GetSteamDirectory() + "\\steam.exe";
process.StartInfo.Arguments = "steam://rungameid/xxxxxx";
process.Start();
await process.WaitForExitAsync();
}
< /code>
Aber es funktioniert "nicht wie erwartet". Manchmal wartet es einfach nicht oder es wartet darauf, dass Steam schließt. async Task WaitForBG3()
{
textBox1.Text = "Searching";
await Task.Run(async () =>
{
bool found = false;
while (!found)
{
Process[] ProcessList = Process.GetProcesses();
foreach (Process p in ProcessList)
{
if (p.ProcessName.Contains("bg3"))
{
found = true;
}
}
}
});
textBox1.Text = "found and wait for Exit";
await Task.Run(async () =>
{
bool running = false;
while (!running)
{
Process[] ProcessList = Process.GetProcesses();
foreach (Process p in ProcessList)
{
if (p.ProcessName.Contains("bg3"))
{
running = false;
}
else
{
running = true;
}
}
}
});
textBox1.Text = "Exit";
}
< /code>
Wenn ich es mit Notepad teste, funktioniert es so, wie es sollte, aber wenn ich den Spielnamen verwende, löst er den sonstigen Teil der 2. Aufgabe installisch aus. Auch wenn das Spiel bei der Aufruf von < /p>
läuft, läuft AllReady läuft private async void buttonStart_Click(object sender, EventArgs e)
{
//LaunchViaSteam();
await WaitForBG3();
//do some mor stuff
}
Ich habe eine Windows Forms -App, die am Ende eine SteamApp startet. Ich möchte, dass meine App wartet, bis das Spiel gefunden wird und wenn es geschlossen ist, um ein paar weitere Sachen zu machen.[code]void LaunchViaSteam() { try { Process.Start(new ProcessStartInfo { FileName = "steam://rungameid/1086940", UseShellExecute = true, }); } catch (Exception ex) { MessageBox.Show("An error occurred: " + ex.Message); } } < /code> Ich habe schon so etwas ausprobiert: < /p> private async void buttonStart_Click(object sender, EventArgs e) { Process process = new Process(); process.StartInfo.FileName = SteamDetection.GetSteamDirectory() + "\\steam.exe"; process.StartInfo.Arguments = "steam://rungameid/xxxxxx"; process.Start(); await process.WaitForExitAsync(); } < /code> Aber es funktioniert "nicht wie erwartet". Manchmal wartet es einfach nicht oder es wartet darauf, dass Steam schließt. async Task WaitForBG3() { textBox1.Text = "Searching"; await Task.Run(async () => {
bool found = false; while (!found) { Process[] ProcessList = Process.GetProcesses(); foreach (Process p in ProcessList) { if (p.ProcessName.Contains("bg3")) { found = true; } } } }); textBox1.Text = "found and wait for Exit"; await Task.Run(async () => { bool running = false; while (!running) { Process[] ProcessList = Process.GetProcesses(); foreach (Process p in ProcessList) { if (p.ProcessName.Contains("bg3")) { running = false; } else { running = true; } } } }); textBox1.Text = "Exit"; } < /code> Wenn ich es mit Notepad teste, funktioniert es so, wie es sollte, aber wenn ich den Spielnamen verwende, löst er den sonstigen Teil der 2. Aufgabe installisch aus. Auch wenn das Spiel bei der Aufruf von < /p> läuft, läuft AllReady läuft private async void buttonStart_Click(object sender, EventArgs e) { //LaunchViaSteam(); await WaitForBG3(); //do some mor stuff } [/code] Irgendeine Idee, warum?
Zuerst bin ich am Anfang des Lernens C#. Seien Sie also bitte sanft :)
Ich habe eine kleine Windows -Formulations -App, die am Ende einen SteamApp ist. Ich möchte, dass meine App wartet, bis das...
Ich schreibe eine einfache Bibliothek, die in eine Azure -Speicherkonto -Tabelle schreibt. Die erste Methode ruft nur die zweite Methode auf, aber ich mache mir Sorgen, dass sie eine Aufgabe und dann...
Beim Bau eines JUNIT -Tests mit TestContainers hängt mein Test bis zur Zeitüberschreitung nach der Meldung Warten auf die Datenbankverbindung, die bei den Containerprotokollen verfügbar ist , und die...