1

Windows ファイル/フォルダーのコンテキスト メニュー拡張機能を作成しようとしています。私はすでに非常に試しましたが、何もうまくいきませんでした。私はすでに 32 ビット システム用の拡張機能を持っていますが、時代遅れです。64 ビット システム用の C++ を使用して再作成したいと考えています。

これは私がやりたいことに最も近いものでした: Klick しかし、これは 32 ビット システム用です。コメントを読んだ後、x64用に修正してビルドすることができました。

64 ビット システムで system32/regsvr32.exe を使用して登録すると、正常に登録されたことがわかります。すべてのレジストリ エントリが正しく作成されます。しかし、メニュー項目は表示されません。理由はわかりません...

誰かが私を助けることができますか?必要に応じて、プロジェクトをアップロードできます。

アップデート

上記のリンクの元のプロジェクトを使用し、次の点を変更しました。

1) ターゲットを「x64」に設定

2)コンパイルできなかったので、次のことを変更しました。

2.1) stdafx.h にインクルードする前に、以下を追加しました:

#define _ATL_NO_UUIDOF

2.2) ここで UINT を UINT_PTR に変更しました。

HRESULT CFSBankShellExtension::GetCommandString (
UINT_PTR idCmd, 
UINT uFlags, 
UINT* pwReserved,
LPSTR pszName, 
UINT cchMax )

3) .rgs ファイルで txtfile を * に変更し、すべてのファイル タイプに表示されるようにしました。

4) コンパイルして登録できました

あなたが私を助けることができない場合は、x64 システムで動作するテンプレートをアップロードしていただければ幸いです。

4

1 に答える 1

1

この記事は、私のプロジェクトでうまくいったので、あなたを助けるかもしれません..

シンプルなシェル コンテキスト メニュー

すべてのファイル、フォルダー、およびドライブのコンテキスト メニュー

また、ファイル タイプの *、Directory、および Drive レジストリ キーにエントリを追加することにより、すべてのファイル、フォルダ、およびドライブにコンテキスト メニューを接続することもできます。たとえば、XP PowerToys は、次のレジストリ スクリプトを使用して、[コマンド ウィンドウをここで開く] メニューをすべてのフォルダーに追加します。

REGEDIT4

[HKEY_CLASSES_ROOT\Directory\shell\cmd] @="ここでコマンド ウィンドウを開く"

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command] @="cmd.exe /k \"cd %L\""

于 2011-09-05T08:02:37.567 に答える