VMP JBin - ASR
Home > JBin > ASR
ASR

Enlaces

Downloads
ASR
Bienvenido a la documentación de ASR.
ASR (Auto Service RegFile) es un servicio que ejecuta las tareas encomensadas en el archivo de RegFile.
Conceptos
El archivo de registro de RegFile, contiene un Group (key de nivel superior) de sistema llamado Auto Service RegFile. Esta key es la que ASR utiliza para buscar servicios (RegFileService) y ejecutarlos.
El funcionamiento básico es: obtener el archivo designado en la propiedad Program y ejecutarlo con un Process de .Net agregando los argumentos de la propiedad Param.
Muestra de ejemplo de código en C#: Process.Start(Program, Param);
Este evento se produce según índique el servicio, antes y después del Process.
Puesta en marcha
ASR debe añadirse en el menu start del sistema para que se ejecute en Background automáticamente cada vez que reiniciemos el sistema.
Argumentos de entrada
Con los argumentos de entrada de ASR puede iniciarse con credenciales y también con una de las tres opciones de inicio.
Ejecutar con un solo parámetro de entrada. Se inicia para acceder a los directorios (key) indicados en asr.TxJBin

	' con credenciales
	Auto Service RegFile.exe "myPass"

	' sin credenciales
	Auto Service RegFile.exe
			
Ejecutar con 2 parámetros de entrada. Se inicia para acceder a los directorios (key) indicados en asr.TxJBin. Aquí se inicia el camino de trabajar en una red local. Si no se desea iniciar con credenciales, el primer argumento se deja vacio.

	' con credenciales
	Auto Service RegFile.exe "myPass" "\\myRed\\pc2\\folderWork"

	' sin credenciales
	Auto Service RegFile.exe "" "\\myRed\\pc2\\folderWork"
			
Ejecutar con 4 parámetros de entrada. Se inicia para acceder a los directorios (key) indicados en asr.TxJBin. Aquí se inicia el camino de trabajar en un servidor mediante el protocolo FTP. Si no se desea iniciar con credenciales, el primer argumento se deja vacio.
El argumento 2 en esta opción debe ser una dirección Uri válida, sino se producirá un error y no se iniciará ASR.

	' con credenciales
	Auto Service RegFile.exe "myPass" "ftp://www.mydomain.com/folderWork" "myuserFTP" "mypassFTP"

	' sin credenciales
	Auto Service RegFile.exe "" "ftp://www.mydomain.com/folderWork" "myuserFTP" "mypassFTP"
			
Arquitectura
En el mismo directorio existe un archivo de configuración llamado 'asr.TxJbin'. Este archivo es de texto en formato TxJBin con la estructura de inicio:

    ASR = [

    ]
        
En el siguiente ejemplo, vamos a crear un servicio, dentro de una key en 'Auto Service RegFile' de RegFile. Para que el servicio de ASR pueda leerlo, debemos especificarselo en el archivo de configuración 'asrTxJbin'.

  ASR = [
    MyBusiness = [
      KeyCrawl = "My Business";
      SecondCrawl = 360;
      AutoStart = 1;
    ]
  ]
      
