Top sabios
Casti 60
AlbeR. 56
Mave 46
s4mu 38
2_Face 37
Anferne 35
ReNeGaDo 29
ObiJu 26
RA_MeSiAs 20
Unk 18
Un punto = una mejor respuesta
Más preguntas de SinSa
Ver todas sus preguntas (2)
No hay suficientes valoraciones
Añadiendo

Hola,

Partiendo de los tutoriales:

http://desarrollo.gamersmafia.com/tutoriales/show/753

y

http://desarrollo.gamersmafia.com/tutoriales/show/807

Indicar:

Añadiendo únicamente 2 líneas de código en el evento del botón, provocar que el ordenador deje de responder y posiblemente haya que reiniciarlo.

Hay varias respuestas, sólo la más 'pura' será válida

Regards(las plantas)

Recompensa: 20Dólares GM
Pregunta cancelada
Esta pregunta ha sido cancelada o ha sido resuelta por su autor.
02 Ene 2009, 12:42
#1

Con un simple While-Wend u otra orden repetitiva con una condicion que no se cumple nunca debería bloquearse, por lo menos la aplicación. Lo probaría y te adjuntaria imagenes pero me da pereza meterme con VisualBasic

02 Ene 2009, 12:50
#2

Hola,

La pregunta no es con qué instrucciones

nunca debería bloquearse
, sino qué dos líneas hay que añadir para que
el ordenador deje de responder y posiblemente haya que reiniciarlo.

La respuesta más precisa se llevará los GM's.

No es necesario instalarse nada (salvo que quieras probar que efectivamente se cuelga el pc), simplemente hay que escribir/modificar el código del botón:

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MessageBox.Show(" KPS BANEADO! JOJOJOJOJOJOJO!!!”)

End Sub

Regards(las plantas)

02 Ene 2009, 12:58
#3

#2 Perdona, me dejé una coma y no se entendió bien lo que queria expresar. Después del nunca va una coma, es decir que con una condicion que nunca se cumple se bloquearía.

De igual forma no concreto tanto como pides, no he tocado nunca VisualBasic asi que desconozco el juego de instrucciones que utiliza

05 Ene 2009, 01:14
#4

Hola,

La cosa se complica...

He hecho una chapucilla y almenos he conseguido colgar el VB... pero nada que no se solucione con un ctrl+alt+sup:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MessageBox.Show(" KPS BANEADO! JOJOJOJOJOJOJO!!!")

While MessageBox.Show(" KPS BANEADO! JOJOJOJOJOJOJO!!!")

End While

End Sub

End Class

..se entiende no?.. he intentado que muestre el mensaje siempre que se muestre el mensaje y así crear el bucle.

...mañana sigo probando...

Un saludo

05 Ene 2009, 07:54
#5

Hola,

#3 Concreta, concreta

#4 Sigue en esa línea. Colgar el VB es el primer paso, después tu equipo y por último internet entero ¡Jouajojojojojo!

Regards(las plantas)

05 Ene 2009, 22:52
#6

Hola,

de diferentes maneras... pero solo consigo colgar la aplicación...

Hay pista?

05 Ene 2009, 23:34
#7

#5 Haria algo parecido a lo de #6...

Voy a bajarme el VB y a probar porque al final...

P.D: Seguro que son solo dos lineas de codigo? Poca cosa se puede hacer aparte de lo de #6

06 Ene 2009, 00:11
#8

Hola,

Estáis cerca, pensad en cómo harías para que la aplicación se 'saliese' de su entorno.

Regards(las plantas)

06 Ene 2009, 00:14
#9

El problema es que siempre queda la combinación Ctrl+Alt+Sup, con lo que con 2 líneas de código no logras mucho

Tengo el comprobar que no esté abierto el Control de Procesos y el bloquear la combinación de teclas

Me queda colgar todo el sistema y no el visual sólo

06 Ene 2009, 00:18
#10

Hola,

La pregunta es.. dejando a parte los 'pantallazos', cuándo y por qué el pc deja de responder..

06 Ene 2009, 00:23
#11

El PC deja de funcionar cuando el buffer de memoria se llena o se llama a una función no válida cargando datos innecesarios, el PC se atasca en órdenes que no llevan a ningún sitio y que apuntan a instrucciones que no tienen solución o continuidad en el programa

06 Ene 2009, 00:49
#12

O cuando recibe un numero de operaciones infinitas... (creo yo.. que llevo poco en esto ) que es lo que pensaba hacer yo, pero eso ya son 3 lineas o incluso 4. El while + condicion, instruccion, fin de while... y no se si habria que declarar algo por ahi asi q... Lo de las 2 lineas ya no lo cumple.

06 Ene 2009, 01:45
#13

Hola,

Lo dicho por #12 ha de tenerse en cuenta

06 Ene 2009, 03:13
#14

Pero lo de #12 son operaciones que dan esa situación pero es "recuperable" no te deja el PC totalmente colgado

06 Ene 2009, 14:18
#15

Bueno, he intentado otra cosa pero sigue petando solamente la aplicación

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MessageBox.Show(" KPS BANEADO! JOJOJOJOJOJOJO!!!")

While 340350000021312 + 112312312312313 = 452662312333625

End While

End Sub

End Class

Creo que los tiros van por ahi, pero sigo creyendo que con 2 lineas solo...

06 Ene 2009, 17:13
#16

Hola,

mmm cRasH, lo tuyo bloquea más que lo que yo estaba haciendo. En los mios no se cuelga, se queda bloqueado.

Una observación: funciona igual si pones "while 1 + 1 = 2"

... yo creo que el tema está en el condicionante... osea, en poner uno que bloquee o que llene la memoria... no?

SinSa:-...pensad en cómo harías para que la aplicación se 'saliese' de su entorno

06 Ene 2009, 17:15
#17

Lo tuyo hacia que el mensaje saliese infinitas veces hasta que finalizases la aplicacion manualmente, el mio cuelga la aplicacion pero colgar el PC.... Hm!

06 Ene 2009, 19:36
#18

Hola,

Estáis muy cerca, en serio. Me dan ganas de decirlo.

Voy a dejar esta semana para que le sigáis dando vueltas, pero tenéis la solución delante.

Regards(las plantas)

07 Ene 2009, 01:01
#19

Hm, he probado poniendo una division entre 0 pero sigue bloqueandose solamente la aplicación

A ver que mas se me ocurre...

Editado: Creo que lo he conseguido sin añadir ninguna linea de codigo... He conseguido hacer una foto del pc bloqueado para demostrarlo!

Lo siento, me he contagiado del humor de Sinsa

Editado: Hm, no se veia bien..

Editado:

07 Ene 2009, 07:59
#20

Hola,

#19 Al menos creatividad demuestras

Regards(las plantas)

07 Ene 2009, 11:07
#21

La madre que os pario.........

While es un bucle condicional de mientras......

Mientras (5+1)= 7 ' cabrones que esta condición jamas se cumplirá.......

lo adecuado es dentro del While incrementar, por ejemplo

dim i as integer

While i=5 sino se cumple entra en el bucle

i++ 'incrementamos i esto es lo mimos que i=i+1

wend

Si por lo contrario queréis usar un bucle que ya sabéis cuantos pasos queréis moveros utilizar

la instrucción "for".

07 Ene 2009, 15:29
#22

#21 Tranquilo Xaver, eso lo sabemos . El problema es que solo se pueden añadir 2 lineas de codigo. Si has de declarar la variable y añadir instruccion al bucle ya son más de 2

12 Ene 2009, 12:28
#23

Hola,

Bueno, parece que la pregunta era demasiado difícil, pese a que he dado varias pistas para lograrlo.

En #8 y #10 os doy claves importantes. Colgar la aplicación es fácil, cualquier bucle infinito lo consigue (habéis puesto algún ejemplo). Pero para colgar el pc hay que hacer que la aplicación se salga de sí misma provocando que se consuman los recursos que el pc tiene para las demás aplicaciones que están corriendo en él.

¿Cómo hacer ésto? ya lo comenté en los tutos previos:

WshShell.Exec("APLICACION")

Esto fuerza al sistema operativo a que arranque una nueva aplicación.

De manera que si yo genero una llamada a una aplicación infinitas veces, reviento el pc.

While True '<---- bucle infinito

WshShell.Exec("APLICACION")

End While

Esta solución (o variantes con otros modos de bucle) la habría dado como válida (se añaden tres líneas pero una se sutituye por la existente del messagebox). Pero realmente para que funcione hay que declarar el shell de sist. operativo (Dim WshShell = CreateObject("WScript.Shell")), por lo que realmente no es la solución pura.

La más pura, que desencadena en una de las paradojas de la programación más curiosas e interesantes, se basa en el concepto de RECURSIVIDAD (¡Leñe, la recursividad!, cómo no había caído..) jejejeje.. seguro que alguno ha oído hablar de la solución de las torres de Hanoi.. google si no.

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Button1_Click_1(Me, AcceptButton)

End Sub

Una sóla línea, y se muere el pc. He de decir que si lo pilláis a tiempo, podéis evitar el reinicio, pero yo no aconsejo probarlo con muchas aplicaciones abiertas ni muchas veces.

A ver si alguien es capaz de 'explicar' qué es lo que provoca esta instrucción.

Bueno, os deseo mejor suerte la próxima vez.

Los gm's los añadiré a la próxima pregunta

Regards(las plantas)

12 Ene 2009, 13:10
#24

Pffffff Muy buena SinSa, muy interesante y para nada habia pensado en ello.

A ver la proxima que tal... Y lo de la explicación... tengo una cierta idea pero no quiero soltar una barbaridad

12 Ene 2009, 13:49
#25

tengo una cierta idea pero no quiero soltar una barbaridad

Se valiente, no creo que ganes en barbaridades a....... esto.... no creo que ganes en barbaridades.

12 Ene 2009, 20:10
#26

Hola a todos,

Antes de nada, comentar que de visualBasic lo máximo que he hecho ha sido toquetear el editor del MS office (alt + f11)... osea... graba macro.. edita y asigna (os paso unos tutos que me pasaron hace mucho tiempo: perso.wanadoo.es/gabucio/Macros_Excel.zip)..

Así que de la primera solución no me entero mucho... pero en la segunda me da un error:

Un saludo,

PD: SinSa, muy interesante lo de las torres de Hanoi, contigo siempre se aprende algo nuevo.

15 Ene 2009, 16:27
#27

Hola,

#26 ¿Has ejecutado el código desde el VB o desde el ejecutable compilado?

Para la primera opción, en el código del botón escribe:

Dim WshShell = CreateObject("WScript.Shell")

While True '<---- bucle infinito

WshShell.Exec("calc")

End While

Para la segunda simplemente:

Button1_Click_1(Me, AcceptButton)

Y ya te funciona.

Regards(las plantas)


y comenta.

 
iniciar sesión