私のプログラムは win フォーム (c#) です。外部プログラムを開き、そのメイン ウィンドウのプリントスクリーンを実行して、閉じます。Process.Start() を使用すると、プログラムを開くことができますが、すべてのフォーカスがプログラムに集中し、コードが停止します。自分でフォームを閉じたときにのみフォームが続行されますが、スクリーンショットには遅すぎます。では、コードを強制的に実行し続けるにはどうすればよいでしょうか?
public void Runttk(string maromnum)
{
Process runttk = new Process();
runttk.StartInfo.UseShellExecute = true;
runttk.StartInfo.FileName = @"C:\\program.exe";
runttk.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
runttk.Start();
this.Focus();
try
{
if (runttk.WaitForInputIdle()==true)
{
PringJpg(maromnum);
Killttk();
}
}
catch (Exception e)
{
}
}
ありがとうございました
更新: 最終的に私は Thread.Sleep(3000) を使用しました。残酷ですが、トリックを行います。外部プログラムをアップロードしたフィナーレと私のコードの間の同期が十分に明確ではなかったため、backgroundworker を使用しませんでした。