Archivo de texto en formato TxJBin
Ejemplo en VB.Net

      Imports System.IO
      Imports JBin

      Public Class Form1

      ' Declarar RegFile
      Dim WithEvents myRegFile As RegFile

      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

      ' Instanciar la clase
      myRegFile = New RegFile

      ' Inicar RegFile en modo local.
      myRegFile.Start()

      ' Añadir una key group a la raiz.
      Dim rn As New Key = new Key
      rn.Name = "Nuevo grupo"
      rn.IndexIcon = 0
      rn.Privileges = RegFilePrivileges.ReadWrite

      Dim r As New Key = myRegFile.AddGroup(rn);
      if IsNothing(r) Then

      MsgBox("Error al crear la key group.", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
      return;

      End If

      ' Añadir una key a la key group.
      Dim newKey As New Key = new Key
      newKey.Name = "Nueva key"
      newKey.IndexIcon = 0
      newKey.Privileges = RegFilePrivileges.ReadWrite

      Dim K As New Key = myRegFile.AddKey("Nuevo grupo", newKey)
      if IsNothing(k) then

      MsgBox("Error al crear la key.", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error)
      exit sub

      End If

      ' Cogemos la key
      Dim myKey As New Key = myRegFile.GetKey("Nuevo Grupo/Nueva key")
      if Not IsNothing(myKey) Then

      ' Agregamos un registro
      Dim myReg As New Reg = new Reg
      reg.Name = "myRegistro"
      reg.Privileges = RegFilePrivileges.ReadWrite
      reg.Password = "Valor del registro"
      reg.TypeValue = RegFileTypeReg.REG_STRING

      Dim resReg As New Reg = myRegFile.AddReg("Nuevo grupo/Nueva Key", myReg)
      If IsNothing(resReg) Then

      MsgBox("Error al crear el registro.", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error)

      End If

      Else

      MsgBox("Esta key no existe.", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error)

      End If

      End Sub

      ' la función que nos devuelve si hay un error de lectura o escritura de JBin
      Private Sub JBIN_Error(Sender As Object, e As RegFileOnErrorEventArgs)

      MsgBox(e.Message)

      End Sub

      End class

        
Ejemplo en C#

      using System.IO;
      using JBin;

      public partial class Form1 : Form
      {

      // Declarar RegFile
      RegFile regFile;

      private void Form1_Load(object sender, EventArgs e)
      {
        // Instanciar la clase
        regFile = new RegFile();

        // Crear el lanzador de eventos para derectar errores
        regFile.OnError += onError;

        // Crear mis credenciales para poder modificar y crear en mi key que voy a proteger con clave para que otros usuarios no puedan modificarla.
        regFile.Credentials = new RegFileCredentials("myPass");

        // Inicar RegFile en modo local.
        regFile.Start();

        // Añadir una key a la key de ASR con clave para que sólo yo pueda modificarla.
        Key rn = new Key();
        rn.Name = "My Business";
        rn.Privileges = RegFilePrivileges.ReadOnly;
        rn.Password = "myPass";

        Key r = regFile.AddKey("Auto Service RegFile", rn);
        if (r == null)
        {
          MessageBox.Show("Error al crear la key.", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
          return;
        }

        // Agregamos un registro
        Reg reg = new Reg();
        reg.Name = "myRegistro";
        reg.Privileges = RegFilePrivileges.ReadWrite;
        reg.Password = "Valor del registro";
        reg.TypeValue = RegFileTypeReg.REG_STRING;

        // Añadir un servicio
        RegFileService rf = new RegFileService();
        rf.Name = "my service";
        rf.DateExecute = (DateTime)"21/12/2021";
        rf.Password = "myPass";
        rf.Description = "Description service";
        rf.Done = false;
        rf.EverDay = true;
        rf.EvertWeek = false;
        rf.RemoveBefore = false;
        rf.Privileges = RegFilePrivileges.ReadOnly;
        rf.Program = "c:\myprogram.exe"; // o por emjemplo 'notepad.exe', o cualquier programa que queramos, si no está en el 'Path', debemos escribir la ruta completa al archivo ejecutable.
        rf.Param = """arg1""" """arg2"""; // Cadena de texto entre comillas separadas por un espacio

        if (Program.regFile.AddService("Auto Service RegFile/My Business", rf) != null)
        {
          MessageBox.Show("Service Created!.", "Ok", MessageBoxButtons.OK, MessageBoxIcon.Information)
        }
        else
        {

          MessageBox.Show("Service Failed!.", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error)
          return;
        }

        // Para que los cambios en el archivo 'asr.TxJbin', surtan efecto, debemos reiniciar la aplicación de ASR. Con el siguiente código, podemos reinicarlo sin tener que hacer desde el browser.
        // Importante: la key 'Auto Service RegFile' tiene un registro de sistema llamado 'PathASR', en la instalación estará vacio, ahí debes indicar la ruta completa y el nombre del archivo de ASR para poder usar este código, o para el menú ASR que hay en el programa FileReg Edit.
        string prg = regFile.GetValue("Auto Service RegFile", "PathASR").ToString();
        Process[] pr;
        pr = Process.GetProcessesByName("Auto Service RegFile");
        foreach (Process item in pr) // todos los ASR que se estén ejecutando serán cerrados. Normalmente sólo debe haber uno.
        {
            item.Kill();
        }
        Process.Start(prg); // Se pone en marcha de nuevo, si ya está en el menu start de tu sistema operativo, la proxima vez que reinicies se volverá a ejecutar automáticamente.
        MessageBox.Show("ASR Reboot Completed");

      }

      // Evento que se dispara cuando se produce un error controlado.
      private void onError(Object sender, RegFileOnErrorEventArgs e)
      {

        MessageBox.Show(e.Message, "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error);

      }

    }

        
Comentarios
Puedes usar ASR para ejeccutar cualquier programa que tengas instalado en tu máquina, incluyendo tus propios programas.
El servicio de ASR es una potente herramienta para recordatorios, agendas, avisos, etc.
Puedes crear un programa con JBin que realice una copia de seguridad de una base de datos SQL Server, y con ASR hacer que una vez a la semana, o cada día, haga la copia de seguridad y almacene el archivo en tu disco duro.