2009-08-04 23 views
2

ビデオを(カスタム形式の)画面共有形式に記録するために画面からピクセルをスクラップするWindowsアプリケーションがあります。問題は、ソフトウェアカーソルを使用するマシンでは、Case of the Disappearing Cursorで説明されているように、カーソルが点滅するように、SRCCOPY | CAPTUREBLIT(画面にレイヤードウィンドウも表示されるように)で画面からブリッジすることです。bitbltでカーソルが消えます

シングルスクリーンショットでは問題ありませんが、連続して複数のスクリーンショットを撮ると、カーソルがすばやく点滅し、時には完全に消えるように見えます。

カーソルが点滅することはないが、フレームデータに直接アクセスする方法がないように見えるため、Windows MediaエンコーダSDK(codeprojectの記事を参照してください)を使用して調べました。残念なことに、リアルタイムエンコーディングとカスタムフォーマットの両方が両方の要件であり、Windows Media Encoderはこの目的では使用できません。

私もDirectXの方法を試しました(同じ記事で説明します、以下を参照)。これは同じ問題を抱えているようです。

他に誰かがこの問題に遭遇しましたか?その周りに道がなければならない - 多くの商用画面共有プログラムにはそのような問題はない。

記事:www.codeproject.com/KB/dialog/screencap.aspx

答えて

0

何ミラードライバを使用してはどうですか?

0

あなたが正しいです、鏡は確かに動作します。しかし、現時点では、管理者権限を持たないユーザーの下にインストールする場合のセキュリティとアクセス権の問題から、このアプローチから離脱しようとしています。私が間違っている場合は私を修正しますが、私はそのような権利なしにドライバをインストールする方法はないと思います。それ以外にも、それは不必要に複雑になると思われます:はこれを行うためのより単純な/より侵略的な方法でなければなりません。 (これは私の元の質問でこれを言及していたはずです)

+0

もちろん、管理者権限のないドライバをインストールする方法はありません。 SeLoadDriver権限を持っている場合は、ユーザーをAdministratorsグループに追加するドライバをロードすることができます。 – SamB

0

私がフリッカーを克服しなければならないと思ったのは、「手動で」自分のマウスのコピーを描き、BitBlt呼び出しを行うか、ちょうどSRCCOPYは、可視ウィンドウの上に透明なウィンドウを手動でキャプチャします。私は商業的なものがそれを(またはWindowsのメディアエンコーダは明らかに)行う方法を知らない。

REF:http://us.generation-nt.com/xp-bitblt-captureblt-option-help-26970632.html

+0

またはおそらくエアロを使用 – rogerdpack

0

ちょうど、別々の画面とカーソルをコピーし、それらをオーバーレイ。

0

Windows Vistaでは拡大APIを使用できます。 私はWindows XPで良いアイデアを見つけることができません。

+0

これはコメントでなければなりません –

関連する問題