Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Shell Extensions, 32-битные расширения shell в Win7 64 
:(
    Опции темы
WWWlad
  Дата 6.9.2010, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 26.1.2009

Репутация: нет
Всего: нет



Всем доброго дня.

Написал свое расширение оболочки windows, рисующее каждому файлу в проводнике иконку в зависимости от его содержимого, по сути эскиз-превьюшку. Представляет собой 32-битную DLL с реализацией IExtractIcon, замечательно работает на 32-битных же системах. Но в Win7 64 работать отказывается. Точнее, превьюшки рисуются при просмотре папки в OpenDialog моей же программы (32 бит), но не в штатном проводнике.
Вопрос к знатокам: могут ли вообще 32бит расширения оболочки полноценно функционировать в 64бит системах? Если да, что какие дополнительные действия для этого требуются? Как их правильно регистрировать?

И второй вопрос: можно ли в 64бит системе запустить 32-битный проводник (explorer), чтобы хоть временно пронаблюдать работу моей DLL?

Заранее огромное спасибо всем ответившим.
PM   Вверх
CodeMonkey
Дата 6.9.2010, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89



Цитата(WWWlad @  6.9.2010,  19:15 Найти цитируемый пост)
Вопрос к знатокам: могут ли вообще 32бит расширения оболочки полноценно функционировать в 64бит системах?


Нет. 32-х разрядный компонент не может быть загружен в 64-х разрядный процесс и наоборот. Вам нужно два варианта своей DLL: 32-х разрядный и 64-х разрядный. Второй из которых... невозможно сделать в Delphi и не будет возможно ещё как минимум год. Можно посмотреть в сторону FreePascal или Microsoft-ских компиляторов.

Цитата(WWWlad @  6.9.2010,  19:15 Найти цитируемый пост)
можно ли в 64бит системе запустить 32-битный проводник (explorer), чтобы хоть временно пронаблюдать работу моей DLL?


Можно. Запускать C:\Windows\SysWOW64\explorer.exe вместо C:\Windows\explorer.exe.

Это сообщение отредактировал(а) CodeMonkey - 6.9.2010, 19:30


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
WWWlad
Дата 7.9.2010, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 26.1.2009

Репутация: нет
Всего: нет



CodeMonkey
спасибо за развернутый ответ. 

Вот только не получается запустить 32-битный проводник  smile При запуске C:\Windows\SysWOW64\explorer.exe новое окно проводника появляется, но не запускается (судя по диспетчеру) новый процесс. Процесс explorer в списке только один и он, естественно, не 32-битный. В итоге даже в отдельном окне не могу заставить свое расширение работать.
PM   Вверх
CodeMonkey
Дата 7.9.2010, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89



Так естественно. Проводник-же может быть только один. Вы запущенный сначала закройте, а уж потом запускайте новый.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
WWWlad
Дата 7.9.2010, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 26.1.2009

Репутация: нет
Всего: нет



Цитата(CodeMonkey @ 7.9.2010,  13:15)
Так естественно. Проводник-же может быть только один. Вы запущенный сначала закройте, а уж потом запускайте новый.

Пробовал. Прибивал в диспетчере все explorer'ы (с исчезновением панели задач), потом запускал C:\Windows\SysWOW64\explorer.exe - в итоге имеем 64-битный процесс. Или чего-то не понимаю?
PM   Вверх
CodeMonkey
Дата 7.9.2010, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89





--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
WWWlad
Дата 7.9.2010, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 26.1.2009

Репутация: нет
Всего: нет



Цитата(CodeMonkey @ 7.9.2010,  17:03)
Попробуйте добавить ключ /separate.

Не помогает  smile 
PM   Вверх
CodeMonkey
Дата 7.9.2010, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89





--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0803 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.