Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: mastercss en 16 Junio 2010, 21:55 pm



Título: Ayuda Error 92 en tiempo de Ejecucion
Publicado por: mastercss en 16 Junio 2010, 21:55 pm
Estoy programando con webrowser una aplicación que automatice la construcción de unidades en un juego de navegador del estilo ogame.
El error salta en timepo de ejecución:


Error 91 en tiempo de ejecución:
Variable de tipo Object o la variable de tipo With no esta establecida.

La linea que señala el depurador es esta:

var_value.Value = Val(Text3.Text)

Código
  1. Option Explicit
  2. 'FIXIT: Declare 'doc' con un tipo de datos de enlace en tiempo de compilación              FixIT90210ae-R1672-R1B8ZE
  3. Dim doc As Object
  4. 'FIXIT: Declare 'var_input' con un tipo de datos de enlace en tiempo de compilación        FixIT90210ae-R1672-R1B8ZE
  5. Dim var_input As Object
  6. 'FIXIT: Declare 'var_value' con un tipo de datos de enlace en tiempo de compilación        FixIT90210ae-R1672-R1B8ZE
  7. Dim var_value As Object
  8. 'FIXIT: Declare 'var_but' con un tipo de datos de enlace en tiempo de compilación          FixIT90210ae-R1672-R1B8ZE
  9. Dim var_but As Object
  10. 'FIXIT: Declare 'hangar' con un tipo de datos de enlace en tiempo de compilación           FixIT90210ae-R1672-R1B8ZE
  11. Dim hangar As Object
  12. Dim naves As String
  13. Private Sub Command1_Click()
  14. Set doc = WebBrowser1.Document
  15. Set var_input = doc.getelementbyid("username")
  16. var_input.Value = Text1.Text
  17. Set var_input = doc.getelementbyid("password")
  18. var_input.Value = Text2.Text
  19. Set var_but = doc.getelementbyid("submit")
  20. var_but.Click
  21. End Sub
  22.  
  23. Private Sub Command2_Click()
  24. Dim bucle As Long
  25. Dim cantidad As String
  26. For bucle = 1 To Val(Text4.Text)
  27. WebBrowser1.Navigate "http://uni3.zagamex.com.ar/game.php?page=buildings&mode=fleet"
  28. Set hangar = WebBrowser1.Document
  29. Set var_value = hangar.getelementbyid(Label20.Caption)
  30. var_value.Value = Val(Text3.Text)
  31. Set var_but = hangar.getelementbytagname("INPUT")
  32. 'FIXIT: Declare 'result' con un tipo de datos de enlace en tiempo de compilación           FixIT90210ae-R1672-R1B8ZE
  33. Dim result
  34. For Each result In hangar.getelementbytagname("INPUT")
  35.    If result.Value = "Construir" Then var_but.Click
  36. Next
  37. Next
  38. End Sub
  39.  
  40. Private Sub Form_Load()
  41. Text1.Text = ""
  42. Text2.Text = ""
  43. Text3.Text = ""
  44. Text4.Text = ""
  45. WebBrowser1.Navigate "http://uni3.zagamex.com.ar"
  46. End Sub
  47. Private Sub Option1_Click()
  48. If Option1.Value = True Then Label20.Caption = "fmenge[202]"
  49. End Sub
  50. Private Sub Option2_Click()
  51. If Option2.Value = True Then Label20.Caption = "fmenge[203]"
  52. End Sub
  53. Private Sub Option3_Click()
  54. If Option3.Value = True Then Label20.Caption = "fmenge[204]"
  55. End Sub
  56. Private Sub Option4_Click()
  57. If Option4.Value = True Then Label20.Caption = "fmenge[205]"
  58. End Sub
  59. Private Sub Option5_Click()
  60. If Option5.Value = True Then Label20.Caption = "fmenge[206]"
  61. End Sub
  62. Private Sub Option6_Click()
  63. If Option6.Value = True Then Label20.Caption = "fmenge[207]"
  64. End Sub
  65. Private Sub Option7_Click()
  66. If Option7.Value = True Then Label20.Caption = "fmenge[208]"
  67. End Sub
  68. Private Sub Option8_Click()
  69. If Option8.Value = True Then Label20.Caption = "fmenge[209]"
  70. End Sub
  71. Private Sub Option9_Click()
  72. If Option9.Value = True Then Label20.Caption = "fmenge[210]"
  73. End Sub
  74. Private Sub Option10_Click()
  75. If Option10.Value = True Then Label20.Caption = "fmenge[211]"
  76. End Sub
  77. Private Sub Option11_Click()
  78. If Option11.Value = True Then Label20.Caption = "fmenge[212]"
  79. End Sub
  80. Private Sub Option12_Click()
  81. If Option12.Value = True Then Label20.Caption = "fmenge[213]"
  82. End Sub
  83. Private Sub Option13_Click()
  84. If Option13.Value = True Then Label20.Caption = "fmenge[214]"
  85. End Sub
  86. Private Sub Option14_Click()
  87. If Option14.Value = True Then Label20.Caption = "fmenge[215]"
  88. End Sub
  89. Private Sub Option15_Click()
  90. If Option15.Value = True Then Label20.Caption = "fmenge[216]"
  91. End Sub
  92.  
  93.  

