質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

解決済

1回答

468閲覧

Windowsエクスプローラーでファイルを右クリック→プロパティをした時の情報はどうやって出てきているのか?

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

0クリップ

投稿2019/12/15 14:27

編集2019/12/15 14:56

質問内容

Windows 10 で、エクスプローラでファイルを右クリック→プロパティでダイアログを表示した時、
アクセス権やサイズなどに加えて、別のアプリケーションの情報も出てきていることに気づきました。

これはどうやるとWindowsがプロパティの表示に出すのか、仕組みをご教示いただければと質問させていただきました。

実際にプロパティを確認したファイルについて

商用の暗号化ソフトがあります。
ファイルの暗号化をしたときにはファイルのアイコンが変更&プロパティが表示され、
暗号化されていない時は通常のファイルのアイコンに戻り、プロパティが出てこない。

試したこと

PowerShell でファイル属性の確認しましたが、暗号化されているかにかかわらず取得できる情報に変わりはありませんでした。

Googleで色々と調べてみましたが、
コンテキストメニューへの追加方法(レジストリのShellexへなど)が多くたどり着けませんでした。。
→どうやら辿りついていたようです。

知りたいこと(実装方法への興味事)

1.ファイルのアイコンの変化について

自身のアプリの処理状態によって変更させるのはどうやっているのでしょうか?
Git / Subversionでも、似たような動作を見たことがあります。

Subversionだと、同期していればファイルアイコンに緑のアイコン、してなければ赤いアイコン、という動作です。

2.プロパティダイアログの表示について

Windowsに自身のアプリの情報はどうやって表示させているのでしょうか?
(APIかインターフェースがある??)

3.プロパティダイアログの情報は取得できるか?

例えば、暗号化ソフトの手が加えられているか・Subverionの管理に入っているかなど
情報を取得できますか?

ツールでファイル監視をして、バージョン管理外になっているファイルを列挙・・・みたいなことは出来るのでしょうか?
(.svn / .git を見たほうが、は他に例が浮かばなかったので、今回はスルーでお願いしますm(_ _)m)

宜しくお願い致します!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/12/15 14:32

> コンテキストメニューへの追加方法(レジストリのShellexへ~~など)が多くたどり着けませんでした。。 たどり着いていますね。それです。レジストリに登録された dll の中にあるプログラムが走っています。 そのプログラムの作り方はあなたにはまだ難しくて理解できないと思うので回答しません。
退会済みユーザー

退会済みユーザー

2019/12/15 14:51

こんばんは。 レジストリの部分でたどり着いていたということは、 コンテキストメニューに関わるレジストリに自身のプログラムを登録しておき、 インターフェースに沿って実装を行うことで実現している。 と読み解きました。(想像といった方が正しいかもしれませんね。) 確かに私にはまだ難しそうですが、そこまで実装できるエンジニアになりたいですね。 ヒントを与えていただき、ありがとうございました。
Zuishin

2019/12/15 15:37

> コンテキストメニューに関わるレジストリに自身のプログラムを登録しておき、 インターフェースに沿って実装を行うことで実現している。 と読み解きました。 ご明察です。「シェル拡張(shell extension)」をキーワードに含めると見つけやすいと思います。 C++ もしくは C#, VB.NET で COM を実装します。
guest

回答1

0

ベストアンサー

疑問は残るところはありますが、ヒントを頂けたので
一度締めさせていただきます。

投稿2019/12/18 14:03

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問