問題タブ [sharpshell]

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 投票する
1 に答える
793 参照

shell-extensions - アイコン ハンドラーが Explorer をクラッシュさせる

Icon Handler に SharpShell を使用するプロジェクトがあります。アイコンを見つけて表示するために、APK 内を覗きます。私はそれを機能させていますが、いくつかの副作用があります。APK の名前を from などの別の名前に変更しようとすると、Explorer がクラッシュA.apkB.apk、その理由がわかりません。

メイン セクションとロギング ビットは次のとおりです。

私の APK コードは実行aapt d badging "path.apk"され、出力を解析してアイコン情報を取得し、GetIcon は APK を zip として開き、そのファイルを取得します。すべてを try/catch でラップし、SharpShell の LogError メソッドに結び付けましたが、何も出力されません。UACを無効にしました。APKLog.txt は表示されますが、有用な情報がないため、ドライブのルートへの書き込みにアクセス許可の問題はないと思います。

「Windows エクスプローラーが動作を停止しました」というウィンドウが表示され、この情報が「問題の署名」としてリストされます。

私はそれが言っているのを見ますSystem.AccessViolationExceptionが、私のコードのどれもそれをキャッチしていません。誰かがここで何が起こっているのかについて少し洞察を提供できますか?

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

c# - C# シェル拡張機能は x64 では問題なく動作しますが、x86 ではアクセス違反の例外でクラッシュします

マネージ コードにシェル拡張機能を実装する方法としては、それが良い方法ではないことはわかっていますが、それは問題ではありません。

SharpShellライブラリを拡張する C# プロジェクトがあります。チュートリアルに従って、Icon Handler 拡張機能を作成しました。すべての開発中に、x64 プラットフォームで dll をテストしていました。しかし、今は両方のプラットフォームでこの dll を使用できるようにしたいのですが、自分の dll を Windows x86 エクスプローラーに登録しようとすると、拡張機能の 1 つにアクセス違反の例外が表示されるたびにクラッシュします。

問題イベント名:CLR20r3

そのため、任意の CPU、x86、x64 で dll を再コンパイルしようとしましたが、このプラットフォームでは誰も動作しません。SharpShell が提供するサーバー マネージャーを使用するか、手動で dll を regasm に登録しようとしましたが、何も機能しません。

誰かがここで何が起こっているかの手がかりを持っていますか?

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

c# - 厳密な名前 - Sharpshell / LibTiff

Sharpshell と LibTiff/Tiff2Pdf を使用してシェル拡張機能を構築しています。ファイルを変換するための Windows のシンプルなドロップダウン メニューです。ソリューションですべてのアセンブリをビルドするには、厳密な名前が必要であり、プロジェクト自体を含める必要があります。

WindowsでLibTiff.Netを強力な名前で再構築する方法を知っている人はいますか? 私自身の組み立てであれば、新しいキーを追加するのと同じくらい簡単です。しかし、私はこれで迷っています。どんな助けでも大歓迎です。

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

shell-extensions - srm.exe インストール シェル拡張機能: 「基になるエクスポートされた値をキャストできません」で失敗する

SharpShell を使用して、この単純なシェル拡張機能 (エクスプローラーのコンテキスト メニュー) を作成しました。

SharpShell Server Manager を使用してデバッグで動作しますが、srm.exeコマンド ラインでインストールしようとすると、次のようになります。

これを修正する方法は?

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

windows - アイコン ハンドラーに黒いアイコンが表示される

Sharpshell を使用して、pdf および xlsx アイコンを変更しています。ほとんどの場合は問題なく動作しますが、黒いアイコンが表示されることがあります。エクスプローラーを更新または再起動しても、影響はありません。

さらに、特定のアイコン ビューでは正常に動作します。たとえば、詳細、コンテンツでは正常に動作しますが、中型アイコンやタイルでは正常に動作しません。また、アイコンはサーバー マネージャー ツールで正常に機能します。

もう 1 つ、黒いアイコンのファイルの名前を変更すると、正しいアイコンがすぐに表示されます。

これはコードです:

これはよりシンプルなバージョンです。私は何百ものアイコンに取り組んでいます。誰か提案はありますか?

編集:アイコンがランダムに割り当てられていることがわかりました。アイコン キャッシュをクリアすると、ランダムなアイコンが表示されます。何もない場合もあるので、真っ黒か真っ白になります。サーバーマネージャーツールでも同じことが起こっています。助けてください!

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

c# - SharpShell コンテキスト メニューで名前を変更するファイルを選択します

SharpShell を使用して、現在選択されているファイルを新しいサブフォルダーにコピーし、ユーザーにディレクトリの新しい名前を求める小さな新しいシェル コンテキスト メニュー項目を作成しています。

StackOverflow を検索すると、この回答が見つかりました。ただし、SharpShell でも同じことをしたいと思います。

どうにかして発砲SVSI_EDITする必要があり、奥深くに埋もれていることがわかりますが、これSharpShell.Interopがどのように機能するかはわかりません。ドキュメントやコード サンプルがまったく見つかりません。

(編集:Pidlファイル名から を取得する方法を見つけることは良い出発点になると思いますが、実際にはまったく必要ないのではないでしょうか?)