Могу ли я изменить системный диалог «Обзор папок» глобально?


15

Насколько я знаю, все ненавидят диалог «Обзор папок»:

найдите диалоговое окно папки

Это диалоговое окно всегда слишком маленькое, редко запоминает местоположения и, что хуже всего: заставляет вас перемещаться по всему компьютеру, используя утомительную древовидную структуру.

Теперь, чтобы быть справедливым, некоторые из проблем, вероятно, связаны с тем, как приложения вызывают элемент управления - не устанавливая размер или каталог по умолчанию и т. Д. Но проблема с утомительным древовидным элементом управления остается.

Есть ли способ настроить установку Windows для использования другого элемента управления? Желательно приложение / установщик, который сделает это для вас безопасно, но добавив совместимую DLL или подобную технику, тоже будет хорошо.

Или мы застряли с этим ужасным контролем навсегда?


Большинство жалоб, которые у вас есть, являются опциями, контролируемыми программным обеспечением, которое их использует. Вам придется заменить всю оболочку, чтобы изменить его.
Ramhound

1
Это плохое оправдание для пользовательского интерфейса.
aliteralmind

2
Этот ужасный UX раздражает меня каждый раз.
Райан

Ответы:


1

краткий ответ, да, вы застряли с этим

длинный ответ:

функция, которую вы упоминаете - это функция SHBrowseForFolder () в Shell32.dll. Эта функция связана и выполняется из тысяч программ, поэтому, если вы не пишете конкретную программу, для которой вы хотите изменить диалоговое окно, то, что вы хотите, не будет возможно без изменения или замены shell32.dll (что для всех целей и задач, выходит за рамки этого сайта).

вот документация для функции: http://msdn.microsoft.com/en-us/library/windows/desktop/bb762115%28v=vs.85%29.aspx

если вы просто хотите изменить его в программе, которую вы пишете, найдите специфику вашего языка / платформы, чтобы найти учебники (они обильны).


2
Просто хотел спросить, есть версия диалога, которая немного более удобна в использовании, так как, по крайней мере, позволяет вам копировать / вставлять путь. Это пользовательский диалог или, возможно, сам SHBrowseForFolder () с некоторыми параметрами, или для него есть отдельная функция?
Каран

@ Каран, из того, что я вижу в документе, если вы установите входной параметр функции lpbi так, чтобы он указывал на адрес экземпляра BROWSEINFO, UFLAGS которого установлен в 0x00000010, появится окно редактирования. к сожалению, поскольку он является параметром, только разработчик имеет возможность показать его или нет в зависимости от приложения.
Фрэнк Томас

Спасибо и да, похоже, флаг BIF_EDITBOX должен быть установлен. «Только у разработчика есть выбор показать это или нет» - но конечно. Я не имел в виду, что конечный пользователь мог надеяться сделать это с двоичным файлом.
Каран
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.