2011-04-26 12 views
0

これが可能です。私はデスクトップのスクリーンショットを撮る場合は、私がするWindow3をしたい デスクトップから特定のウィンドウを条件付きで非表示にする

アクティブ - アクティブでない

  • ウィンドウ2 - - アクティブでない
  • Window3

    • ウィンドウ1:私は、3(3)窓を持っています静かに隠されている。ユーザーがWindow3を使用している場合、プログラムはウィンドウを最小化するような形で隠すことはできません。要するに、デスクトップのスクリーンショットから特定のウィンドウを隠す控えめな方法が必要です。

  • 答えて

    0

    これはかなりの作業がなければ実現できません。印刷画面機能は、デスクトップDCの内容をイメージにコピーし、キーボードに配置するだけです。デスクトップ全体を新しいDCに実際に再描画するわけではありません。したがって、特定のウィンドウを静かに削除する方法はありません。

    印刷画面のボタン(またはそれが何であれ)をフックしてクリップボードにイメージを作成できるとします。次に、あなたのフックは、問題のウィンドウの場所をデスクトップから読み取って、クリップボードにあるビットマップのその領域をクリアすることができます。

    あなたのフックはこれをするでしょう:

    call the normal print screen function 
    load image from clipboard 
    get location and size of Window3 from desktop 
    fill that rectangle in the image with black (or whatever) 
    put the modified image back on the clipboard 
    

    を使用すると、プリントスクリーン機能をフックすることができ、もちろん、と仮定します。私はそれが可能だと思うが、私はそれを試したことはありません。

    +0

    しかし、それは黒い部分ではないと思いました。私は黒い四角形を望んでいないが、全体の画像 –

    +0

    @エイバン:あなたは "背後にある" Window3を表示したいですか?私はあなたが求めていることは、可能な限り、非常に困難であることを発見するつもりだと思います。 –

    +0

    私は解決策を考えましたが、他の簡単な解決策を探しています。これが私のテイクです。すべてのウィンドウとその位置のスクリーンショットを取得します。タスクバーのスクリーンショットを取得します。デスクトップのスクリーンショットを取得します。それらを1つの画像に結合します。不要なウィンドウを除外します。 –

    関連する問題