SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

任意のウィンドウをアクリル化するツールを作ろうとして挫折

ちょっと思い付きで、Windows10向けに任意のWindowをアクリル化するツールを作ろうとしてました。

こんな感じ。
f:id:minami_SC:20180323000452g:plain

Spy++とかのツールみたいに、対象ウィンドウへとドロップ操作を行うと、そのウィンドウをアクリル化します。
ウィンドウハンドルを取得して、そのウィンドウに対してSetWindowCompositionAttribute関数呼べば、イイ感じにできないかな、、、と思い試してみました。

ただ、コマンドプロンプトとかPowerShellのウィンドウなどはアクリル化できるんですが、普通のアプリではうまくいきません。

一般的なウィンドウを持ったアプリでは、アプリ自身が背景色を持っているため、このSetWindowCompositionAttribute関数でウィンドウをアクリル化しても、半透明になりません。
アプリの背景色を書き換える、、と言った方法も考えたのですが、アプリごとに作りが違って対応しきれないです。

ということで、このツールはこの辺まででお蔵入りさせておこうと思います。
作りかけコード類は↓にあげました。 ウィンドウハンドル取得処理とか色々と小技を使ってるので、後々なんかのツールを作る上でも役に立つかな、と。