Acceso exclusivo a archivos en el archivo de registro con VBScript y FileSystemObject
file-permissions file-access (3)
No sé qué tan accesible es la API de Windows para ti, pero deberías echar un vistazo a la infraestructura de depuración en la API de Windows.
Aquí hay un buen artículo de Code Project aquí. Básicamente usar OutputDebugString y capturar eso con DebugView, o conectarlo a un archivo eliminará su problema al bloquear el archivo de registro, también eliminará el cuello de botella de varios scripts en cola para escribir en el archivo de registro.
Espero que esto ayude.
Tengo un script VBS que actualmente escribe en un archivo de registro. Esta secuencia de comandos se puede iniciar desde mis procesos simultáneos múltiples, así que ahora estoy preocupado por la concurrencia.
Actualmente estoy usando FileSystemObject
para abrir y escribir en este archivo. ¿FSO admite el acceso exclusivo a archivos?
Sí, FileSystemObject admite el acceso exclusivo a archivos. Si otro proceso tiene un bloqueo en el archivo cuando llama a OpenTextFile, obtendrá un error (un permiso denegado). Debería poder atrapar el error y manejarlo adecuadamente (compruebe que Err.Number <> 0 después de la llamada a OpenTextFile es una forma de hacerlo).
Si es posible, le recomiendo que cierre el identificador y lo vuelva a abrir cada vez que necesite escribir en el archivo, para evitar posibles problemas de acceso exclusivo a archivos. Ex:
set objFile = objFSO.OpenTextFile("somefile.txt",8,True)
objFSO.WriteLine "jfdskfdkls"
objFSO.Close
''something something
set objFile = objFSO.OpenTextFile("somefile.txt",8,True)
objFSO.WriteLine "gfdgfdgfd"
objFSO.Close
''something else
set objFile = objFSO.OpenTextFile("somefile.txt",8,True)
objFSO.WriteLine "ddsgfgdfsgdfs"
objFSO.Close