問題タブ [shell-extensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Windows シェル拡張機能をフォルダー/ドライブに制限する
仮想ドライブ (外付けハードドライブと考えてください) に保存されているファイル (主に .jpg) の拡張プロパティを表示するシェル拡張に取り組んでいます。
特定のフォルダー/ドライブ (私の場合は外付けハードドライブ) のファイルに対してのみ起動し、他のフォルダーの jpg の処理を Windows の既定のシェル拡張に任せる方法でシェル拡張を登録することは可能ですか?
よろしく、
セバスチャン
c# - COM DLL と C# 間の通信
先日、オーバーレイアイコンについて質問させていただきました。助けを借りて、それを機能させる方法を見つけました。
シェルがアイコンを描画する前に、システム内のすべてのアイコン オーバーレイ ハンドラーに連絡して、その特定のアイコンにオーバーレイを描画する必要があるかどうかを判断します。
私のセットアップ:
アイコン オーバーレイを表示するために使用する登録済みのシェル拡張機能 (アイコン オーバーレイ ハンドラー) があります。また、オーバーレイを表示するすべてのファイルとフォルダーの名前などをデータベース (おそらく SQLite) に書き込む .NET アプリケーション (C#) があります。
私の問題は次
のとおり
です。.NET アプリケーションにコールバックするシェル拡張 (基本的には COM DLL だと思います) を取得するにはどうすればよいですか? それとも、それはやり過ぎで、シェル拡張をデータベースから直接読み取る必要がありますか?
可能な解決策?
- シェル拡張 (アイコン オーバーレイ ハンドラー) にデータベースを読み取らせ、オーバーレイを表示するかどうかを決定します。
- オーバーレイを表示するかどうかを決定するために、シェル拡張機能を .NET アプリケーションにコールバックさせます。
これが理にかなっていることを願っています。そうでない場合は、詳しく説明します。
windows - シェル拡張のドラッグ アンド ドロップをオーバーライドする
私は C++ で ShellExtension コードに取り組んでいます。仮想ドライブを作成しています。これは、ネットワーク内のどこかにあるリポジトリを表します。私が今欲しいのは、このドライブへのドラッグアンドドロップ機能を有効にすることです。ユーザーがファイルをその仮想ドライブにドラッグできるようにしたいのですが、カスタム操作を実行できるように、そのイベントをグラブできる必要があります。これまでのところ、そのようなイベントまたはインターフェイスを見つけることができません。インターフェイスを使用してみIDragAndDrop
ましたが、rgs ファイルが正しく登録されませんでした。抜け道はありますか?
c++ - Windows7でのシェル拡張機能のデバッグ
Visual C ++2008を使用してWindows7でシェル拡張機能(IContextMenu)をデバッグしようとしています。レジストリでDesktopProcess = 1を設定し、ホストアプリをexplorer.exeに設定しました。しかし、デバッガーを起動すると、explorer.exeが起動し、プロセスから切り離されます。シェル拡張のDllMainは呼び出されません。
Windows XP + Visual C ++ 2008で問題なくデバッガーで起動された、まったく同じ設定の同じコード。
Win7でシェル拡張機能をデバッグする方法について何か考えはありますか?
c# - アセンブリキャッシュビューアと同様のWindowsシェル拡張機能の記述
アセンブリキャッシュビューアなど、特定のフォルダの表示を完全にカスタマイズするためのシェル拡張機能を作成したいと思います(c:\ windows \ assemblyを参照すると、意味がわかります)。これらのフックを提供するのはどのCOMインターフェイスですか?私の「ビューア」はC#で記述されます...
ありがとう!
c# - 名前空間拡張子..ギャラクシーファイルシステムツールキット...ユーティリティのようなGmailシェルドライブ
私はc#(.net)を使用して拡張する名前空間の拡張を探していましたが、GalaxyFilesystemtakelkitを除いてオンラインで多くのヘルプを見つけることができませんでした。これはvc++ベースですが、c#とjavaラッパークラスが付属しています...これは私がたくさん始めるのに役立ちます。
私はそれを十分に拡張し、インストーラーをインストールできるようにしました。正常にインストールされますが、開いたときにシステムがスタックする理由がわかりません... :(変更したバージョンに問題がある可能性があると思ったので、Galaxyファイルシステムツールキットの作成者の元のバージョンを実行しようとしましたが、同じように応答しました私のように:D :(
なんらかの理由で作者でさえ私の質問に答えていないので、今は少し無力だと感じています...
どんな助けでも本当にありがたいです....
参考:Gmailドライブのようなものが必要です...
windows - Windowsエクスプローラーから継承する方法(任意のプログラミング言語で、任意のツールを使用して)
Windowsエクスプローラー(デスクトップ、Muコンピューターなどを探索するためのディレクトリ)から継承する方法(任意のプログラミング言語)?
カスタマイズする
プログラムフェッチャーを追加する(WindowsエクスプローラーのMac教師に追加するか、アルゴリズムを並べ替えるか、ボタンなどを追加します)
私が必要なものは何:
- 例
- オープンソースライブラリとオープンソースの例
- ドキュメント(例:MSDNまたはこのようなもの)
PS:Windows Vista、7で動作するはずです
shell-extensions - FileOpen ダイアログでシェル拡張を無効にする方法
私はWindowsシェル拡張について話しています。
カスタマイズしたファイル タイプ (*.filetype など) の特定のプロパティを表示できるシェル拡張機能があります。そしてもちろん、シェル拡張 dll が explorer.exe プロセスに読み込まれます。しかし、今、任意のアプリケーションで FileOpen ダイアログを起動し、そのダイアログ (例としてメモ帳) 内のファイル プロパティをチェックすると、これらのシェル拡張 dll が notepad.exe プロセスに読み込まれます。これは避けたいケースです。
FileOpen ダイアログで特定のシェル拡張機能を無効にすることは可能ですか?
ありがとう。
windows-7 - Windows 7のデスクトップ名前空間拡張機能:ドラッグアンドドロップできません
デスクトップの名前空間拡張機能を利用するプログラムがあります。Windows 2000、Windows XP、およびWindows Vistaでは、ユーザーはアイコンをデスクトップ上のアイコンにドラッグして、プログラムを起動できます。ただし、Windows 7(HomeとUltimateの両方)では、アイコンの順序が再配置されるだけです。Sysinternalsdbgview.exeを使用してみました。handler.exeからの多くのイベントを正しく認識しましたが、アイコンを名前空間アイコンにドラッグしてもイベントはトリガーされません。つまり、drophandlerはまったく呼び出されていません。
それでも正しく動作するので、Windows7が以前のバージョンのOSでは要求しなかったものが必要です。
名前空間拡張機能は、関連するキーをレジストリに詰め込むことによってインストールされます。インストーラーをそのように機能させ続けたいと思います。
c++ - Windows エクスプローラーの読み込み時に DLL を読み込む信頼できる方法は何ですか?
私は、WebDAV にいくつかの拡張機能を追加する Windows エクスプローラー用のアドオンの開発を研究しています。そのために、XP/ Vista/Win7 32 ビットおよび 64 ビット OS。
BHO は IE と同じように Windows エクスプローラーで読み込まれることを思い出すようですが、これに関する私の最初のテストでは、Vista 64 ではうまくいきませんでした。それをもう少し。
Shell Extensions も調べましたが、特定のアクションが実行された場合にのみ読み込まれることがわかります。私もこれについて間違っている可能性があります。
だから、これを実現するための良い方法をいくつか提案したいと思います:)
Windows エクスプローラーが読み込まれるたびに DLL を読み込む必要があるだけです。
更新:この質問を投稿した直後に、BHO 登録のレジストリに NoExplorer オプションが設定されていることがわかりました。それを取り除いた後、それはうまくいくように見えます。ただし、同じことを達成するための他の方法があるかどうかは、まだ学んでいます。