elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Scripting / Re: Batch avanzado en: 21 Diciembre 2008, 01:49 am
El primero es un código de Leo que trabaja usando nircmd.exe una utilidad para la consola con muchas funciones.
El segundo, y creo hasta el final son códigos de BlackHack, el primero crea una macro con doskey que se cargará cada vez que se abra el cmd.exe sin la opción /d pues cmd.exe lee la clave AutoRun de "HKLM\Software\Microsoft\Command Processor" el objetivo de esa macro es que cuando el usuario escriba netstat.exe ejecute otro programa llamado netstat.com ¿con qué fin? XD
El tercero es un código con funciones matemáticas: calcular factorial, calcular raiz, porcentaje, logaritmo
El cuarto crea un ejecutable de 16 bit creado con netsend de jim tucker, que al ejecutarlo crea otro ejecutable, que ni idea de que será, pero cuidado con lo que ejecutas.
El quinto es un conversor de caracteres para lenguage batch, le faltan algunos carácteres como la ü Ü

Yo no considero que sirdarckcat explique mal, tal vez tu comprensión de lectura no es buena, sin embargo, puedes leer ss64.com/nt
Sobre lo de usar funciones, una cosa es entender cómo funcionan y otra cosa es aprender a usarlas, que consiste simplemente en llamarlas, y pasarle los parámetros requeridos que generalmente se indican en la ayuda de la función.


12  Programación / Scripting / Re: Music.bat en: 20 Diciembre 2008, 05:37 am
Excelente trabajo Leo.
13  Programación / Scripting / Re: codigo para pausar batch en: 16 Diciembre 2008, 23:47 pm
Está bueno,

yo hice uno la otra vez: http://sites.google.com/site/cmdbatch/funcion-sleep

Tu función si le pasan 0 o un número negativo se queda pegada.
14  Programación / Scripting / Re: Descubrimiento: Nueva forma de poner comentarios. en: 14 Diciembre 2008, 02:11 am
Yo diría que el resultado es prácticamente igual, en el sentido de que no ejecutas, pero con tu método cargas cosas en memoria, aunque nunca las ejecutarás, pero de que las cargas, las cargas.

En cuanto a los :: yo los considero verdaderos comentarios, pues cmd.exe no lee las líneas que comienzen con eso, y se supone que los comentarios, son comentarios, y no deberían mostrarse al ejecutar los scripts.

Ejemplo
Código:
:: dos puntos, uno arriba y otro abajo.
rem remark comentario
pause
En este ejemplo se muestra remark comentario, pero el "dos puntos, uno arriba y otro abajo." no, si se desea que no muestre con el rem al igual que con los :: se debe usar @rem pero aún no es igual a :: pues cmd.exe con rem lee la línea.

Por ejemplo, esto funciona:
Código:
if 1==1 (
rem
)
pause
pero esto no:
Código:
if 1==1 (
::
)
pause
pues considera que el cuerpo del if no tiene nada.

Entonces concluyo que en programación existen similitudes, pero no son lo mismo si comenzamos a hilar finito. Al igual que cd /d consigue el efecto de pushd, pero con la diferencia de que pushd va guardando en memoria la ruta del directorio anterior, es decir, ocupa memoria, y también sirve para abrir rutas de red.

En realidad los sinónimos no existen.
15  Programación / Scripting / Re: Descubrimiento: Nueva forma de poner comentarios. en: 13 Diciembre 2008, 22:44 pm
Estuve analizando que (

no es un comentario propiamente tal, porque con esa orden comienzas a cargar lo que venga a continuación del ( y cuando encuentre el ) ejecutará lo que hayas puesto, pero como nunca llega a encontrar el ) y encuentra el carácter EOF, la ejecución no se realiza, pero si se cargó en memoria.

Así también podríamos considerar comentarios cosas como estas:

Código:
goto :eof
estos son comentarios finales

Código:
if pepsi==cocacola (
esto son
comentarios
)

