自動テストが失敗したときに使用する簡単な PrintScreen メソッドを作成しました。これは、エラーとその瞬間の画面の印刷画面をメールで送信できるようにするためです。PrintScreen.Save() のコードは次のようになります。
public static class PrintScreen
{
public static string Save(string fileName)
{
var printScreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
var graphics = Graphics.FromImage(printScreen);
graphics.CopyFromScreen(0, 0, 0, 0, printScreen.Size);
if (File.Exists(fileName))
File.Delete(fileName);
printScreen.Save(fileName, ImageFormat.Jpeg);
Thread.Sleep(500);
return fileName;
}
}
コンピューターでテストを実行すると、この方法は正常に機能します。ただし、スケジュールされた自動テストには別のコンピューターを使用します。そして、RDP を介して接続します (自動テストにはデスクトップとの対話が必要です。コンピューターがロックされている間は実行できません)。これが私の問題です。プリントスクリーンが画面を占有しないことがあります。
だから私の質問はこれです:「より良い」方法を書くのに他の方法はありますか、それとも私の現在の方法に何か問題がありますか?. どんな提案でも大歓迎です。
私の調査はこれを結論付けています。
- スクリーンセーバーまたはシミュレートが無効になっています。
- 私のローカルマシンで完全に動作します。
- 私がそれをデバッグしたとき、すべてがうまくいきます。
- リモート コンピュータには 1 つの画面しかありません。
私が行方不明のファイルへの保存からのエラーはありますか?
宜しくお願いしますジョナス