88797
タイトルにあるように、他アプリを拡張するプログラム(アドイン?)を作成したいと考えています。  
やりたいことの実現例(※)として、以下があります。  
このようなプログラムを作成する際、どのようにすればよいのでしょうか。  
検索に用いるキーワードや、参考になるサイト等ございましたら教えてください。

※  
実現したいこと：エクスプローラーを利用する際、ブラウザのようにタブ化したい。  
実現されている例：QTTabBar(<http://qttabbar-ja.wikidot.com/>)
CC BY-SA 4.0
2022-05-13T01:16:51.330
88794
2022-05-13T15:34:38.193
2022-05-13T03:45:27.983
4236
52594
question
windows
Windows標準アプリ等を拡張するプログラムの作成方法について
近道はありません。正攻法で学習することをお勧めします。

  1. 自作のアプリケーションに実現したい機能を実装する  
タブ化したいのであればタブ化アプリケーションを作成するスキルが必要です。

  2. 1.を他人のプロセスに侵入する機能で実現する  
侵入した環境下では様々な制約があります。そのような制約下では1.と同じ方法では実現できません。

というステップで実現する必要があります。本質問は2.の手段を問うものであり、もちろん答えることは可能ですが、1.が実現できないことには何も始まりません。

通常のアプリケーション作成スキルを身につけましょう。

* * *

> 他人のプロセスに侵入する機能 というのはどのように調べると出てくるのでしょうか

調べるのであれば[Hook](https://docs.microsoft.com/en-
us/windows/win32/winmsg/hooks)辺りからでしょうか。特に`WH_CBT`による[`CBTProc`](https://docs.microsoft.com/en-
us/previous-
versions/windows/desktop/legacy/ms644977\(v=vs.85\))を使うとウィンドウを作成するタイミングをフックすることができます。ここで親ウィンドウを書き換えて自前で用意したタブの中に配置したり、サイズを変更したりできます。  
しかし、そのようにフックで書き換えてしまうと不整合が発生するため、[Window Procedure
Subclassing](https://docs.microsoft.com/en-us/windows/win32/winmsg/about-
window-procedures#window-procedure-
subclassing)でウィンドウに対する処理を差し替えたりするといいかもしれません。

* * *

なお、

[「エクスプローラー」にタブ機能 ～Microsoft、Windows
11の新要素を発表](https://forest.watch.impress.co.jp/docs/news/1400705.html)

というニュースがあり、しばらく待てば実現されることでしょう。
CC BY-SA 4.0
2022-05-13T03:45:06.207
88797
2022-05-13T15:34:38.193
2022-05-13T15:34:38.193
4236
4236
88794
answer