Quiero saber si existe la posibilidad de activar un servicio cuando cambia una carpeta o un archivo.
Encontré sc triggerinfo pero no sé si puedo usarlo para eso.
Sí, es posible de varias maneras, por ejemplo con Power Shell Script :
Existen varias estrategias que puede usar para monitorear el sistema de archivos en PowerShell:
Cree un nuevo objeto System.IO.FileSystemWatcher y establezca la configuración adecuada:
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $searchPath
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
.Path es la ruta que será monitoreada, .IncludeSubdirectories le dice a FileSystemWatcher que monitoree todos los subdirectorios de .Path
Ahora tenemos que definir algunos eventos que se activarán cuando $ watcher detecte un cambio en el sistema de archivos, voy a definir un evento para Cambiado, Creado, Eliminado y Renombrado:
$changed = Register-ObjectEvent $watcher "Changed" -Action { write-host "Changed: $($eventArgs.FullPath)" } $created = Register-ObjectEvent $watcher "Created" -Action { write-host "Created: $($eventArgs.FullPath)" } $deleted = Register-ObjectEvent $watcher "Deleted" -Action { write-host "Deleted: $($eventArgs.FullPath)" } $renamed = Register-ObjectEvent $watcher "Renamed" -Action { write-host "Renamed: $($eventArgs.FullPath)" }
Dentro de cada evento, puede definir el código para lo que desea que suceda cuando se active el evento. En este ejemplo, solo estoy generando directamente el tipo de acción y la ruta completa del objeto modificado en el sistema de archivos.
Eso es practicamente todo. Estos eventos durarán hasta que cierre su sesión actual de PowerShell o anule el registro de los eventos manualmente. Puede cancelar el registro de los eventos con el comando Unregister-Event:
Unregister-Event $changed.Id
Unregister-Event $created.Id
Unregister-Event $deleted.Id
Unregister-Event $renamed.Id