Czy mogę globalnie zmienić okno dialogowe systemu „Przeglądaj w poszukiwaniu folderu”?

15

O ile mi wiadomo, wszyscy nienawidzą okna dialogowego „Przeglądaj w poszukiwaniu folderu”:

wyszukaj okno dialogowe folderu

To okno dialogowe jest zawsze zbyt małe, rzadko dobrze zapamiętuje lokalizacje, a co najgorsze: zmusza cię do poruszania się po całym komputerze za pomocą żmudnej struktury drzewa.

Teraz, aby być uczciwym, niektóre problemy mogą dotyczyć sposobu, w jaki aplikacje wywołują kontrolę - brak ustawienia rozmiaru lub domyślnego katalogu itp. Pozostaje jednak problem z żmudną kontrolą drzewa.

Czy jest jakiś sposób na dostosowanie instalacji systemu Windows do korzystania z innej kontroli? Najlepiej jest aplikacja / instalator, który robi to za Ciebie bezpiecznie, ale wpuszczenie kompatybilnej biblioteki DLL lub podobnej techniki również byłoby w porządku.

A może utknęliśmy na zawsze w tej okropnej kontroli?

Chris Phillips
źródło
Większość twoich skarg to opcje kontrolowane przez oprogramowanie, które z nich korzysta. Trzeba by wymienić całą powłokę, aby ją zmienić.
Ramhound
1
Jest to słaba wymówka dla interfejsu użytkownika.
aliteralmind
2
Ten straszny UX denerwuje mnie za każdym razem.
Ryan

Odpowiedzi:

1

krótka odpowiedź, tak, utkniesz z tym

długa odpowiedź:

wspomniana funkcja to funkcja SHBrowseForFolder () w Shell32.dll. Ta funkcja jest połączona i wykonywana z tysięcy programów, więc jeśli nie piszesz konkretnego programu, dla którego chcesz zmodyfikować okno dialogowe, to czego nie chcesz, nie będzie możliwe bez modyfikacji lub zastąpienia shell32.dll (który jest przeznaczony do wszystkich celów i celów, poza zakresem tej strony).

tutaj jest dokumentacja funkcji: http://msdn.microsoft.com/en-us/library/windows/desktop/bb762115%28v=vs.85%29.aspx

jeśli po prostu chcesz to zmienić w programie, który piszesz, poszukaj specyfiki swojego języka / platformy, aby znaleźć tutoriale (są obfite).

Frank Thomas
źródło
2
Chciałem tylko zapytać, istnieje wersja okna dialogowego, która jest nieco bardziej użyteczna, ponieważ pozwala przynajmniej skopiować / wkleić ścieżkę. Czy to niestandardowe okno dialogowe, a może sama SHBrowseForFolder () z niektórymi parametrami, czy też jest dla niego osobna funkcja?
Karan
@Karan, z tego co widzę w dokumencie, jeśli ustawisz parametr wejściowy funkcji lpbi tak, aby wskazywał adres instancji BROWSEINFO, której UFLAGS jest ustawiony na 0x00000010, pojawi się pole edycji. niestety, ponieważ jest to parametr, tylko programista może go pokazać lub nie w zależności od aplikacji.
Frank Thomas
Dzięki i tak, wygląda na to, że należy ustawić flagę BIF_EDITBOX. „tylko programista może to pokazać lub nie” - Ale oczywiście. Nie sugerowałem, że jest to coś, co końcowy użytkownik może mieć nadzieję zrobić z plikiem binarnym.
Karan