const fs = require('fs'); const path = require('path'); // Especifica el nombre del archivo que deseas generar const nombreArchivo = path.join('C:', 'RpaClaro', 'macrologin.mac'); // Función para verificar y eliminar el archivo function verificarYEliminarArchivo(nombreArchivo) { if (fs.existsSync(nombreArchivo)) { try { // fs.unlinkSync(nombreArchivo); // Descomentar para eliminar el archivo console.log(`Se ha eliminado el archivo '${nombreArchivo}'.`); } catch (e) { console.log(`Error al eliminar el archivo '${nombreArchivo}': ${e}`); } } else { console.log(`El archivo '${nombreArchivo}' no existe.`); } } // Función para generar el archivo function generarArchivo(nombreArchivo, contenido) { try { // Crea el archivo y escribe el contenido fs.writeFileSync(nombreArchivo, contenido, 'utf8'); console.log(`Se ha generado el archivo '${nombreArchivo}' con éxito.`); } catch (e) { console.log(`Error al generar el archivo '${nombreArchivo}': ${e}`); } } function rr(usuario, password) { // Ahora, formateamos el texto para insertar el valor de "valor_variable" en el lugar correcto. const texto = ` `; // Llamada para verificar y eliminar el archivo si existe verificarYEliminarArchivo(nombreArchivo); // Llamada para generar el nuevo archivo generarArchivo(nombreArchivo, texto); async function runAS400Launcher() { const autoit = require("node-autoit-koffi"); const koffi = require("koffi"); autoit.lib = koffi.load('C:/RpaClaro/AutoItX3_x64.dll'); await autoit.run('C:/Users/Public/IBM/ClientSolutions/Start_Programs/Windows_i386-32/acslaunch_win-32.exe C:/RpaClaro/AS400.hod'); try { const result = await autoit.winWait("Iniciar sesión en IBM i", "", 35); if (result) { let ventana_error = 0; let ventana_contrasena = 0; let ventana_mensaje1 = 0; let ventana_mensaje2 = 0; console.log("El programa se ha abierto correctamente."); await autoit.winActivate("Iniciar sesión en IBM i"); await autoit.winSetState("A - ", '', 3) await autoit.controlSend("Iniciar sesión en IBM i", '', null, usuario); await autoit.winActivate("Iniciar sesión en IBM i"); await autoit.controlSend("Iniciar sesión en IBM i", '', null, "{TAB}"); await autoit.winActivate("Iniciar sesión en IBM i"); await autoit.controlSend("Iniciar sesión en IBM i", '', null, password); await autoit.controlSend("Iniciar sesión en IBM i", '', null, "{ENTER}"); ventana_error = await autoit.winWait("Mensaje de error", "", 8); if (ventana_error == 1) { console.log("Aparecio mensaje de error"); } else { console.log("No aparecio mensaje de error"); } ventana_contrasena = await autoit.winWait("Cambiar contraseña de IBM i", "", 1); if (ventana_contrasena == 1) { console.log("Aparecio mensaje de contrasena"); } else { console.log("No aparecio mensaje de contrasena"); } ventana_mensaje1 = await autoit.winWait("Mensaje de consulta", "", 1); if (ventana_mensaje1 == 1) { await autoit.controlSend("Mensaje de consulta", '', null, "{ENTER}"); console.log("Aparecio mensaje 1"); } else { console.log("No aparecio mensaje 1"); } ventana_mensaje2 = await autoit.winWait("Mensaje de consulta", "", 1); if (ventana_mensaje2 == 1) { await autoit.controlSend("Mensaje de consulta", '', null, "{ENTER}"); console.log("Aparecio mensaje 2"); } else { console.log("No aparecio mensaje 2"); } console.log(ventana_contrasena); console.log(ventana_error); if (ventana_contrasena == 0 && ventana_error == 0) { console.log('diferentes'); await new Promise((resolve) => setTimeout(resolve, 3000)); let segundo_login = await autoit.winGetText('A - '); console.log(segundo_login); if (segundo_login == 128) { console.log('Se encontro segundo login'); await autoit.winActivate("A - "); await new Promise((resolve) => setTimeout(resolve, 2000)); try { await autoit.controlSend("A - ", '', null, "+^w"); console.log('Se ejecuto hotkey'); await autoit.controlSend("A - ", '', null, usuario); await autoit.winActivate("A - "); await autoit.controlSend("A - ", '', null, "{TAB}"); await autoit.winActivate("A - "); await autoit.controlSend("A - ", '', null, password); await autoit.controlSend("A - ", '', null, "{ENTER}"); } catch (error) { console.log('No se ejecuto hotkey: ' + error); } } else { console.log('No se encontro segundo login'); } } } else { console.log("El programa no se ha abierto dentro del tiempo de espera."); } } catch (error) { console.error("Error:", error); } } runAS400Launcher(); return 'test'; } module.exports = { rr };