2

さまざまな Web ページのスクリーンショットを定期的にキャプチャする .NET アプリケーションを作成する必要があります。アプリケーションは、無人モードで Windows サービスとして実行する必要があります (ユーザー セッションがない場合、またはワークステーションがロックされている場合)。次のような状況: ( Windows サービスでのプロセスのスクリーンショット)、プロセスではなく Web ページでこれを行う必要があります。

PrintWindow API を使用しようとすると、非アクティブまたは非表示のウィンドウをキャプチャできますが、ワークステーションがロックされていると黒い画像が表示されます。このアプローチ (www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic34231.aspx) を試しましたが、うまくいきません。

WebShot (www.websitescreenshots.com) のようなアプリがあり、ワークステーションがロックされている場合やサービスとして実行されている場合でも、Web ページのスクリーンショットをキャプチャできるため、これが可能であることはわかっています。

私は何が欠けていますか?これを機能させるにはどうすればよいですか?

ありがとうございました。

編集:私のアプローチの詳細 - プログラムで作成された .NET WebBrowser コントロールを使用しています。ブラウザー コントロールに Web ページを読み込み、PrintWindow API を使用してそこから画像をキャプチャします。これは、コントロールが表示されているかどうかに関係なく実行できますが、ワークステーションがロックされているとつまずきます。

4

2 に答える 2

1

BrowserShots(http://browsershots.org/ http://browsershots.org/)は、あなたと同様の目標を持っているように見えるオープンソースアプリケーションです-彼らはすでにあなたの問題を解決しているかもしれません。残念ながら、彼らのサイトは現在少し壊れているようです。

于 2009-11-11T17:27:36.017 に答える
0

Web サイトをレンダリングするだけで、さまざまなプログラムのスクリーンショットを取得していないため、WebBrowser.DrawToBitmap を試すことができます。

そうすれば、ログイン状態を気にする必要がなくなります

http://thepursuitofalife.com/the-missing-drawtobitmap-function-in-the-net-webbrowser-class/

于 2009-11-11T17:50:10.360 に答える