2011-12-20 4 views
4

Я не хочу связывать расширение, кроме Папки. Поэтому, когда я нажимаю «Рабочий стол», чтобы указать ОС на использование моего приложения, а не «Проводника».Как связать каталог с моим приложением

Я попытался заменить в HKEY_CLASSES_ROOT \ Folder \ shell \ open \ command explorer.exe моей программой, но он не работает должным образом, поэтому я открываю с моим приложением также панель управления и другие вещи, что не то, что я хотеть.

Спасибо!

+6

Я только гадать, но я думаю, что ответ может быть «не делай этого» – Hybrid

ответ

5

Что вы хотите сделать, может быть достигнуто путем реализации пользовательского IShellFolder. http://msdn.microsoft.com/en-us/library/windows/desktop/cc144093(v=vs.85).aspx имеет подробную информацию. Как минимум, вы должны реализовать

  1. IPersistFolder Интерфейс
  2. IShellFolder Интерфейс
  3. IEnumIDList Интерфейс

Это то, что, например, Google Drive использует

+0

я пришел на этом решении, но это весьма затруднит реализацию потому что нужно иметь DLL (COM), который запустит мой основной exe, обработает эти вызовы и т. Д. Я надеялся, что есть более простое решение. Для правильного вызова моего exe-файла. –

+3

@IvanMark Это единственный способ, насколько мне известно –

+0

Помните, что вам понадобятся 32-битные и 64-битные расширения оболочки, поэтому, если вы планируете использовать Delphi, необходим XE2. –

0

Folder ProgID обозначает любой папок, в том числе не файловых систем. Правильный ProgID для вашего дела - Directory.

Reference

Смежные вопросы