2011-09-05 162 views
1

我嘗試爲Windows文件/文件夾創建上下文菜單擴展。我已經非常努力,但沒有爲我工作。我已經有了32位系統的擴展,但已經過時了。我想用C++爲64位系統重新創建它。C++ Shell上下文菜單擴展

這一個是最接近我想要做的:Klick 但這是爲32位系統。閱讀完評論後,我可以修改&爲x64構建它。

在我的64位系統上使用system32/regsvr32.exe註冊它,表明它已成功註冊。所有註冊表項都正確創建。但是菜單項沒有出現。我不知道爲什麼...

有人可以幫助我嗎?如果你願意,我可以上傳這個項目給你。

UPDATE

我使用從上面的鏈接的原始項目,改變了以下事情:

1)設定的目標爲 「64」

2)因爲我couln't編譯它,我改變了以下幾件事:

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)我txtfile更改爲*在.RGS文件,因此它應該對所有文件類型的衝擊片雷管。

4)我是能夠編譯並註冊

如果你不容幫助我,這將是冷靜,如果你可以上傳模板,將x64系統上運行。

+0

第一步是找出如果您的DLL實際上已經加載到瀏覽器處理。嘗試使用SysInternals procexp工具並打開底部窗格DLL視圖。 –

+0

它在那裏!我搜索了SimpleExt.dll,並在procexp中找到了它。那麼......接下來呢? –

+0

您是否使用Visual Studio?加載你的項目,將VS調試器附加到explorer.exe並在你的擴展的方法中設置斷點。然後右鍵點擊某個東西,看看你的函數是否真的被調用。如果他們被調用,請通過他們並嘗試找出他們出錯的地方。 –

回答

1

這篇文章可以幫助你爲它的工作爲我的項目..

Simple shell context menu

上下文菜單中的所有文件,文件夾和驅動器

您還可以轉播上下文菜單所有文件,文件夾和驅動器由 添加條目到文件類型的*,目錄和驅動器註冊表 鍵。例如,XP PowerToys的增加了此處打開命令窗口菜單 與下面的註冊表腳本中的所有文件夾:

REGEDIT4

[HKEY_CLASSES_ROOT \目錄\殼\ CMD] @ = 「此處打開命令窗口」

[HKEY_CLASSES_ROOT \目錄\殼\ CMD \命令] @ = 「cmd.exe的/ K \」 CD %L \ 「」

+0

謝謝,但這對我來說不夠靈活。我想,菜單項甚至出現,當我選擇多個文件/文件夾,然後右鍵單擊它們。我想檢測所有選定的文件,然後(根據條件)決定菜單項是否應該顯示。所以我需要爲它創建一個DLL。 –

相關問題