Hola amigos hoy veremos un simple código que hice en JavaScript, pero esta vez no es con HTML sino que está en hta porque en HTML no se puede usar comandos de consola, también le pedí a la IA que me hiciera una versión y para acabarla ella la hizo mejor que yo, así que son 2 códigos, pero la de la IA es un poco más reducida ya verán porque, primero les dejo una foto del mío y como funciona
Damos en el botón examinar y elegimos el archivo rar y después damos en el botón ver archivos y se muestra lo siguiente
Ahora si queremos extraer todo solo damos clic en el botón que dice eso, ese botón no lo explicaré ya que sale de sobra, los que voy a explicar son los otros 3, bueno empecemos si queremos extraer un archivo primero seleccionamos el nombre del archivo y damos en copiar, para después pegarlo en el cuadro de texto así.
después damos clic en extraer y pegamos en el cuadro de texto que aparecerá
Y listo nos muestra el mensaje de archivo extraído, ahora si queremos agregar solo damos clic en el botón agregar y aparecerá un cuadro de diálogo y elegimos el archivo a agregar este.
Yo elegí el archivo de firefox.exe y nos manda el siguiente mensaje

después otro mensaje que dice que elijamos de nuevo el archivo rar, ya que el valor del examinar cambio
Ahora damos clic en examinar y elegimos el archivo rar de nuevo y damos clic en el botón examinar y vemos que nos muestra que el archivo si se agregó
Ahora si queremos eliminar el archivo damos clic en el botón que dice eso, pero antes copeamos el nombre del archivo y pegamos en el cuadro de texto que aparecerá como se ve en la imagen
Y nos muestra lo siguiente
Bueno ahora les dejaré el código
<html>
<head>
<title>Simple Analizador De Archivos Rar</title>
</head>
<body>
<center>
<input type="file" size="50" id="archi"><br><br>
<textarea cols="100" rows="30" id="log" disabled></textarea><br><br>
<input type="button" value="Ver Archivos" id="v" onclick="ver()">
<input type="button" value="Extraer" id="ex" onclick="extrae()" disabled>
<input type="button" value="Extraer Todo" id="tod" onclick="todo()" disabled>
<input type="button" value="Agregar" id="agre" onclick="agregar()" disabled>
<input type="button" value="Eliminar" id="del" onclick="dele()" disabled>
</center>
<script>
var shell=new ActiveXObject("WScript.Shell");
var fso=new ActiveXObject("Scripting.FileSystemObject");
var res,loger,f,posi;
function ver()
{
f = document.getElementById("archi").value;
if(fso.FileExists(f) && /\.rar$/i.test(f))
{
loger=shell.Exec("C:\\Program Files\\WinRAR\\unrar.exe l " + String.fromCharCode(34) + f + String.fromCharCode(34));
res=loger.StdOut.ReadAll();
posi=res.indexOf("Atributos");
res=res.substr(posi);
document.getElementById("log").value=res;
document.getElementById("ex").disabled=false;
document.getElementById("tod").disabled=false;
document.getElementById("agre").disabled=false;
document.getElementById("del").disabled=false;
}
else
{
alert("Error El Archivo No Existe...");
}
}
function extrae()
{
var file=window.prompt("Dame El Nombre Del Archivo a Extraer");
f = document.getElementById("archi").value;
loger=shell.Exec("C:\\Program Files\\WinRAR\\unrar.exe x " + String.fromCharCode(34) + f + String.fromCharCode(34) + " " + String.fromCharCode(34) + file + String.fromCharCode(34));
//res=loger.StdOut.ReadAll();
alert("Archivo Extraido Con Exito...");
}
function todo()
{
f = document.getElementById("archi").value;
posi=f.lastIndexOf("\\");
res=f.substr(0,posi);
loger=shell.Exec("C:\\Program Files\\WinRAR\\unrar.exe x " + String.fromCharCode(34) + f + String.fromCharCode(34) + " " + String.fromCharCode(34) + res + String.fromCharCode(34));
//res=loger.StdOut.ReadAll();
alert("Archivos Extraidos Con Exito...");
}
function agregar()
{
f = document.getElementById("archi").value;
document.getElementById("archi").click();
res=document.getElementById("archi").value;
loger=shell.Exec("C:\\Program Files\\WinRAR\\rar.exe a -ep " + String.fromCharCode(34) + f + String.fromCharCode(34) + " " + String.fromCharCode(34) + res + String.fromCharCode(34));
res=loger.StdOut.ReadAll();
alert(res);
document.getElementById("ex").disabled=true;
document.getElementById("tod").disabled=true;
document.getElementById("agre").disabled=true;
document.getElementById("del").disabled=true;
alert("Ahora Elige El Archivo rar");
}
function dele()
{
var file=window.prompt("Dame El Nombre Del Archivo a Extraer");
f = document.getElementById("archi").value;
loger=shell.Exec("C:\\Program Files\\WinRAR\\rar.exe d " + String.fromCharCode(34) + f + String.fromCharCode(34) + " " + String.fromCharCode(34) + file + String.fromCharCode(34));
res=loger.StdOut.ReadAll();
alert(res);
}
</script>
</body>
</html>
Aclaro el código se puede mejorar yo lo hice de manera simple y pose algún comentario porque se trababa, ya que usaba StdOut.ReadAll() en fin ahora les muestro el codigo de la IA una foto primero