HE leido sobre el error pero no termino de entender el motivo, si me lo pudieran explicar muy simple como para tontos lo agradeceria.

Gracias de antemano y Salu2


Título: Re: Ayuda Error 92 en tiempo de Ejecucion
Publicado por: hunter18 en 17 Junio 2010, 22:38 pm
Parece que te falta alguna referencia no te acepta el var_value.Value como tipo object te esta obligando a agregar su referencia sea cual sea el objeto que quieres crear.

Prueba declarandolo asi Dim var_value y vb automaticamente declara el tipo correcto por otro lado lado al no declarar el tipo de dato siempre se declara como object.


Título: Re: Ayuda Error 92 en tiempo de Ejecucion
Publicado por: mastercss en 18 Junio 2010, 18:05 pm
Pero fijate, lo he declrado en option explicit y nada. No entiendo el motivo pero no reconoce el objeto.  Salu2


Título: Re: Ayuda Error 92 en tiempo de Ejecucion
Publicado por: raul338 en 18 Junio 2010, 18:12 pm
El problema puede ser que no encuentra el tipo fmenge
  • fijate, compara si var_value esnothing antes de hacer lo que sigue


Título: Re: Ayuda Error 92 en tiempo de Ejecucion
Publicado por: hunter18 en 18 Junio 2010, 18:53 pm
No se que tratas de hacer pero estas seteando objetos varias veces, ademas utilizas un FIXIT: que no se que hara pero dice que el tipo de dato debe ser de "tipo de datos de enlace" por ahi debe estar el error.
Quizas haya un error en el bucle, quita el bucle principal For bucle = 1 To Val(Text4.Text) y solo ejecuta el codigo una vez como si el bucle fuera For bucle = 1 To 1
Por otro lado estas declarando un variable dentro de un bucle ahi podria estar el error.

Código:
Dim bucle As Long
Dim cantidad As String
Dim result

WebBrowser1.Navigate "http://uni3.zagamex.com.ar/game.php?page=buildings&mode=fleet"

For bucle = 1 To Val(Text4.Text)

  Set hangar = WebBrowser1.Document
  Set var_value = hangar.getelementbyid(Label20.Caption)
  var_value.Value = Val(Text3.Text)
  Set var_but = hangar.getelementbytagname("INPUT")
 
  'FIXIT: Declare 'result' con un tipo de datos de enlace en tiempo de compilación FixIT90210ae-R1672-R1B8ZE
  For Each result In hangar.getelementbytagname("INPUT")
     If result.Value = "Construir" Then var_but.Click
  Next

Next


Título: Re: Ayuda Error 92 en tiempo de Ejecucion
Publicado por: hunter18 en 18 Junio 2010, 18:57 pm
El problema puede ser que no encuentra el tipo fmenge
  • fijate, compara si var_value esnothing antes de hacer lo que sigue
Tambien podria ser eso que no te carga la variable prueba asi, haber si devuelve algo o si esta vacio
Código:
Set var_value = hangar.getelementbyid(Label20.Caption)
msgbox var_value
var_value.Value = Val(Text3.Text)

o directamente Set var_value = hangar.getelementbyid("fmenge[202]") haber que sale?


Título: Re: Ayuda Error 92 en tiempo de Ejecucion
Publicado por: mastercss en 18 Junio 2010, 19:05 pm
Lo unico que puede pasar es esto--->set var_value=hangar.getelementbytagname(label20.caption)
imagino que puede ser el causante.

Respondiendo a hunter 18. Resulta que rellena un campo input text con el numero de tropas y las veces que quieres que se repita la accion y le da a construir. El problema esk el boton no tiene asociado ni "name" ni "id" asi que tengo que usar getelementbytagname("input") para sacar todos los elementos input de la pagina en un array. Despues utilizo for each para buscar el input que tenga como valor "Construir" y si se cumple la condicion var_but.click clicka en el boton.

El for del principio repite el proceso de construccion tantas veces como se haya establecido en el programa. Digamos que es una especi de macro web.



Salu2


Título: Re: Ayuda Error 92 en tiempo de Ejecucion
Publicado por: mastercss en 18 Junio 2010, 22:27 pm
HE provado quitando el for y sigue el mismo error. Tambien he probado a que el msgbox tire el valor de la variable pero el error sigue siendo el mismo.



Salu2


Título: Re: Ayuda Error 92 en tiempo de Ejecucion
Publicado por: abkanis en 23 Abril 2014, 14:46 pm
Esta desactualizado esto, pero recuerdo que ese error de debe a que el nombre o id  del elemento dentro d ela pagina de juego, se repite  2 veces,o lleva un valor de numero.