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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: 1 ... 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 [398] 399 400 401
3971  Programación / ASM / Pregunta acerca de MessageBox en: 25 Mayo 2013, 22:01 pm
Hola, soy relativamente nuevo en ASM, y tengo una duda sobre el MessageBox.

Código:
.data
  titulo db "Hola"
  cuerpo db "¿Cómo te llamas?"

.code
  push 0
  push titulo
  push cuerpo
  push 0
  call [MessageBoxA]
Bueno, eso es un Messagebox, como veis.
Mis dudas son estas:
  • "MessageBoxA": ¿Porqué es ese A? ¿Hay varias clases de MessageBox?
  • ¿Qué son los 0 que se ponen a la pila?¿Qué funcionamiento tienen dentro del MessageBox?

Gracias adelantadas a todos :D
 
EDITO: ¿Y qué diferencia hay con el invoke MessageBox?
3972  Sistemas Operativos / Windows / Re: [Duda] cosas basicas para hacer en CMD en: 25 Mayo 2013, 10:21 am
http://foro.elhacker.net/programacion_general/iniciacion_batch_con_codigo_autodidacta-t390789.0.html

Ahi tienes batch, que se basa en el cmd para hacer "programillas".

Además, si tecleas "help" en cmd, te pone los comandos básicos, y si pones "<comando> /?" te pone los parámetros de ese comando, y te lo explica.
3973  Programación / Programación General / Re: Iniciación Batch con código "autodidacta" en: 23 Mayo 2013, 21:15 pm
Pues no te costaba nada buscar en la Wikipedia para salir de dudas (Me refiero a cuando te introduciste a la programación), luego pasan estas confusiones de no saber donde postear las cosas.
...
El Scripting se refiere a lenguajes de programación interpretados, es decir, lenguajes que requieren un intérprete para su procesamiento, ejemplos:

Pues bueno, es bueno saberlo xD. Aunque tienes razón, creo que aquí tampoco hace mal, ya que podría ayudar a nuevos a programar :O (y como este foro es más transitado, me sube visitas :D(no))
3974  Programación / Programación General / Re: Iniciación Batch con código "autodidacta" en: 23 Mayo 2013, 18:24 pm
...¿Si no consideras Batch como un lenguaje de programación, porque lo psoteas en el subforo de programación?  :xD

La verdad, no sabía donde ponerlo, y bueno, a mi me pareció una buena iniciación a la programación. (Así empezé yo) Y la verdad nunca supe exactamente que es el Scripting xD
Si un moderador lo ve mejor ahí, que lo haga claro :o

Pues yo sobre los códigos no tengo nada que decir, son muy sencillos/básicos, eso es lo que es y a alguien le servirá, pero...

Cierto, pero esto lo oriento a gente que quiera empezar. A mi parecer, si le gusta en general, querrá seguir aprendiendo programación. (Esto es lo que me motivó a mi xD)

No manejo batch pero parece tener buena pinta lo que comentaste, gracias se deberia decir :D

Pues si quieres, esto va dirigido para ti! xD
No se si eres nuevo en programación, o simplemente no manejas Batch. En cualquier caso, lo veo como un medio "rápido" para escribir un programa sencillo. Ejemplo: Desde el programador de cierre, que ahí está, o yo hice un programa para cambiar el "realmlist" del WoW entre servers, etc. (Esto último sabrán a lo que me refiero quién haya jugado al WoW xD)

En definitiva, gracias a todos :D
3975  Foros Generales / Noticias / Re: Dos resultados sobre números primos nos acercan a la demostración de conjeturas en: 23 Mayo 2013, 16:11 pm
Bueno, tras hacer un programa que me lo desmintió: mi afirmación era falsa: una potencia de 10 + 1 no tiene porque ser primo.
3976  Programación / Programación General / Iniciación Batch con código "autodidacta" en: 22 Mayo 2013, 16:10 pm
Hola a todos.
Vengo a explicarles lo básico de Batch. Además, pongo un código "autodidacta", que se explica por si solo.

Importante: Recomiendo leer el post entero antes de empezar a actuar.

¿Qué es el "BATCH"?
-El batch (archivo de procesamiento por lotes), es un archivo de texto plano, (es decir, sin tamaños de letra, colores, fuentes). Un archivo batch es un archivo con texto. Ese texto son Comandos de "cmd", de "consola de Windows", de "Símbolo del sistema", que, al iniciar el batch (como si fuera un ejecutable), irá "procesando", "ejecutando" esos comandos, en el orden en el que están. Más adelante veréis a que me refiero con más calma.
-Estos comandos, son los mismos que en el Símbolo del sistema. Éste se puede abrir, llendo a Inicio -> Ejecutar, y ahí escribir: cmd. (Solo en Windows)

¿Cómo hago programas en batch?
-Para ello, necesitaremos un editor de texto sencillo, como es el "Wordpad", o el más sencillo a mi parecer, el "Bloc de notas".
-Vamos a cualquier lugar (Escritorio, carpetas...) y creamos un archivo "*.txt" ("*" se pone cuando ahí cabe cualquier palabra, carácter, etc).
-En él, escribiremos el código, más adelante, y le cambiaremos la extensión a "*.bat".
Si no veis las extensiones, al final del post, diré como ponerlas.
-Una vez que se llama "*.bat" (Ej. Hola.bat), habremos hecho que se convierta en el "ejecutable" (no es realmente un ejecutable) que buscamos.

¿Bueno, supongo que queréis empezar no? Pues a ello, que la práctica es más instructiva

Empezemos con el típico "Hola mundo". Lo más fácil que podeis encontrar.
Escribid en el archivo.txt: (También, si se llama "*.bat", le podeis dar a "editar", en vez de a "abrir", y lo abrireis como si fuera un "*.txt")
Código:
echo Hola mundo
pause

Lo más sencillo que podeis encontraros. Probadlo. Extensión .bat, y le dais a abrir. ¿Está? Pues ya sabeis que hace la primitiva "echo", y la "pause".
Lo metemos un par de cosas, que creo que fácilmente entenderéis, tras probarlo:
Código:
@echo off
echo Hola mundo
pause > nul

El "@echo off" hace que no se muestre toda la línea de dirección, ni los comandos.
Ahora os pongo algo parecido, pero que solo funciona en algunos Windows. ¿Porqué? La línea de comandos, al ir quedando en desusos, se le fueron quitando algunas primitivas y funciones.
Código:
@echo off
msg * Hola a todos

Si no os funciona, revisadlo siempre. Pero en este caso, es muy probable que no funciona. En mi Windows 7, por ejemplo, no tenía esta primitiva. (Se pueden descargar e nstalar, pero no viene al caso)

Ahora os pongo 2 comandos nuevos. Nota: Podéis probar los comandos en el "cmd", así no teneis que cambiar constantemente el .txt. De hecho, si ponéis el comando + "/?" (Quedaría Echo /?), os mostrará la ayuda de el comando, y sus parámetros.
Código:
@echo off
goto segundo
echo Hola
pause
exit
:segundo
echo Adios ;)
pause
exit

Código:
@echo off
echo Hola
pause>nul
cls
echo Hola otra vez :O!
pause>nul

"Cls" borra la pantalla, y "goto nombre" va a una "etiqueta" (:nombre)

Bueno, ahora os pongo el código, que explica un par de cosas más. Os recomiendo poner "help" en el cmd para ver muchos más comandos.