Como ven tiene mejor presentación que el mío y es más complejo... Aclaro si me gusta como quedo la versión del IA, pero ami en lo personal me gusta lo más simple para practicar y enseñar en fin, si quieren probarlo damos clic en buscar y elegimos el archivo rar y después damos clic en ver contenido.... Ahora su código
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Visor de Archivos RAR</title>
<HTA:APPLICATION
ID="VisorRAR"
APPLICATIONNAME="VisorRAR"
BORDER="thin"
CAPTION="yes"
ICON="shell32.dll,21"
MAXIMIZEBUTTON="yes"
MINIMIZEBUTTON="yes"
SCROLL="auto"
SINGLEINSTANCE="yes"
SYSMENU="yes"
WINDOWSTATE="normal"
/>
<style>
html, body {
height: 100%;
margin: 0;
font-family: "Segoe UI", Tahoma, Arial, sans-serif;
background: #1e1e1e;
color: #e0e0e0;
}
.barra {
padding: 12px;
background: #2d2d30;
border-bottom: 1px solid #444;
}
#ruta {
width: 55%;
padding: 5px;
background: #1e1e1e;
color: #fff;
border: 1px solid #555;
}
button {
padding: 5px 14px;
margin-left: 6px;
background: #3c3c3c;
color: #fff;
border: 1px solid #555;
cursor: pointer;
}
button:hover { background: #505050; }
#salida {
margin: 12px;
height: 75%;
overflow: auto;
background: #0c0c0c;
color: #6fdc6f;
font-family: Consolas, "Courier New", monospace;
font-size: 13px;
padding: 10px;
white-space: pre;
border: 1px solid #333;
}
#estado {
margin-left: 12px;
font-size: 12px;
color: #999;
}
#herramienta {
margin-top: 6px;
font-size: 11px;
color: #888;
}
</style>
</head>
<body onload="document.getElementById('herramienta').innerText = mostrarHerramienta();">
<div class="barra">
<input type="text" id="ruta" placeholder="Ruta completa del archivo .rar">
<input type="file" id="explorador" accept=".rar" style="display:none"
onchange="document.getElementById('ruta').value = this.value;">
<button onclick="document.getElementById('explorador').click();">Buscar...</button>
<button onclick="listarContenido();">Ver contenido</button>
<span id="estado"></span>
<div id="herramienta"></div>
</div>
<div id="salida">El contenido del archivo .rar aparecerá aquí...</div>
<script language="JScript">
// Busca 7-Zip o WinRAR en las rutas habituales de instalación
function buscarHerramienta() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var candidatos = [
{ruta: "C:\\Program Files\\7-Zip\\7z.exe", tipo: "7z"},
{ruta: "C:\\Program Files (x86)\\7-Zip\\7z.exe", tipo: "7z"},
{ruta: "C:\\Program Files\\WinRAR\\UnRAR.exe", tipo: "unrar"},
{ruta: "C:\\Program Files (x86)\\WinRAR\\UnRAR.exe", tipo: "unrar"},
{ruta: "C:\\Program Files\\WinRAR\\Rar.exe", tipo: "unrar"},
{ruta: "C:\\Program Files (x86)\\WinRAR\\Rar.exe", tipo: "unrar"}
];
for (var i = 0; i < candidatos.length; i++) {
if (fso.FileExists(candidatos[i].ruta)) return candidatos[i];
}
return null;
}
function mostrarHerramienta() {
var h = buscarHerramienta();
if (h) {
return "Herramienta detectada: " + h.ruta;
}
return "No se detectó 7-Zip ni WinRAR. Instala alguno de los dos para poder listar archivos .rar.";
}
function listarContenido() {
var rutaArchivo = document.getElementById("ruta").value;
var salida = document.getElementById("salida");
var estado = document.getElementById("estado");
if (!rutaArchivo) {
alert("Escribe o selecciona la ruta de un archivo .rar");
return;
}
var fso = new ActiveXObject("Scripting.FileSystemObject");
if (!fso.FileExists(rutaArchivo)) {
alert("El archivo no existe:\n" + rutaArchivo);
return;
}
var herramienta = buscarHerramienta();
if (!herramienta) {
salida.innerText = "No se encontró ninguna herramienta capaz de leer archivos RAR.\n\n" +
"Instala 7-Zip (https://www.7-zip.org) o WinRAR y vuelve a intentarlo.";
return;
}
estado.innerText = "Leyendo...";
salida.innerText = "";
var comando;
if (herramienta.tipo === "7z") {
// 7z l = listar contenido en formato de tabla
comando = '"' + herramienta.ruta + '" l "' + rutaArchivo + '"';
} else {
// UnRAR/Rar lb = listar solo nombres de archivo (bare list)
comando = '"' + herramienta.ruta + '" lb "' + rutaArchivo + '"';
}
var shell = new ActiveXObject("WScript.Shell");
try {
var proceso = shell.Exec(comando);
var resultado = proceso.StdOut.ReadAll();
var errores = proceso.StdErr.ReadAll();
if (resultado.replace(/\s/g, "") === "" && errores.replace(/\s/g, "") !== "") {
salida.innerText = "Error al leer el archivo:\n\n" + errores;
} else {
salida.innerText = resultado;
}
} catch (e) {
salida.innerText = "Ocurrió un error al ejecutar el comando:\n" + e.message;
} finally {
estado.innerText = "";
}
}
</script>
</body>
</html>
ahora una foto de lo que nos muestra
Bueno si quiere probar los código solo copean y pegan en el bloc de notas y aguardan como "visor.hta"
bueno creo que eso es todo saludos Flamer
No hay comentarios.:
Publicar un comentario