Lo del ( es lo mismo que:

Código:
@^
ec^
ho^
 ^
hol^
a
@^
pau^
se^

si guardas ese código en un bat, y colocas un salto de línea al final se ejecutará, pero, si el código lo terminas justo en el^ y lo guardas, no ejecutarás nada, en este caso, la ejecución de los datos se hace en el salto de línea, y con ^ indico que ingresaré más comandos, ahora si te fijas si le borras el ^ al se, coloques o no salto de línea en el archivo, lo ejecutarás.

Saludos.

16  Programación / Java / Re: Aplicaciones de escritorio y JAPPLETS en: 12 Diciembre 2008, 05:29 am
los applets son para los navegadores.

debes hacer una clase que herede de Frame (java.awt) o JFrame (javax.swing), luego a esa clase le vas añadiendo componentes.

Aquí tienes buena información: http://java.sun.com/docs/books/tutorial/uiswing/index.html

cuando compilas código java a bytecode, te queda un archivo o más archivos, si tu clase contiene clases anónimas y/o internas de extensión .class

17  Programación / Scripting / Login.btm Script para 4DOS en: 9 Diciembre 2008, 01:32 am
Les dejo mi primer script para 4dos.
Lo que hace es simular una autenticación, al presionar las teclas no se muestra, al igual que en las autenticaciones en sistemas unix, unix like. Le limité el rango de teclas presionadas al abecedario, los numeros, y el backspace.

Aquí pueden verlo en acción: http://4dos.net84.net/ (necesitan tener instalado java en su computador), al ingresar la palabra "carlos", se autentifica y se procede a ejecutar el juego del tic tac toe (otro script para 4dos, que no hice yo porque está muy bueno xD). Recomiendo presionar "Type key", para entrar en el foco de la pantalla.

Login.btm

Código:
@UNALIAS *
@ECHO OFF
@CLS

:INI
GOSUB LOGIN PASSWORD
IF NOT "carlos"=="%PASSWORD" (
ECHO AUTHENTIFICATION FAILED
GOTO INI
)
ECHO.
TICTACTO.BTM
GOTO :EOF

:LOGIN [VARIABLENAME]
::Login function for 4DOS 7.50
::version:0.1
::author:Carlos.
ECHO.
ECHOS ENTER PASSWORD:
IF DEFINED CHAR UNSET CHAR
IF DEFINED %VARIABLENAME UNSET %VARIABLENAME

DO WHILE NOT DEFINED CHAR
INKEY /P /X /K"0123456789abcdefghijklmnopqrstuvwxyz[Bksp][Enter]" %%CHAR

IFF "%@ASCII[%CHAR]" EQ "8" THEN
    SET %VARIABLENAME=%@INSTR[0,%@EVAL[%@LEN[%[%VARIABLENAME]]-1],%[%VARIABLENAME]]
ELSEIFF ("%CHAR" GE "A" .AND. "%CHAR" LE "Z") .OR. ("%CHAR" GE "0" .AND. "%CHAR" LE "9") THEN
    SET %VARIABLENAME=%@INSERT[%@LEN[%[%VARIABLENAME]],%CHAR,%[%VARIABLENAME]]
ELSE
    LEAVE
ENDIFF
UNSET CHAR
ENDDO
IF NOT DEFINED %VARIABLENAME GOTO LOGIN
RETURN

18  Programación / Scripting / Re: El poder del ocio :D en: 9 Diciembre 2008, 00:11 am
MxPower, ahora tu reloj muestra el día de la semana.



Código:

@echo off
::Version 2 modificada por Carlos
mode con cols=49
mode con lines=16
color 0a
goto HORA1

REM ---------------------------------------------------------------------------

:HORA1
cls
call:dia
call:getTime
title %hour%:%minute%
if %hour% lss 10 (set H1=0) else (set H1=%hour:~0,1%)
if %H1%==0 (goto UHOR-0)
if %H1%==1 (goto UHOR-1)
if %H1%==2 (goto UHOR-2)

:UHOR-0
set "UNOHRU= _ "
set "DOSHRU=³ ³"
set "TREHRU=³_³"
goto HORA2

:UHOR-1
set "UNOHRU=   "
set "DOSHRU= ³ "
set "TREHRU= ³ "
goto HORA2

:UHOR-2
set "UNOHRU= _ "
set "DOSHRU= _³"
set "TREHRU=³_ "
goto HORA2

REM ---------------------------------------------------------------------------

:HORA2
call:getTime
if %hour% lss 10 (set H2=%hour%) else (set H2=%hour:~1,1%)
if %H2%==0 (goto DHOR-0)
if %H2%==1 (goto DHOR-1)
if %H2%==2 (goto DHOR-2)
if %H2%==3 (goto DHOR-3)
if %H2%==4 (goto DHOR-4)
if %H2%==5 (goto DHOR-5)
if %H2%==6 (goto DHOR-6)
if %H2%==7 (goto DHOR-7)
if %H2%==8 (goto DHOR-8)
if %H2%==9 (goto DHOR-9)

:DHOR-0
set "UNOHRD= _ "
set "DOSHRD=³ ³"
set "TREHRD=³_³"
goto MINU1

:DHOR-1
set "UNOHRD=   "
set "DOSHRD= ³ "
set "TREHRD= ³ "
goto MINU1

:DHOR-2
set "UNOHRD= _ "
set "DOSHRD= _³"
set "TREHRD=³_ "
goto MINU1

:DHOR-3
set "UNOHRD= _ "
set "DOSHRD= _³"
set "TREHRD= _³"
goto MINU1

:DHOR-4
set "UNOHRD=   "
set "DOSHRD=³_³"
set "TREHRD=  ³"
goto MINU1

:DHOR-5
set "UNOHRD= _ "
set "DOSHRD=³_ "
set "TREHRD= _³"
goto MINU1

:DHOR-6
set "UNOHRD= _ "
set "DOSHRD=³_ "
set "TREHRD=³_³"
goto MINU1

:DHOR-7
set "UNOHRD= _ "
set "DOSHRD=  ³"
set "TREHRD=  ³"
goto MINU1

:DHOR-8
set "UNOHRD= _ "
set "DOSHRD=³_³"
set "TREHRD=³_³"
goto MINU1

:DHOR-9
set "UNOHRD= _ "
set "DOSHRD=³_³"
set "TREHRD= _³"
goto MINU1

REM ---------------------------------------------------------------------------

:MINU1
call:getTime
if %minute% lss 10 (set M1=0) else (set M1=%minute:~0,1%)
if %M1%==0 (goto UMIN-0)
if %M1%==1 (goto UMIN-1)
if %M1%==2 (goto UMIN-2)
if %M1%==3 (goto UMIN-3)
if %M1%==4 (goto UMIN-4)
if %M1%==5 (goto UMIN-5)

:UMIN-0
set "UNOMIU= _ "
set "DOSMIU=³ ³"
set "TREMIU=³_³"
goto MINU2

:UMIN-1
set "UNOMIU=   "
set "DOSMIU= ³ "
set "TREMIU= ³ "
goto MINU2

:UMIN-2
set "UNOMIU= _ "
set "DOSMIU= _³"
set "TREMIU=³_ "
goto MINU2

:UMIN-3
set "UNOMIU= _ "
set "DOSMIU= _³"
set "TREMIU= _³"
goto MINU2

:UMIN-4
set "UNOMIU=   "
set "DOSMIU=³_³"
set "TREMIU=  ³"
goto MINU2

:UMIN-5
set "UNOMIU= _ "
set "DOSMIU=³_ "
set "TREMIU= _³"
goto MINU2

REM ---------------------------------------------------------------------------

:MINU2
call:getTime
if %minute% lss 10 (set M2=%minute%) else (set M2=%minute:~1,1%)
if %M2%==0 (goto DMIN-0)
if %M2%==1 (goto DMIN-1)
if %M2%==2 (goto DMIN-2)
if %M2%==3 (goto DMIN-3)
if %M2%==4 (goto DMIN-4)
if %M2%==5 (goto DMIN-5)
if %M2%==6 (goto DMIN-6)
if %M2%==7 (goto DMIN-7)
if %M2%==8 (goto DMIN-8)
if %M2%==9 (goto DMIN-9)

:DMIN-0
set "UNOMID= _ "
set "DOSMID=³ ³"
set "TREMID=³_³"
goto FECHA

:DMIN-1
set "UNOMID=   "
set "DOSMID= ³ "
set "TREMID= ³ "
goto FECHA

:DMIN-2
set "UNOMID= _ "
set "DOSMID= _³"
set "TREMID=³_ "
goto FECHA

:DMIN-3
set "UNOMID= _ "
set "DOSMID= _³"
set "TREMID= _³"
goto FECHA

:DMIN-4
set "UNOMID=   "
set "DOSMID=³_³"
set "TREMID=  ³"
goto FECHA

:DMIN-5
set "UNOMID= _ "
set "DOSMID=³_ "
set "TREMID= _³"
goto FECHA

:DMIN-6
set "UNOMID= _ "
set "DOSMID=³_ "
set "TREMID=³_³"
goto FECHA

:DMIN-7
set "UNOMID= _ "
set "DOSMID=  ³"
set "TREMID=  ³"
goto FECHA

:DMIN-8
set "UNOMID= _ "
set "DOSMID=³_³"
set "TREMID=³_³"
goto FECHA

:DMIN-9
set "UNOMID= _ "
set "DOSMID=³_³"
set "TREMID= _³"
goto FECHA

REM ---------------------------------------------------------------------------

:FECHA
call:getDate
if %day% lss 10 (set DIA=0%day%) else (set DIA=%day%)
set MES=%month%
set ANO=%year%
goto DEFMES

:DEFMES
if %MES%==1 (set "MFP=   Enero  ")
if %MES%==2 (set "MFP=  Febrero ")
if %MES%==3 (set "MFP=   Marzo  ")
if %MES%==4 (set "MFP=   Abril  ")
if %MES%==5 (set "MFP=   Mayo   ")
if %MES%==6 (set "MFP=   Junio  ")
if %MES%==7 (set "MFP=   Julio  ")
if %MES%==8 (set "MFP=  Agosto  ")
if %MES%==9 (set "MFP=Septiembre")
if %MES%==10 (set "MFP= Octubre  ")
if %MES%==11 (set "MFP=Noviembre ")
if %MES%==12 (set "MFP=Diciembre ")

:RELOJ
echo.
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º²²²²²²²²²²±ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿±²²²²²²²²²²±º
echo  º²MxPower²²±³ %UNOHRU% %UNOHRD%   %UNOMIU% %UNOMID%  ³±²²²²²²²²²²±º
echo  º²²²²²²²²²²±³ %DOSHRU% %DOSHRD% . %DOSMIU% %DOSMID%  ³±²²²²²²²²²²±º
echo  º²²²²²²²²²²±³ %TREHRU% %TREHRD% . %TREMIU% %TREMID%  ³±²²²²²²²²²²±º
echo  º²²²²²²²²²²±³                    ³±²²²²²²²²²²±º
echo  º²²²²²²²²²²±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±²²²²²²²²²²±º
echo  º²²²²²²²²²²±±±±±±±±±±±±±±±±±±±±±±±±²²²²²²²²²²±º
echo  º²²²²²°ÚÄÄÄ¿±°ÚÄÄ¿±°ÚÄÄÄÄÄÄÄÄÄÄ¿±°ÚÄÄÄÄ¿±²²²²±º
echo  º²²²²²°³%DIASEMANA:~0,3%³±°³%DIA%³±°³%MFP%³±°³%ANO%³±²²²²±º
echo  º²²²²²°ÀÄÄÄÙ±°ÀÄÄÙ±°ÀÄÄÄÄÄÄÄÄÄÄÙ±°ÀÄÄÄÄÙ±²²²²±º
echo  º±±±±²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±±±±º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo     ÀÄÄÄÄÄÙ                           ÀÄÄÄÄÄÙ
for /f "delims=:,-/ tokens=1-2,5-7" %%a in ("%time%-%date%") do set th1=%%a%%b%%c%%d%%e
:upd
for /f "delims=:,-/ tokens=1-2,5-7" %%a in ("%time%-%date%") do set th2=%%a%%b%%c%%d%%e
if not %th1%==%th2% (goto HORA1) else (goto upd)

::getDate-- crea 3 variables conteniendo el dia, el mes y el año : %%day%% %%month%% %%year%%
::Version: 1.1
::$author: Carlos
:getDate
if [%1]==[] (for /f "tokens=1-3 delims=-/" %%a in ("%date%") do (call :getDate %%a %%b %%c))
if not [%1]==[] (
set /a day=1%1-100
set /a month=1%2-100
set /a year=%3
)
goto:eof

::getTime-- crea 3 variables conteniendo la hora, el minuto y el segundo : %%hour%% %%minute%% %%second%%
::Version: 1.0
::$author: Carlos
:getTime
if [%1]==[] (for /f "tokens=1-3 delims=:," %%a in ("%time%") do (call :getTime %%a %%b %%c))
if not [%1]==[] (
set /a hour=%1
set /a minute=1%2-100
set /a second=1%3-100
)
goto:eof

 
:dia
::dia -- muestra el nombre del dia actual.
::Version: 1.6
::$author: Carlos
call:getDate
if [%year%] geq [1900] (if [%year%] leq [1999] (set marcador=3))
if [%year%] geq [2000] (if [%year%] leq [2099] (set marcador=2))
if [%year:~2,1%]==[0] (set /a year="%year:~3,3%") else (set /a year="%year:~2,3%")
set /a doomsday="((%year% / 12) + (%year% %% 12) + ((%year% %% 12) / 4)) %% 7 + %marcador%"
call :bisiesto %year%
if /i [%bisiesto%]==[false] (
set doomsday_1=17
set doomsday_2=14
) else (
set doomsday_1=18
set doomsday_2=15
)
set doomsday_3=14
set doomsday_4=18
set doomsday_5=16
set doomsday_6=13
set doomsday_7=18
set doomsday_8=15
set doomsday_9=12
set doomsday_10=17
set doomsday_11=14
set doomsday_12=12
call :set /a key=%%doomsday_%month%%%
set /a dia=%doomsday%
if %day% gtr %key% (
set /a diferencia="%day% - %key%"
set op=+
) else (
if %day% lss %key% (
set /a diferencia="%key% - %day%"
set op=-
) else (
set /a diferencia=1
set op=*)
)
set /a cont=0
:loopp
set /a cont +=1
set /a dia="%dia% %op% 1"
if %dia% equ 8 (set /a dia=1)
if %dia% equ 0 (set /a dia=7)
if %cont% neq %diferencia% (goto loopp)
if [%dia%]==[1] (set diaSemana=Lunes) else (
if [%dia%]==[2] (set diaSemana=Martes) else (
if [%dia%]==[3] (set diaSemana=Miercoles) else (
if [%dia%]==[4] (set diaSemana=Jueves) else (
if [%dia%]==[5] (set diaSemana=Viernes) else (
if [%dia%]==[6] (set diaSemana=Sabado) else (
if [%dia%]==[7] (set diaSemana=Domingo) ))))))
goto :eof

:set
set %*
goto :eof

:bisiesto
::$author: Carlos
set bisiesto=false
set /a mod1="%1 %% 4"
set /a mod2="%1 %% 100"
set /a mod3="%1 %% 400"
if [%mod1%]==[0] (if not [%mod2%]==[0] (set bisiesto=true))
if [%mod3%]==[0] (set bisiesto=true)
goto :eof

Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines