少し挑戦があります。
以前のバージョンの製品では、エラーメッセージウィンドウ(最後の手段、未処理の例外)があり、例外メッセージ、タイプ、スタックトレース、およびさまざまな情報が表示されていました。
このウィンドウは、ユーザーが単にprintscreenキャプチャを実行し、スクリーンショットを電子メールで送信した場合、問題の診断を開始するために必要なほぼすべてのものが揃っているという点で、printscreenに適していました。
ただし、このフォームは通常のユーザーには技術的すぎて「怖い」と見なされたため、よりわかりやすい形式にトーンダウンされ、エラーメッセージは表示されましたが、スタックトレースや、私がまだ残していたより厄介な詳細は表示されませんでした。取得するのが好きです。さらに、フォームには、以前に持っていたすべてのものと、基本的に必要なすべてのものを含む他の多くの技術的な詳細を含むテキストファイルを電子メールで送信する機能が追加されました。
ただし、ユーザーは引き続きPrintScreenを使用してフォームのコンテンツをキャプチャし、メールで返信します。これは、情報量が最適ではないことを意味します。
だから私は疑問に思いました。フォームと同じサイズのビットマップを必要なものすべてで事前にレンダリングし、PrintScreenがヒットしたことを検出し、キャプチャする前にフォームの内容をビットマップとすばやく交換してから、後で元に戻すことはできますか?
そして、あなたが「ただユーザーを教育する」と言う前に、はい、それはうまくいきません。これらはアウトユーザーではなく、お客様の場所のユーザーであるため、それほど賢明にするように指示することはできません。
または、これを除いて、PrintScreenを検出し、Windowsに無視するように指示し、代わりに、前述の事前にレンダリングされたビットマップをクリップボードにダンプして、電子メールに配置できるようにする方法はありますか?
コードは、重要な場合は.NET 3.5のC#3.0ですが、何かを調べたり探したりするためのポインターで十分です。
エラー報告ウィンドウには、次の機能があります。
- エラーが発生したときに撮影されたスクリーンショットを表示します(エラーダイアログが表示される前の、その時点で開いていたプログラムのすべてのウィンドウが含まれています)
- 考えられるすべての厄介な詳細を含むテキストファイルを表示します(ただし、機密性の高いものは含まれません)
- 上記の2つのファイルをディスクに保存し、後でユーザーがメールなどに添付できるようにします。
- 新しいサポートケースを開くか、既存のサポートケース番号を入力して情報を追加することにより、上記の2つのファイルをメールで送信します。
- 問題を無視して、問題が解決することを願っています(アプリに戻る)
- アプリケーションを終了します(最後の手段)
一部のユーザーからはまだスクリーンショットを取得しています。すべてではありませんが、私の質問は基本的に、PrintScreenボタンをまだ使用しているユーザーのためにもう少し役立つようにする方法です。