2011-01-14 9 views
0

これは、私のBT878 TVTunnerでテレビチャンネルを表示するために使用されるアプリケーションのウィンドウです。ウィンドウからテキストを取得する方法

alt text

中央から番号6は、チャネルの数です。 私は窓のハンドルを知っています。 その番号を取得する方法はありますか(好ましくはDelphiプログラミング言語)...?

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

答えて

1

通常のWindowsコントロールのインターフェイスを使用している場合は、子ウィンドウを列挙して、そのテキストを含むウィンドウを見つけることができます。

しかし、これはカスタム描画されたウィンドウのように見えるので、ビットマップにスクラップをかけて処理するのが唯一の可能性があります。

Spyを使用してアプリを検査し、子ウィンドウがあるかどうかを確認できます。

+0

@Davidありがとうございました。 3つのTPanelの子ウィンドウがあります。番号はそれらにはありません。私はスナップショットを取ってそれから数を得ることができると知っていますが、非常に遅い方法+多くのコーディング=おそらくそれは価値がありません... –

+0

@Johnパネルの子供がいない場合、私はあなただと思います唯一のオプションはスクリーンスクレープになります –

+1

チャネル領域で使用されている0〜9の数字の画像をキャプチャし、その画像をアプリケーションのリソースに追加し、実行時にピクセルごとの比較を簡単に実行できます。ちょうどUIを見て、それはあなたが見なければならない画像座標を決定するのはかなり簡単です。それは小さな領域であり、非常に多くの比較をしません。コーディングは思ったほど困難ではないでしょう。画像のスキャンラインを直接見ると、画像の比較が非常に高速になることがあります。 –

0

そのチャネルフィールドがHWND独自のを持っている場合は、それにWM_GETTEXTメッセージを(ウィンドウのHWND Sの親/子関係を確認するためにスパイ++、Winspector、または他の同様のツールを使用して)送信してみてください。それでも問題が解決しない場合は、アプリウィンドウの画像をキャプチャし、チャンネル番号に使用されているピクセルを抽出して解析して、表示されている数値を特定する必要があります。

+0

ありがとう。それはそれ自身のhwndを持っているようには見えませんが、少なくともSpy ++で見ていることです。だから私はメッセージを送ることができません。キャプチャに関しては、Davidに言ったようなものです:非常に遅い方法+多くのコーディング=おそらくそれに値するものではありません... –

関連する問題