私は他にもたくさんの質問を読んで問題を捜しましたが、私がwinformsを使用している場合はどうすればいいのか理解することができます。私は現在ライブラリを書いていますが、ライブラリの機能の1つはロギングを処理することです。私が実装している機能の1つは、問題をログに書き込む前にページのスクリーンショットを自動的に取得することです。この問題は、スクリーンショットを取るモニターがわからないため、ユーザーがブラウザーを別のモニターに移動しても、私はまだメインモニターのショットを撮っています。どのようにASP.NETプログラムが実行されているモニタを検出するのですか?
public static Bitmap ScreenShot(string saveLocation, string fileName)
{
Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics.FromImage(bitmap).CopyFromScreen(0, 0, 0, 0, bitmap.Size);
string savePath = Path.Combine(Path.GetDirectoryName(saveLocation), "ScreenShots");
if (!Directory.Exists(savePath))
Directory.CreateDirectory(savePath);
bitmap.Save(Path.Combine(savePath, fileName), ImageFormat.Png);
return bitmap;
}
私はScreen.FromControl()
を試してみたが、それはのWinFormsアプリケーションではありませんので、それを見つけることのために、私はどのSystem.Windows.Forms.Controlsを持っていません。
ASP.NETには同等の機能がありますか?または私は明示的にwinformコントロールにキャストできますか?
Screenshot()メソッドはサーバー側で実行されます。クライアントのスクリーンショットを取得するにはどうすればよいですか? – n8wrl
ブラウザがASPサーバーと同じコンピュータで実行されている場合、これはまったく機能しませんか? – antlersoft
あなたが持っているコードを奪い、javascriptに変換する:)。 – JonH