Wyświetlanie pełnej historii cofania w Eksploratorze Windows

16

tło

Eksplorator Windows przechowuje listę operacji na plikach, dzięki czemu można je cofnąć (10 operacji do XP i 32 z Visty). Możesz zobaczyć ostatnią operację bez jej wykonania, otwierając menu Edycja i podświetlając polecenie Cofnij bez wybierania go i patrząc na pasek stanu (chociaż nawet wtedy często nie działa i pokazuje tylko pusty ciąg na pasku stanu) .

Problem

Niestety nie tylko pokazuje to operację na pasku stanu, która domyślnie nie jest włączona, ale pokazuje tylko ostatnią operację. Co gorsza, to tylko pokazuje operację i plik jest nazwa , a nie ścieżkę (S).

Scenariusz przypadków użycia

Przykładem jest wykorzystanie jeśli zmiana nazwy i przenoszenie kilka plików o nazwie zwłaszcza podobnie jak pliki download1.png, download2.pngitp, a następnie uświadomić sobie, że zapomniałem przenieść jeden z plików po zmianie nazwy tego. Przejrzenie listy kilku ostatnich zmodyfikowanych nazw plików i ścieżek pozwoliłoby ci zorientować się, który z nich został pominięty, bez konieczności cofania wszystkich późniejszych operacji, które mogą zrobić kompletny bałagan.

Pytanie

Czy ktoś wie, jak uzyskać listę wszystkich operacji przechowywanych przez system Windows w buforze Cofnij? Widziałem program, który może podłączyć się do systemu Windows i robić rzeczy, które nie są obsługiwane, takie jak zmiana układu paska zadań i ikon na pasku zadań (XP tego nie obsługiwał), więc mam nadzieję, że komuś udało się zrobić to samo z buforem Cofnij.

Synetech
źródło
XP ma wsparcie rozmieszczanie paska zadań pozycji programowych - poprzez mechanizm cywilnej o nazwietaskbar shuffle
Costin gusa
1
@ CostinGușă, w rzeczywistości istniało kilka programów, które pozwalają ci zmienić układ paska zadań i ikon na pasku zadań, ale jak już powiedziałeś, były to programy zewnętrzne . Wynika to z faktu, że system Windows nie obsługiwał tej akcji (Microsoft poczynił założenia dotyczące zachowania użytkownika), więc musieli dokonać inżynierii wstecznej funkcji, aby wymyślić sposób na to, ponieważ nie było żadnych oficjalnych haków, które by na to pozwoliły (ja sam kiedyś musiał ponownie zaprojektować wpis rejestru, który kontroluje zachowanie wyświetlania ikony na pasku zadań, aby napisać dla niego przeglądarkę / edytor).
Synetech,
W systemie Windows 10 pasek stanu nie wyświetla niczego po podświetleniu Cofnij / Ponów w menu prawym przyciskiem myszy folderu. Irytująco wstążka nie ma do tego żadnych przycisków. Obejściem tego problemu jest dodanie przycisków Cofnij / Ponów do paska narzędzi szybkiego dostępu (mały pasek narzędzi na pasku tytułu), a następnie wskaż każdy z przycisków, aby wyświetlić szczegóły ich działania. (Oczywiście nadal nie widzisz ścieżek ani pełnej historii.) PS: Niektóre operacje, takie jak ponowne wykonanie operacji usuwania, usuwają całą historię, więc bądź ostrożny.
ADTC

Odpowiedzi:

6

Mam nadzieję, że poprawnie rozumiem to, czego szukasz. Jeśli tak, wydaje się, że istnieje metoda WinAPI - ReadDirectoryChangesW, która może zrobić to, czego oczekujesz.

Nie jestem pewien, czy następujące podejście będzie działało z historią operacji na plikach, czy wyświetla tylko zmiany dokonane po jego użyciu, jednak ponieważ to podejście nie jest tak różne i może być zastosowane w scenariuszu, który podałeś, wspomnę, że nawet to może być nieco nie na temat:

Możesz być w stanie połączyć obiekt FileSystemWatcher z folderem (ale temat linku jest inny, ten IMHO daje ładny przegląd celu klasy) - wiem, że jest to klasa C # .NET, ale co to jest C #, można utworzyć PowerShell, jak pokazano przez ten skrypt z Microsoft Script Center.

Możesz rozważyć rozwiązania innych firm, takie jak moduł śledzący Eksploratora Windows, które wydają się robić to samo (wydaje mi się, że raczej używają (udokumentowanych) wywołań API niż technik inżynierii wstecznej - ale wydawało się, że jesteś trochę zaniepokojony nimi, więc sprawdziłem tylko jedno ).

I na koniec, możesz nawet rozważyć napisanie prostej aplikacji WPF opartej na FileSystemWatcher lub nieco bardziej złożonej aplikacji WPF wywołującej metodę ReadDirectoryChangesW .

Matt Stuvysant
źródło
To może być jedna z najbardziej wyczerpujących odpowiedzi na stronie superuser.com/ Dziękuję za linki i za NIESAMOWITY wysiłek, bardzo fajnie! Dzięki! :))
Nostromov