Código:
@echo off 
:: esto sirve para que no se muestren las lineas de comando en la ventana del ms-dos.
:: los :: sirven para anotar algo que no quieres que se muestre, como por ejemplo, estas explicaciones que estoy dejando. Se puede poner :: o rem.
echo Hola!!
:: echo ??? sirve para poner un mensaje que se mostrara en la ventana.
echo.
:: echo. sirve para dejar una linea en blanco.
pause
:: al poner pause, el usuario deberá pulsar una tecla para continuar con los comandos, y aparecerá el mensaje que pongas delante (pause el-mensaje) o, por defecto, pulse una tecla para continuar. También se puede poner pause &gt;nul, para que no muestre ningún mensaje (el problema es que el usuario no va a saber que hacer, a no ser que lo especifiques antes, con echo;, por ejemplo.
:1
:: al poner :-algo- (-algo- en este caso es 1) creas una zona, de tal modo que si en algún momento del código, antes o despues de esa zona, pones goto -algo;, el comando volverá a esa zona, repitiendo, o saltando parte del código.
cls
:: el comando cls deja en blanco todo lo que había en la ventana, mensajes, etz.
echo elige que deseas hacer: (pon el número)
echo 1) Apagar, reiniciar.
echo 2) Salir.
echo.
echo.
echo.
set /p numero=Numero que hallas elejido:
:: el comando set; con el parámetro ;/p; crea una variable, donde "numero"; es el nombre de la variable (lo que va después de /p). Lo que hay despues del = es un mensaje, delante del cual el usuario escribirá lo que desée que sea la variable.
if %numero%==1 goto 2
if %numero%==2 goto salir
:: los comandos if %variable%== sirven para decir: si la variable %variable% (siempre entre %x%) es igual a X, iniciar X comando, goto, en este caso.
cls
echo Por favor, poner 1 o 2, según lo que desé.
pause pulse una tecla para volver al menu inicial.
goto 1
:: aquí el comando goto que nos enviará a la &quot;zona&quot; llamada 1.
:salir
exit
:: el comando exit cierra la ventana.
:2
:: otra zona más.
cls
echo apagar (a) o reiniciar (r)?
set /p ar=Letra:
if %ar%==a goto apagar
if %ar%==r goto reiniciar
cls
echo por favor, elija &quot;a&quot; o &quot;r&quot;.
pause
goto 2
:: por supuesto, pueden ser colocados todos los goto que se quieran para ir a la misma zona.
:apagar
cls
echo quiere apagar en X tiempo (t) o directamente (d)?
set /p apagar2=Letra:
if %apagar2%==t goto apagart
if %apagar2%==d goto apagard
cls
echo Por favor, elija una de las opciones.
pause
goto apagar
:apagart
cls
echo bien, especifique el tiempo en segundos en que quiera apagar (máx. 600 min. 1) y prepárese.
set /p tiempoapagar=Tiempo:
shutdown -s -t %tiempoapagar%
:: shutdown sirve para apagar (-s), reiniciar (-r), hibernar, etz. tambien se puede poner variables en partes de los comandos. Si ponemos -t # podremos especificar el tiempo en segundos en que se apagará/reiniciará/etz.
exit
:apagard
echo preparese.
pause pulse una tecla para apagar.
shutdown -s -t 1
:: aunque pongo directamente, pongo -t 1 porque hay versiones de sistemas operativos que, si no pones tiempo o hora (también se puede poner la hora a la que hacer shutdown), pone 30 segundos.
exit
:reiniciar
cls
echo quiere reiniciar en X tiempo (t) o directamente (d)?
set /p reiniciar2=Letra:
if %reiniciar2%==t goto reiniciart
if %reiniciar2%==d goto reiniciard
cls
echo Por favor, elija una de las opciones.
pause
goto reiniciar
:reiniciart
cls
echo bien, especifique el tiempo en segundos en que quiera reiniciar (máx. 600 min. 1) y prepárese.
set /p tiemporeiniciar=Tiempo:
shutdown -r -t %tiemporeiniciar%
exit
:reiniciard
echo preparese.
pause pulse una tecla para reiniciar.
shutdown -r -t 1
exit


2º código:


Siempre al principio de un programa mejor:

Código:
@echo off 
:iniciocontraseña
:: como este código será para poner una contraseña al principio de un código batch, el nombre de esta etiqueta deberá ser algo complejo, para evitar futuros contratiempos
echo Por favor, ponga la contraseña:
echo.
set /p contraseñaprincipio=Contraseña:
:: y el nombre de la variable más complejo aun.
if %contraseñaprincipio%==lacontraseñaquetuquieras goto inicio
cls
echo CONTRASEÑA INCORRECTA
echo vuelva a intentarlo
pausa
goto iniciocontraseña
:inicio
cls
::código cualquiera


Bueno, decir que estos 2 códigos los tengo desde hace mucho, y no los cambié demasiado, por lo que quizás use una terminología diferente en cada uno. No problema. Si lo entendéis, bien. Si no, decidme que no entendéis, o que os gustaría saber, y os contaré.

Aviso: No voy a dar códigos. Os enseñaré a hacerlos si pidiéseis, pero nada más.

Cabe decir, que el Batch NO es un lenguaje de programación. No confundir.
A mi me sirvió mucho el batch para entender las bases de laq programación. Pero mi consejo es que no os estanquéis en el Batch los que queráis progresar en la programación.

Suerte a todos los que estéis con ello :D
3977  Foros Generales / Foro Libre / Re: Dividir por 0 en: 22 Mayo 2013, 14:48 pm
en general cada sistema numerico es un convenio
No, los sistemas numéricos tampoco son convenios, todo numero puede ser mostrado en cualquier sistema numérico mediante el sistema posicional.

