これは私のコードです:
using (Process game = Process.Start(new ProcessStartInfo() {
FileName="DatabaseCheck.exe",
RedirectStandardOutput = true,
CreateNoWindow = true,
UseShellExecute = false }))
{
lblLoad.Text = "Loading";
int Switch = 0;
while (game.MainWindowHandle == IntPtr.Zero)
{
Switch++;
if (Switch % 1000 == 0)
{
lblLoad.Text += ".";
if (lblLoad.Text.Contains("...."))
lblLoad.Text = "Loading.";
lblLoad.Update();
game.Refresh();
}
}
問題は、game.MainWindowHandle が常に IntPtr.Zero であることです。ゲームがランチャーによって開始されたことを確認するには、実行されたプロセスの IntPtr を見つける必要があるため、ゲームに IntPtr を送信させ、問題がなければランチャーが応答するようにしました。しかし、そのためには、実行されたプロセスの IntPtr を具体的に知る必要があります。
前もって感謝します!