Antecedentes
El Explorador de Windows mantiene una lista de operaciones de archivos para que pueda deshacerlas (10 operaciones hasta XP y 32 desde Vista). Puede ver la última operación sin realizarla abriendo el menú Editar y resaltando el comando Deshacer sin seleccionarlo y mirando la barra de estado (aunque incluso así, a menudo no funciona y solo muestra una cadena en blanco en la barra de estado) .
Problema
Desafortunadamente, esto no solo muestra la operación en la barra de estado, que por defecto no está habilitada, sino que solo muestra la última operación. Peor aún, solo muestra la operación y el nombre del archivo , no la ruta (s).
Escenario de caso de uso
Un ejemplo de uso es que si usted está cambiando el nombre y mover un montón de archivos, especialmente archivos de manera similar como el nombre download1.png
, download2.png
etc., entonces se da cuenta de que ha olvidado mover uno de los archivos después de cambiar el nombre de la misma. Ver la lista de los últimos nombres de archivo y rutas modificadas le permitiría descubrir cuál se perdió sin tener que deshacer todas las operaciones posteriores que podrían hacer un completo desastre.
Pregunta
¿Alguien sabe de una manera de obtener una lista de todas las operaciones que Windows ha almacenado en su búfer de deshacer? He visto un programa que puede conectarse a Windows y hacer cosas que no son compatibles, como reorganizar los iconos de la barra de tareas y la bandeja (XP no era compatible con eso), por lo que espero que alguien haya logrado hacer lo mismo con el búfer Deshacer.
fuente
taskbar shuffle
Respuestas:
Con suerte, obtengo correctamente lo que estás buscando. Si es así, parece haber un método WinAPI : ReadDirectoryChangesW que podría hacer lo que espera.
Sin embargo, no estoy seguro de si el siguiente enfoque funcionará con el historial de operaciones de archivos o solo mostrará los cambios realizados después del tiempo de uso, ya que este enfoque no es tan diferente y podría usarse en el escenario que proporcionó, mencionaré que incluso podría estar un poco fuera de tema:
Podría conectar el objeto FileSystemWatcher a una carpeta (aunque el tema del enlace es diferente, esta en mi humilde opinión ofrece una buena visión general del propósito de la clase). Lo sé, es la clase C # .NET, pero lo que es C # puede convertirse en PowerShell como se muestra por esta secuencia de comandos del Centro de secuencias de comandos de Microsoft.
Puede considerar soluciones de terceros, como el rastreador de Windows Explorer, que parece hacer lo mismo (creo que prefieren usar llamadas API (documentadas) que técnicas de ingeniería inversa, pero parecía un poco preocupado por ellas, así que solo busqué una )
Y por último, pero no menos importante, incluso podría considerar escribir una aplicación WPF simple basada en FileSystemWatcher o una aplicación WPF más compleja que llame al método ReadDirectoryChangesW .
fuente