Este tema es bastante interesante. A mi punto de vista, ninguno miente.
Oblivi0n explica las cosas, a mi parecer, desde puntos de vista matemáticos. (Corríjeme si me equivoco.)

En cambio, Engelx, lo veo con un punto de vista más "realista". Deja a un lado lo aprendido, y se centra en usar la lógica.

El sistema matemático, como la sintaxis de lengua, o las clases en POO, es algo subjetivo. Nos hemos impuesto esos "convenios", y nos los hemos metido fuertemente en la cabeza, de forma que nos hace ver las cosas de otra manera. Son explicaciones y reglas formuladas para resolver un problema. Pero muchas veces, los problemas tienen varias soluciones.
Cabe decir, una vez más, que este es mi modo de verlo. Pongo esto de forma imperativa, pero no para que os lo toméis a regla.
Lo que dice el autor del post carece de sentido, no debería de darsele mas vueltas.
En eso estoy de acuerdo. Mires como lo mires, no sigue regla alguna. a/0 = "u". ¿U teóricamente sería variable para cada valor de A?
Me quedo con mi teoría de infinito, o, en cualquier caso, de indeterminación.

No es que tu dijeses algo falso, es que tus profesores te han engañado

A mi parecer, el sistema educativo nos va enseñando las cosas en el orden en que se descubrieron. Pero me ha llegado a parecer hasta "mal", que digan con rotundidad que la raiz de -1 NO EXISTE. El no decir "... expresado en números reales." puede dar lugar a confusiones, y otros. Igual, como ya dije, en aspectos como los negativos y tal...
3978  Foros Generales / Foro Libre / Re: Dividir por 0 en: 22 Mayo 2013, 11:19 am
Falso, no existe tal convenio.

Quizás me equivoque, y lo que digo quede en inexpertas palabras de estudiante. Baso lo dicho eneexplicaciones de mis profesores de matemáticas. Quizás sea un convenio de España solo, o de mi instituto, de se así, me disculpo por dar datos falsos. :S

Nunca me gustó el sistema de enseñanza de matemáticas. Primero decir que "no existen números menores que cero." Luego desmentirlo, y así con los numeros imaginarios, y etc.
3979  Foros Generales / Foro Libre / Re: Dividir por 0 en: 21 Mayo 2013, 22:57 pm
0/0 = 1
Se llegó al CONVENIO de que eso sea así. Según que reglas le apliquemos, dará infinito o 1.

Demostración:

- "a/a = 1" : esa es una regla elemental en matemáticas, y totalmente lógica: si repartimos 2 caramelos entre 2 niños, da a 1 caramelo por niño.

- "a/0 = infinito" : otra regla elemental, y también totalmente lógica. ¿Cuán grande debería ser un número para, que multiplicándolo por 0, de otro número distinto de 0? La respuesta, tras pensar un rato: INFINITAMENTE grande. Infinito es un número, es un número que "existe", pero que no se puede calcular. De hecho, infinito, como tal número, tiene sus propiedades. (Ej. Infinito + Infinito = Infinito)

Ahora bien, si A es igual a 0, ¿cuál de esas leyes aplicamos? Podéis poneros del lado de la ley que queráis, que todos tendrémos razón. Es algo "inimaginable".
Por tanto, los matématicos llegaron al convenio, de que esto sea igual a 1. Creando este convenio, ¿realmente estamos ayudando a definir esta división?¿Nos ayudará matemáticamente hablando? La respuesta es relativa, al punto de vista que necesitemos en cada momento, supongo, aunque para mi punt de vista, esto no ayuda. Dejarlo en una indeterminación quedaría más claro.




3980  Foros Generales / Noticias / Re: Dos resultados sobre números primos nos acercan a la demostración de conjeturas en: 21 Mayo 2013, 19:42 pm
Seh los números primos son infinitos, mas la distancia entre uno y otro aumenta de forma mayor a la exponencial, a mi parecer :o
Siempre tuve una duda: (10^K)+1, donde (K E N, K>0), y ^ el símbolo de potencia. (no confundir con XOR)
¿Eso daría siempre un número primo? Ej: 1, 11, 101, 10000000001.
A mi parecer sí, pero no se, no estoy seguro, no un método para calcular en números altos.
Páginas: 1 ... 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 [398] 399 400 401
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines