Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - FJDA

#311
Cita de: NEBIRE en  5 Febrero 2020, 03:24 AM
Me temo que estás cazando moscas a cañonazos...
Define adecuadamente eso de: "...procesarlas para compararlas..."

yo entiendo que se refiere con procesarlas a editarlas, cambiar brillo, contraste y estas cosas, puede que incluso el formato o compresión. Después compara una imagen "procesada" con otra original que no ha recibido cambios. ¿para qué? pues él sabrá.


de momento a mi eso me parece irrelevante, me he limitado a centrarme en el tema de la programación, ¿quiere obtener el handle de los botones pero no los consigue? pues ahí está, aunque recuerdo un código que tenía que lo hacía de forma escalonada hasta obtener todos los handles y classname de una ventana, pero no lo encuentro, eran como 6 u 8 líneas y lo hacía.


#312
Cita de: @?0!,5^34 en  5 Febrero 2020, 02:40 AM
Lo tengo prácticamente acabado. Solo me falta comparar los resultados de un equipo al otro, generar las quinielas y poco más. Quiero añadirle un algoritmo para contrastar la quiniela generada con quinielas públicas y dar puntuaciones a los equipos en base a los resultados, así puedo entrenar el algoritmo automáticamente. Como los números van en un html se  pueden compartir los resultados del aprendizaje. A ver si encuentro alguna página que me permita scrapear quinielas resueltas con urls predecibles sin tener que hacer rollo araña, así me las bajo todas y lo dejo corriendo 24/7 offline.

partiendo de la filosofía de que otros trabajen por tí, por qué no obtienes las probabilidades online para el programa. así te ahorras algoritmos y cálculos.

Aquí por ejemplo, no se si se publica en html o se crea con javascript.
https://www.mundodeportivo.com/servicios/quiniela




edito:
Pues parece se publican en con marcado HTML así que obtener las probabilidades para el programa es facilísimo, lo malo es que es online.

Personalmente no soy partidario del "online" porque los administradores de las páginas cambian la estructura, van editando y cambiando la páginas cada cierto tiempo, peor aún las cierran. Por ejemplo el enlace de arriba usa html directo para mostrar la tabla, pero el año que viene puede que use javascript y tire de json, con lo cual el programa ya no sirve. Así mismo los equipos cambian cada temporada y los datos cada varios días, luego tirar de datos guardados como que no. Solo usaría el online para obtener los resultados generales de las tablas desde algún servidor seguro y permamente, a partir de aquí que mi programa generara todos los datos por sí sólo, sin depender del online.

Tampoco soy partidario del "los históricos" es decir de históricos futbolísticos de hace otros años, a no ser que sea necesario como cuando se inicia una temporada y no hay datos y tienes que tirar de algo, o que se sume a los actuales que si se hace bien de igual modo se obtiene un resultado similar no fiable.

Por último hay partidos que no se pueden obtener históricos, porque nunca se ha jugado un equipo con otro y no hay datos. Entonces el programa, si se basa en crear variaciones a partir de históricos y probabilidad, se va a topar con un problema, luego mostrará un resultado no real, tiene que usar sí o sí valores en vivo de la temporada actual, con el uso de la distribución de poisson por ejemplo.



#313
hola
has tenido suerte porque hace, no si más de diez años que no toco VB. El caso es que me he puesto a ayudar a un compañero y recién he instalado vB6 y he hecho un programa con él.

No puedes encontrar en handle (hwnd) porque tienes que obtenerlo de forma descendente, primero el padre que es la ventana, luego el panel que contiene el objeto, luego el objeto y luego sus botones y todo a partir del primero. Es decir con el primero obtienes el segundo, con el segundo el tercero, con el tercero el cuarto.


