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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6
1  Programación / ASM / Re: Duda con el modulo en asm en: 12 Abril 2017, 09:50 am
Creo que es porque la division se hace usando AX completo.
Pon AH = 0 antes de dividir a ver...
Saludos
2  Programación / .NET (C#, VB.NET, ASP) / Re: Codigo QR en: 12 Abril 2017, 09:38 am
Supongo que esos códigos QR son peticiones a bases de datos.
Si es mucho código, pón la direccion donde lo encontraste y ayudarás a otros. Eso de las bases de datos parece ser una locura.
Yo no entiendo de bases de datos, pero sin el código quizás nadie te conteste algo mejor que esto:

Por lo que he entendido y sin conocer ese form que dices, ya sea .NET o VB6, se me ocurre que el modo facil es insertar ese form en tu programa como un form normal (por ejemplo Form2), y cuando quieras generar un código de esos, cargas los valores en las casillas del form2 desde tu programa principal, ejecutas el boton "generar" que traiga el form2 y recoges el resultado de donde te aparezca.
El form2 se cargará en el momento que introduzcas el primer valor en una de sus casillas. Para que no se vea nunca el form2, ya que lo vas a usar desde código, solo tienes que hacerlo invisible en su evento Load y ya esta.

Espero haberme explicado... mas o menos.

Suerte
3  Programación / .NET (C#, VB.NET, ASP) / Re: en el CLR, por que? en: 31 Marzo 2017, 13:07 pm
En primer lugar esto parece ser .NET
Lenght equivale a la longitud.
La variable a puede ser una cadena de texto, una matriz (seguramente esto ultimo), o quien sabe.
Si es una cadena de texto con el bucle for next recorres sus caracteres.
Si es una matriz, recorres sus elementos.
a(i) irá asumiendo el valor adecuado a cada vuelta.
b es otra de lo mismo con la misma cantidad de elementos que a.
4  Programación / .NET (C#, VB.NET, ASP) / Re: PREGUNTA TONTA.. en: 31 Marzo 2017, 11:44 am
Step indica cuanto aumenta la variable i a cada vuelta.

For i = 0 To a.Length - 1
Hace un bucle desde 0 hasta el valor (a.length-1) de 1 en 1 porque por defecto se asume que step es 1
i vale 0, luego vale 1, luego 2, etc... hasta i=(a.length-1)

For i = 0 To a.Length step 1
Esto hace un bucle desde 0 hasta el valor (a.length) de 1 en 1 porque tu usas el comando step para asignarle valor 1
i vale 0, luego vale 1, luego 2, etc... hasta i=(a.length)

For i = 0 To a.Length step 2
Esto saltaria de 2 en 2
i valdria 0, luego 2, luego 4, etc... hasta el valor mas cercano a a.length sin superarlo.

Si quieres hacer un bucle al reves, donde el valor de i vaya desde a.length hasta 0, pondrias:
For i = a.Length to 0 step -1

For i = 0 To a.Length - 1
For i = 0 To a.Length - 1 step 1
Estas dos lineas hacen lo mismo.
En la primera se asume que step es 1.
En la segunda se obliga a que step sea 1 (algo que no es necesario).

Saludos
5  Programación / Programación Visual Basic / Re: como ocultar números en un juego en: 6 Septiembre 2016, 11:37 am
Me aburro mucho, así que aquí tienes un ejemplo de tu juego con explicaciones.

Necesitas un command button llamado command1 y una matriz de controles Image de 6 elementos llamado Image1, (osea, pones un control Image en la ventana. lo copias y lo pegas 5 veces mas, y cuando te pregunte si quieres crear una matriz de controles le dices que si.)

Y luego pegas este code en el form:

Código
  1. Option Explicit
  2.  
  3. Dim Numeros(5) As Long
  4. Dim Imagen(5) As String
  5. Dim Descubiertas(5) As Long
  6. Dim Tachadas(5) As Long
  7. Dim ImagenReverso As String
  8. Dim Seguir As Long
  9. Dim Intentos As Long
  10. Const MaxIntentos = 5
  11.  
  12. Private Sub Form_Load()
  13.  Dim F As Long
  14.  ' definimos los ficheros de imagenes
  15.  Imagen(0) = "Imagen1.jpg"
  16.  Imagen(1) = "Imagen2.jpg"
  17.  Imagen(2) = "Imagen3.jpg"
  18.  ImagenReverso = "ImagenReverso.jpg"
  19.  Command1.Caption = "Nueva Partida" ' ponemos el titulo del boton
  20.  For F = 0 To 5
  21.    Image1(F).Stretch = True ' esto sirve para que la imagen se adapte al recuadro del control Image
  22.  Next F
  23.  Randomize Timer
  24.  ' comenzamos una nueva partida
  25.  NuevaPartida
  26. End Sub
  27.  
  28. Private Sub NuevaPartida()
  29.  Dim F As Long
  30.  Dim F2 As Long
  31.  Dim Numero As Long
  32.  ' cargamos los valores aleatorios de alguna manera...
  33.  For F = 0 To 5
  34.    Numeros(F) = 0
  35.  Next F
  36.  For F = 1 To 2
  37. Repite:
  38.    Numero = Int(Rnd * 6)
  39.    If Numeros(Numero) = 0 Then
  40.      Numeros(Numero) = 0
  41.    Else
  42.      GoTo Repite
  43.    End If
  44.  Next F
  45.  For F = 1 To 2
  46. Repite2:
  47.    Numero = Int(Rnd * 6)
  48.    If Numeros(Numero) = 0 Then
  49.      Numeros(Numero) = 1
  50.    Else
  51.      GoTo Repite2
  52.    End If
  53.  Next F
  54.  For F = 1 To 2
  55. Repite3:
  56.    Numero = Int(Rnd * 6)
  57.    If Numeros(Numero) = 0 Then
  58.      Numeros(Numero) = 2
  59.    Else
  60.      GoTo Repite3
  61.    End If
  62.  Next F
  63.  
  64.  ' inicializamos
  65.  Intentos = 0
  66.  Seguir = -1
  67.  For F = 0 To 5
  68.    Image1(F).Enabled = True
  69.    Image1(F).Picture = LoadPicture(ImagenReverso) ' cargamos los reversos de las cartas
  70.    Descubiertas(F) = 0 ' todas estan sin descubrir
  71.    Tachadas(F) = 0 ' no hay parejas tachadas
  72.  Next F
  73. End Sub
  74.  
  75. Private Sub Image1_Click(Index As Integer)
  76.  ' al hacer click
  77.  Static EnUso As Long
  78.  Dim F As Long
  79.  Dim Contador As Long
  80.  ' si la imagen esta descubierta o tachada por haber encontrado la pareja no hacemos nada y salimos
  81.  If Descubiertas(Index) <> 0 Or Tachadas(Index) <> 0 Then Exit Sub
  82.  
  83.  ' si esta sin descubrir...
  84.  ' si estamos en una pausa le metemos prisa a la sub EsperaMiliseg.
  85.  
  86.  
  87.  ' si esta sub esta en uso o ya hemos vuelto a pinchar otra imagen salimos.
  88.  If EnUso = 1 Then
  89.    If Seguir = -1 Then Seguir = Index
  90.    Exit Sub
  91.  End If
  92.  ' si no estaba en uso avisamos de que ahora si lo esta
  93.  EnUso = 1
  94.  
  95.  ' nos ponemos a la espera de otra pulsacion
  96.  Seguir = -1
  97.  
  98.  ' marcamos la imagen como descubierta
  99.  Descubiertas(Index) = 1
  100.  ' cargamos la imagen que hay que mostrar
  101.  Image1(Index).Picture = LoadPicture(Imagen(Numeros(Index)))
  102.  
  103.  ' hacemos una pausa para que se muestre la imagen
  104.  EsperaMiliseg 1000
  105.  
  106.  ' comprobamos si hay parejas o hemos acabado
  107.  Comprobar
  108.  
  109.  ' y salimos
  110.  EnUso = 0
  111.  
  112.  ' si le metimos prisa a la pausa era porque habiamos pinchado
  113.  ' en una imagen, asi que pinchamos la imagen de nuevo
  114.  If Seguir <> -1 Then
  115.    Image1_Click (Seguir)
  116.    Seguir = -1
  117.  End If
  118. End Sub
  119.  
  120. Sub EsperaMiliseg(ByVal Tiempo As Double)
  121.  Dim HoraActual As Double
  122.  On Local Error Resume Next
  123.  Seguir = -1
  124.  HoraActual = Timer
  125.  Do Until (Timer >= HoraActual + (Tiempo / 1000)) Or (Seguir = 1)
  126.    DoEvents
  127.  Loop
  128.  On Local Error GoTo 0
  129. End Sub
  130.  
  131. Private Sub Comprobar()
  132.  Dim F As Long
  133.  Dim Pic1 As Long
  134.  Dim Contador As Long
  135.  Pic1 = -1
  136.  For F = 0 To 5
  137.    ' si una imagen esta descubierta y no esta tachada por haber encontrado ya pareja...
  138.    If Descubiertas(F) <> 0 And Tachadas(F) = 0 Then
  139.      ' la contamos...
  140.      Contador = Contador + 1
  141.      ' y nos guardamos su indice.
  142.      If Pic1 = -1 Then
  143.        Pic1 = F
  144.      Else
  145.        ' si ya tenemos guardado un indice, es que esta es la segunda carta descubierta.
  146.        ' si las 2 cargas son iguales...
  147.        If Numeros(F) = Numeros(Pic1) Then
  148.          ' las tachamos...
  149.          Tachadas(F) = 1
  150.          Tachadas(Pic1) = 1
  151.          ' avisamos del acierto con un beep.
  152.          BeepAcierto
  153.        Else
  154.          ' si son diferentes avisamos del fallo.
  155.          BeepFallo
  156.        End If
  157.        ' y dejamos de buscar porque ya hemos encontrado 2 descubiertas.
  158.        Exit For
  159.      End If
  160.    End If
  161.  Next F
  162.  
  163.  ' comprobamos las descubiertas
  164.  For F = 0 To 5
  165.    If Descubiertas(F) = 0 Then Exit For
  166.  Next F
  167.  ' si hemos descubieto ya todas las cartas hemos ganado
  168.  If F = 6 Then
  169.    MsgBox "Finalizado. Has ganado."
  170.  Else
  171.    ' si no estan todas descubiertas...
  172.    If Contador = 2 Then
  173.      ' contamos los intentos.
  174.      Intentos = Intentos + 1
  175.      ' si ya has llegado al maximo de intentos pierdes
  176.      If Intentos = MaxIntentos Then
  177.        MsgBox "No te quedan intentos. Has perdido."
  178.        ' deshabilitamos los Image para no seguir procesando ordenes.
  179.        For F = 0 To 5
  180.          Image1(F).Enabled = False
  181.        Next F
  182.        ' y salimos.
  183.        GoTo FinSub
  184.      End If
  185.  
  186.      ' si no era el ultimo intento...
  187.      For F = 0 To 5
  188.        ' volteamos las cartas que no estan tachadas y seguimos.
  189.        If Tachadas(F) = 0 Then
  190.          Image1(F) = LoadPicture(ImagenReverso)
  191.          Descubiertas(F) = 0
  192.        End If
  193.      Next F
  194.    End If
  195.  End If
  196.  
  197. FinSub:
  198.  
  199. End Sub
  200.  
  201. Private Sub BeepAcierto()
  202.  Beep
  203. End Sub
  204.  
  205. Private Sub BeepFallo()
  206.  Beep
  207. End Sub
  208.  
  209. Private Sub Command1_Click()
  210.  NuevaPartida
  211. End Sub
  212.  
  213.  

No es una obra de arte pero funciona.

Saludos



 Sorry, la línea 125 (en la sub EsperaMiliseg) debería ser así:

Código
  1. Do Until (Timer >= HoraActual + (Tiempo / 1000)) Or (Seguir <> -1)
  2.  
Si no, no le metemos prisa al timer :P

Resaludos

MOD EDIT: A estas alturas deberías saber que no debes hacer doble post. Edita tu mensaje.

Pido perdón, el botón Modificar es tan pequeño que creo que no lo había visto nunca.
Siempre busco abajo entre los botones grandes (y me cabreo por no poder editar :) )
6  Programación / Programación Visual Basic / Re: (AYUDA) Crear un ¿auto-tip? en: 17 Julio 2016, 19:45 pm
El caso es que las pulsaciones automáticas dan muchos problemas.
Ver la tecla pulsada es facil, pero pulsar una tecla en otro programa no suele serlo.

Esto sería la base de tu programa:

Puedes probarlo en un nuevo proyecto con 2 timer y un textbox (que puse para las pruebas).

Después de probarlo anula la línea que pone "Text1.SetFocus" y pruebalo, pero no te va a mandar teclas a otros programas.
Busca por ahí los diferentes modos de enviar pulsaciones que encuentres a ver si te van mejor que SendKeys y nos cuentas.

Código
  1. Option Explicit
  2.  
  3. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  4. Private Const constKeyDown = -32767
  5.  
  6.  
  7. Private Sub Form_Load()
  8.  'INTERVALO DE PULSACIONES
  9.  Timer2.Enabled = False
  10.  Timer2.Interval = 50
  11.  
  12.  'INTERVALO DE COMPROBACION DE TECLAS
  13.  Timer1.Interval = 50
  14.  Timer1.Enabled = True
  15. End Sub
  16.  
  17. Private Sub Timer1_Timer()
  18.  Dim F8 As Integer
  19.  Dim F9 As Integer
  20.  ' COMPROBAMOS LAS TECLAS
  21.  F8 = GetAsyncKeyState(vbKeyF8)
  22.  F9 = GetAsyncKeyState(vbKeyF9)
  23.  'SI SE HAN PULSADO HACEMOS LO QUE TOQUE
  24.  If F8 <= constKeyDown Then
  25.    'ENFOCAMOS AL TEXTBOX PARA QUE SE PULSEN AHI LAS TECLAS
  26.    Text1.SetFocus
  27.    ' Y ACTIVAMOS EL TIMER
  28.    Timer2.Enabled = True
  29.  End If
  30.  If F9 <= constKeyDown Then
  31.    'DESACTIVAMOS EL TIMER
  32.    Timer2.Enabled = False
  33.  End If
  34.  
  35.  
  36. End Sub
  37.  
  38. Private Sub Timer2_Timer()
  39.   'PUEDEN PULSARSE LAS 2 TECLAS A CADA VUELTA:
  40.  'SendKeys "QW"
  41.  
  42.  ' O CADA CICLO UNA TECLA:
  43.  ' VARIABLE QUE NO SE BORRA AL SALIR DE LA SUB
  44.  Static Ultimaletra As String
  45.  ' SEGUN LA ULTIMA PULSACION ELEGIMOS LA TECLA A PULSAR
  46.  If Ultimaletra = "Q" Then
  47.    SendKeys "W"
  48.    Ultimaletra = "W"
  49.  Else
  50.    SendKeys "Q"
  51.    Ultimaletra = "Q"
  52.  End If
  53. End Sub
  54.  

Saludos

7  Programación / Programación Visual Basic / Re: Detectar item seleccionado en listbox desde otro form en: 9 Julio 2016, 13:29 pm
El fallo es que miras el listindex pero no dices en que form esta ese list.

Sería así:

MsgBox Form1.List1.List(Form1.List1.ListIndex)

Saludos
8  Programación / Programación Visual Basic / Re: Comprobar rango de números en: 16 Abril 2016, 09:36 am
Para eso no hacen falta bucles:

If val(TECH.Text) > 74 and val(TECH.Text) < 80 Then TECH.BackColor = RGB(183, 255, 0)

Saludos
9  Programación / Programación Visual Basic / Re: Problemas con añdir directorios y ficheros en: 13 Marzo 2016, 10:38 am
Tendras que usar un commondialog para buscar los archivos.
Antes de mostrar los ficheros lo configuras para que solo muestre las extensiones que tu quieras.

Código
  1.  With CommonDialog1
  2.    .DialogTitle = "Elige el fichero"  ' titulo
  3.    .InitDir = App.Path  ' directorio de inicio
  4.    .Filter = "Archivos JPG (*.JPG)|*.JPG|Todos los archivos (*.*)|*.*"  ' tipos de archivo
  5.    .ShowOpen ' muestras el explorador para buscar el fichero
  6.   ' cuando elijas el fichero vuelves aqui
  7.    Fichero = .FileName
  8.  End With
  9.  

Saludos

10  Programación / Programación Visual Basic / Re: Error Drag Drop al ejecutar aplicación como administrador en: 13 Marzo 2016, 10:31 am
Yo tengo el mismo problema con VB6 en Win7.

Mientras depuras, (que tienes que ejecutar el VB6 en modo administrador para que funcione regular), o cuando ya has compilado, (si ejecutas el programa en modo administrador), en ambos casos deja de admitir que arrastres nada sobre el.

No he encontrado solución, y algunos programas que p.ejm. asocian extensiones de archivos, no funcionan si no es en modo administrador.
La única "solución" ha sido añadir un botón "Abrir" (cuando no lo había) y buscar el fichero a mano con un commondialog.
Otra solución para algunos casos es ejecutarlos en modo administrador solo cuando realmente lo necesitas, como cuando quieres asociar extensiones, y cuando no, lo ejecutas normal.

Si alguien sabe como se activa el modo administrador desde el propio ejecutable como hacen algunos programas tal vez se solucione.

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