問題タブ [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.

0 投票する
2 に答える
6640 参照

c# - Windowsエクスプローラーでカスタムヘッダーまたは列を表示する

私のアプリは、いくつかのカスタムメタデータをファイルに追加します。このようにWindowsエクスプローラーで表示したい:

モックアップ1

またはこれ:

モックアップ2

.NETでこれを行う方法はありますか?

0 投票する
0 に答える
108 参照

file-upload - Windows 7 のブラウザー セッションにファイルをアップロードする

Windows 7 では、ファイル システム オブジェクトをコピーまたは移動するときに、右クリック メニュー オプション機能を簡単に追加できます
。特集/2009/12/22

アプリなしで Web サイトにファイルをアップロードするためにブラウザー セッションを呼び出す方法はありますか?

ローカル ファイル オブジェクト パスを指定するパラメーターを追加して、ブラウザー セッションを呼び出すコマンド ラインを作成するのは簡単です。

しかし、ブラウザー セッションを開いたら、そのローカル ファイル パスをプリロードしてコントロールをアップロードする方法はありますか? 次に、Web ページは、ファイルをアップロードするためのユーザー認証を求めるプロンプトを表示します。

明らかに、ユーザー認証なしでファイルを自動的にアップロードすることはできません (これは大きなセキュリティ ホールになります) が、ユーザーがファイル オブジェクトを参照する必要がある手順をバイパスできるようにしたいと考えています。

組み込み機能を呼び出すことは問題ありません。絶対に必要でない限り、アプリをデプロイする必要はありません。

要約すると、ブラウザのセキュリティをバイパスしようとしているのではなく、ローカル ファイル パスをサーバーに渡すことによって、ユーザーがローカル ファイル システムを探し回らなければならない部分を回避しようとしているだけです。

更新: トピックに関する詳細情報が見つかりました。セキュリティ上の問題により、ローカル ファイル パスは明確にブロックされます。この投稿の「ファイル アップロード コントロール」セクションを参照してください: http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx

そのため、別の方法として、ターゲット URL への ftp アップロードを開始し、ユーザー ID と認証情報を渡すことで、ブラウザー サンドボックスのセキュリティ問題を回避することができます。

0 投票する
0 に答える
430 参照

winapi - GetOpenFileName、CFileDialog、IFileOpenDialog などでシステム シェル以外のすべての拡張機能が読み込まれないようにする

エクスプローラー シェルを使用してユーザーにファイル名を要求するプログラムによる方法を探しています。システム シェル拡張機能のみをロードしたいと考えています。

この機能を探している理由は、クラッシュやその他の非決定的な動作の原因として考えられるサードパーティのシェル拡張を排除したいからです。

理想的には、システムシェル拡張機能のみをロードするエクスプローラーインスタンスの「セーフモード」のようなものを意味する関数に渡すことができる、見逃したフラグがどこかにあります。これは非常に重要な機能のように思えます。私はかなりの時間を費やしてドキュメントを調べましたが、役に立ちませんでした。

CFileDialog、GetOpenFileName、および IFileOpenDialog の API ドキュメントを調べました。非システム シェル エクステンションのロードを防止する唯一の方法は、レジストリの操作またはソフトウェア ユーティリティを使用して何らかのグローバル ハッカーを実行することのようです。これらはどちらも、行儀の良いアプリにとって満足できるものではありません。

エクスプローラ ベースではない「古いスタイル」のファイル ダイアログを使用できることはわかっていますが、それを強制すると、ユーザーに殺されてしまいます。:)

これを回避する唯一の方法は、車輪を再発明して、エクスプローラーのようなファイルを開くダイアログを作成することです。

0 投票する
1 に答える
870 参照

c# - winzipのようなシェル拡張/ファイルコンテナdllを作成するにはどうすればよいですか?

さて、winzipやwinrarと同様のファイルコンテナプログラムまたは名前空間拡張子を作成する必要があります。

今では、ファイルを圧縮したり暗号化したりする必要はありません。

私が必要としているのは、.xyzなどの拡張子で動作するdllを作成することです(これをすべてレジストリに登録する方法を知っているので、問題はありません)。クリックすると、「コンテナ」内のすべてのファイルが開きます。 winzipのようなウィンドウがあります。

私が現在持っているのは、すべてのファイルを拡張子(.xyzなど)の大きなファイルに追加するプログラムです。しかし、どうすればよいかわからないので、この新しいファイルをクリックまたは開くと、すべてのファイルを表示できるようにウィンドウ(ファイルシステムブラウザなど)で開きます。それはこの「コンテナ」にあります。

誰かが私をこれまたはそれを行う方法について正しい方向に向けることができますか、今私は困惑しています。

また、c#.netで作業していることにも言及する必要があります

0 投票する
1 に答える
141 参照

embed - エクスプローラーにサイドバーを埋め込む

右側のバーのように、エクスプローラーにサイドバーを埋め込むにはどうすればよいですか?中国語のドロップボックスクローンです

例 SP ++をいじった後、HWNDを見つけ、SHELLDLL_DefViewのサイズを変更し、CabinetWClassにウィンドウを追加していると思います。または、これを行うシェル拡張機能はありますか?右側のウィンドウは、コンテキスト(左側で選択されているファイル)に応じて変わる可能性があります。

0 投票する
1 に答える
9321 参照

python - pywin32を使用したサブメニューを含むWindowsエクスプローラーのコンテキストメニュー

アイコンとサブメニューを備えたPythonを使用していくつかのシェル拡張機能を追加しようとしていますが、pywin32のデモよりもはるかに多くの機能を取得するのに苦労しています。グーグルで検索しても何も思いつかないようです。

右クリックしたファイル/フォルダの場所やファイルの種類などに応じてサブメニューのオプションを変更できるようにするには、comサーバーを登録する必要があると思います。

0 投票する
1 に答える
55 参照

windows - ファイル形式の詳細情報提供者

最近の Windows (XP、Vista、"7") のほとんどのバージョンでは、JPEG EXIF、MP3 ID3 タグ (ジャンル、アーティストなど) などのファイル形式やその他の形式の詳細情報を取得できます。その情報を取得するには、ファイルを右クリックし、[プロパティ] を選択して、ダイアログの [詳細] タブを確認します。

私の質問は、現在サポートされていない、またはサポートされていない他のファイル形式に関する情報を表示するためにシェルを拡張する方法ですが、すべての詳細が表示されているわけではありません。

私の推測では、ある種の .dll ベースのメカニズム、おそらくある種の COM サーバーが必要ですが、このトピックのエントリ ポイントが見つかりません。実際、グーグルで検索する方法さえわかりません。検索しようとすると、シェル拡張子ではなく、ファイル形式に関する多くの情報が得られます。

関連する記事/MSDNの章へのポインタは大歓迎です。

0 投票する
0 に答える
628 参照

windows - ドライブのルートのdesktop.ini

Windows では、System または Readonly 属性を設定し、適切な内部に を配置することで、Shell Namespace Extension をフォルダーにバインドできます。desktop.iniCLSID

ただし、ドライブsystemのルートに属性を設定する方法がわかりません。

これは私がそれを行うことができないということですか、それとも明らかな何かが欠けているということですか?

0 投票する
2 に答える
2893 参照

visual-studio-2010 - C++シェル拡張DLLを正しくアンロードする方法

C++とCOMで記述されたシェル拡張dllがあります。dllが登録されてメモリにロードされます。私のアップグレードセットアッププログラムは次のことを行います。

  • シェル拡張dllの登録を解除し、explorer.exeを強制終了します
  • シェル拡張dllの新しいバージョンをコピーします(ステップ2)
  • explorer.exeを開始します

正常に動作します。しかし、問題は次のとおりです。

ユーザーが他のアプリケーション(Internet Explorer、場合によってはWindowsタスクマネージャー、メモ帳など)を開いた場合、手順2は失敗します。

dllのアップグレード中にすべてのシェル拡張dllフックを閉じる方法はありますか?

dllでは、GetOverlayInfo、コンテキストメニュー、データベース接続などを使用しています

0 投票する
2 に答える
2331 参照

inno-setup - Inno Setup を使用して Windows エクスプローラー シェル拡張機能を更新する

Shell Extension を Windows Explorer に追加インストールするプログラム製品があります。C# で作成され、.NET Framework v4.0 を使用します。シェル拡張機能は、regasm.exe を使用したインストール中に Inno Setup によってインストールされます。アプリケーションの更新バージョンをインストールするまで、すべて正常に動作します。問題は、エクスプローラーのメモリにロードされているため、シェル拡張 dll を更新できないことです。Inno Setup をインストールする前に、次のメッセージが表示されます

ここに画像の説明を入力

インストーラーによって更新される必要があるファイルを使用するため、インストーラーは Windows エクスプローラーを終了する必要があると表示されます。 エクスプローラー プロセスを終了しますが、再度起動することはありません。それが私の最初の問題です。

実際には、ユーザーに強制的にエクスプローラーをシャットダウンさせたくありません。しかし、管理されたシェル dll をエクスプローラーのメモリからアンロードする方法がわかりません。regasm.exe でアンインストールしても dll がメモリに残ります。実際、既に作成されたインストール ソースを受け取っているため、このチェックが行われる場所を見つけることさえできません。

Inno Setup の Files-In-Use (IssProc.dll) アドインは役に立ちません。このアドインで Windows エクスプローラーを終了すると、エクスプローラーがすぐに再起動するためです。

どうすればこの問題を解決できますか? より良いユーザー エクスペリエンスでシェル拡張 dll を更新するにはどうすればよいですか? そして、使用中のファイルをチェックするコードがどこにあるのか、誰かが私にヒントを与えることができますか?

O とところで、私は Windows 7 x64 を使用しています。