Código (vb) [Seleccionar]

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _
(ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" _
(ByVal hwnd As Long, ByVal wFlag As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Const GW_HWNDNEXT = 2
Const GW_CHILD = 5

   
Private Sub Command2_Click()
Dim TITULODELAVENTANA As String
Dim hPhoto_Lightweight_Viewer As Long
Dim hPhotos_NavigationPane As Long
Dim hPhotos_NavigationBar As Long
Dim hPhotos_ButtonEx_1 As Long
Dim hPhotos_ButtonEx_2 As Long
Dim hPhotos_ButtonEx_3 As Long
Dim hPhotos_ButtonEx_4 As Long
Dim hPhotos_ButtonEx_5 As Long
TITULODELAVENTANA = "24TL510V.jpg - Visualizador de fotos de Windows"
'Orden de padre a hijos
'1.Photo_Lightweight_Viewer
'-----Photos_NavigationPane
'------------Photos_NavigationBar
'----------------------Photos_ButtonEx

'//handle de la ventana
hPhoto_Lightweight_Viewer = FindWindow("Photo_Lightweight_Viewer", TITULODELAVENTANA)

'//handle del panel
'handle de Photo_Lightweight_Viewer
handlePhotos_NavigationPane = FindWindowEx(hPhoto_Lightweight_Viewer, ByVal 0&, "Photos_NavigationPane", vbNullString)

'//Handle del control de botones
'handle de hPhotos_NavigationBar
handlePhotos_NavigationBar = FindWindowEx(handlePhotos_NavigationPane, ByVal 0&, "Photos_NavigationBar", vbNullString)


'//BOTONES
'//Como Photos_ButtonEx no tiene hijos a partir de aquí se usa  GW_HWNDNEXT
'//para obtener el handle del siguiente botón (ventana)

'handle de Photos_ButtonEx (la lupa)
hPhotos_ButtonEx_1 = FindWindowEx(handlePhotos_NavigationBar, ByVal 0&, "Photos_ButtonEx", vbNullString)

'handle de Photos_ButtonEx (botón maximizar)
hPhotos_ButtonEx_2 = GetWindow(hPhotos_ButtonEx_1, GW_HWNDNEXT)

'handle de Photos_ButtonEx (botón "izquierda")
hPhotos_ButtonEx_3 = GetWindow(hPhotos_ButtonEx_2, GW_HWNDNEXT)

'handle de Photos_ButtonEx (botón diapositivas)
hPhotos_ButtonEx_4 = GetWindow(hPhotos_ButtonEx_3, GW_HWNDNEXT)

'handle de Photos_ButtonEx (botón "derecha")
hPhotos_ButtonEx_5 = GetWindow(hPhotos_ButtonEx_4, GW_HWNDNEXT)


MsgBox "LUPA = " & Hex(hPhotos_ButtonEx_1)
MsgBox "MAXIMIZAR = " & Hex(hPhotos_ButtonEx_2)
MsgBox "IZQUIERDA = " & Hex(hPhotos_ButtonEx_3)
MsgBox "DIAPOSITIVAS = " & Hex(hPhotos_ButtonEx_4)
MsgBox "DERECHA = " & Hex(hPhotos_ButtonEx_5)


End Sub



luego  a partir de Photos_ButtonEx debes buscar el siguiente porque Photos_ButtonEx es el classname de todos los botones



Había otra manera para conseguir todos los handles de una ventan pero no me acuerdo, voy a ver si tengo algún snippet por ahí

Otra cosa, no necesitas ese código del timer para ver los handles, VB6 viene tine SPY++ con el que puedes encontrar los handles e información de las ventanas e hijos. Deberías ver una acceso directo en el menú incio\programas, en"Herramientas de Microsoft Visual Studio 6.0" y si no en "C:\Program Files\Microsoft Visual Studio\Common\Tools\SPYXX.EXE"




y te digo otra cosa, no te lo puedo asegurar pero creo que si importas los botones por separado no te van a hacer nada, ya me contarás.
#314
Mi consejo es que te mires la probabilidad, que puedes encontrar por ahí, resultados y estadísticas y en base a eso te hagas el pronóstico luego combinas ya. ¿Un programa que te diga que va a salir el 1? como que no.

Qué casualidad que cuando ves que 70% u 80% de la gente apuesta a 1 sale 2, por qué será, por qué será, sobre todo en 2ª. Estos datos se pueden ver en la misma página de Loterías y apuestas del estado. Cuesta encontrarlo pero hay un enlace que te muestra el la estadísticas de apuestas de la jornada en tiempo real.

Además el programa que tu quieres lo tienes online aquí:

https://juegos.loteriasyapuestas.es/jugar/la-quiniela/apuesta/?access=headercms&lang=es
solo dale a automática y te genera combinaciones (en realidad son variaciones)

Si le das a "Pronósticos más apostados" ves los porcentajes

Antes se podía descargar un archivo don las estadísticas pero ahora no lo veo por ningún sitio. Me refiero al porcentaje de apuestas que hace la gente.



Saludos

Cita de: El_Andaluz en  5 Febrero 2020, 01:06 AM
De hecho todo eso que comentas lo estas haciendo el compi de forma voluntaria al igual que tu pero hombre ya que se ponéis por pider que no quede. :xD


¿La distribución de Poisson? sinceramente lo dudo. Claro que ahora que lo he publicado tal vez. Pero la mayoría de la gente hace cosas como sumar datos, hacer medias y tratar de sacar un porcentaje digno que de un reflejo más o menos plausible de la "fuerza" de los equipos.


saludos
#315
Cita de: NEBIRE en  4 Febrero 2020, 23:33 PM
Vuelve otro día... le hablas en inglés y a ver si te atiende en inglés... luego cambia a castellano a ver qué hace... si te habla en catalán, entonces yo si pondría reclamación porque queda claro que te está discriminando por el idioma...

No creas que no lo he pensado, pero lo bueno sería grabarlo
#316
Cita de: El_Andaluz en  4 Febrero 2020, 22:17 PM

Pero claro para hacerlo en plan con mas probabilidades de acertar según que equipo que juegue contra quien ya lo veo mas difícil que lo hagas y mas sin llevas mucho tiempo sin programar y eso necesitas mas tiempo y entretenimiento ya se esta encargando @?0!,5^34 lo tuyo lo voy a tener guardado para experimentar y probar también.


¿probabilidades?
Ne leí nada de probabilidades. Pues para saber la probabilidad de que gane un equipo u otro existe una fórmula que se llama DISTRIBUCIÓN DE POISSON que es justo para estos casos.


#317
Cita de: El_Andaluz en  4 Febrero 2020, 20:46 PM
Cuando dices que yo que tu no ejecutarías programas de códigos cerrado en un foro de hacking a que te refieres ? Que pueda meter un virus ?  :huh:
para empezar yo no soy "hacker", por lo menos yo no me considero  :P

El programa está 100% limpio, más que nada se acaba de compilar y te puedo asegurar que en mi ordenador no hay bichos. Cabe la posibilidad que un antivirus salte y  diga ¡cuidado con esto! pero es normal puesto que la aplicación la desarrollé ayer, no está registrada y no tiene usuarios más que los que lo hallan ejecutado en las últimas horas. El compilador es 100% genuino, no es pirata. Tampoco voy a correr el riesgo de infectar a un usuario de este foro o usuarios y que me baneen, digo yo. Pero comprendo la desconfianza es normal. Además si quisiera infectar me aseguraría de que funcione bien y ya van como tres o cuatro intentos de que le funcionara, pues menudo hacker que estaría hecho yo  :xD

Pongo el source, y que nade nadie espere nada en plan profesional porque lo hice ayer en apenas unas horas.


Para hacer la quiniela se hace clic en ellas y se ven verticalmente para mejor lectura a la hora de rellenar nuestra quiniela.


Te cuento me lo acabo de descargar solo se ejecuta como administrador y pinchando de forma normal desde las carpeta que pone Support desde los demás no se ejecuta bien.

En el último enlace que he puesto el Setup ahora debería funcionar, como dije en el anterior no estaba el archivo CAB, y por eso pedía un disco o diskete o no se que. Pero si ya lo has podido ejecutar pues nada.

#318
Cita de: El_Andaluz en  4 Febrero 2020, 17:50 PM

Pues mala suerte otra vez, lo he intentado instalar y me salta un mensaje diciendo que Inserte disco, no se que disco voy a insertar y lo he intentado ejecutar también como administrador y dice el mismo mensaje.

No se en donde estas fallando la verdad es que no hay forma de ejecutarlo.



Eso es porque has ejecutado el Setup que hay en la carpeta SUPPORT. Ese no vale, ese busca un archivo CAB que no está (no se ha creado no se por qué), es el SETUP que está fuera junto con el archivo SETUP.LST. Te recomiendo instalarlo desde el directorio C:

por ejemplo C:\Laquinilea\Setup.exe


De todos modos creo que ejecutando LA QUINIELA DYT.exe  que hay en la carpeta SUPPORT, te debería funcionar porque en esta carpeta tienes el COMCTL32.

vale es que no ha generado el archivo CAB no se porqué. Lo que no entiendo es que yo lo probé si en CAB y funcionó  :¬¬. Que cosa mas rara. Pues nada lo vuelvo a Publicar.



#319
Cita de: El_Andaluz en  4 Febrero 2020, 12:55 PM

Buenas lo he descargado y luego descomprimido en mi Escritorio pues bien sorpresa tanto al ejecutarlo como administrador y al ejecutarlo de forma normal da error no se ejecuta el programa de ninguna forma salta un mensaje de error en inglés tal como pone en la captura.


ops ya te dije que hacía tiempo que no programaba y menos con VB  :-\
Ni me acordaba del COMCTL32.OCX

He creado un paquete de instalación y si no quieres instalar tiene una carpeta llamada Support donde están todos los archivos del que depende y ahora ya debería funcionar.


#320
He hecho esto y madre mía he tenido que tirar de VB porque he olvidado un montón de cosas y lo mejor a sido tirar de lo más fácil. Así no tengo que crear objetos, como no tengo el Visual Studio instalado me puse el VB que se mete un plis plas. No es un programón pero quedó resultón, puede que tenga bugs por eso.

Tampoco me molesté en hacerlo bonito y eso.

A ver si te funciona porque le metí un OCX para el cuadro de diálogo guardar (y así reducir código) y si no lo tienes en sistema te dará error. Por si acaso lo metí junto al programa compilado. Si te da error ejecuta con privilegios de Administrador y se registrará el OCX automáticamente. He incorporado un menú para guardar las combinaciones y el pronóstico.


[ELIMINADO]


(Nota: publicación modificada, hice otra anterior pero tenía errores y volví  publicar corregido, no guardaba los archivos)

Para ver las columnas en horizontal vertical clica dos veces en una combinación de la lista de la derecha

Mete la combinación ganadora  en el cuadro "Combinación ganadora" y dale a "Ver Acierto" para ver los aciertos.

Espero te sirva o al menos de idea

saludos.