• Viernes 8 de Noviembre de 2024, 18:45

Autor Tema:  Seguimos...  (Leído 1500 veces)

rkneo

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Seguimos...
« en: Jueves 15 de Mayo de 2008, 01:22 »
0
e avanzado mucho... ai un programa en mi ordenador que utiliza una imagen cada vez que se ejecuta.
la imagen esta guardada en una carpeta en archivos de programa, es decir que tengo todas las imagenes que este utiliza(estan guardadas en la carpeta del programa), pero quiero saber cual es la imagen que se utiliza en cada momento. yo se cual utiliza evidentemente(porque lo veo), pero quiero que mi programa atraves del proceso (o nose como) sepa cual es la imagen que se esta utilizando en cada momento, espero explicarme con claridad :S .

gracias!!

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Seguimos...
« Respuesta #1 en: Viernes 16 de Mayo de 2008, 03:16 »
0
Para interceptar que imagen usa el programa se debería por tener claro que es el único porgrama que accede a ellas, damos por sentado que es así.

Bueno, pués hay una sencilla manera de saber que imagen toma, si te fijas cada vez que se utiliza un archivo en sus propiedades puedes leer: acceso por última vez...' y te pone una fecha, se trata entonces de guardar en una matriz (listbox o lo que quieras) todas las entradas de fecha de último acceso.

... y mediante un timer que debes determinar cual es intérvalo óptimo (por ejemplo si sólo se carga una imagen cada vez que arranca el programa, el intérvalo puede ser bastante grande, si de otro modo cambia de imagen aleatoriamente cada cierto tiempo intenta que el tuyo sea similar, etc...), vas releyendo la info de todas las imágenes la que sea distinta de la que tienes registrada esa es. No olvides entonces actualizar la matriz con ese dato y terminar de recorrer el resto de imágenes ...

se me olvidaba...
mañana te pongo un pequeño código de ejemplo... me voy a dormir...
«Ma non troppo»
----> ModoVacaciones = False<----

rkneo

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Seguimos...
« Respuesta #2 en: Sábado 17 de Mayo de 2008, 00:05 »
0
el problea esq dod pone ultiom acceso no t guarda el ultimo... lo e comprobado i pj la ultima vez que vi la iagen fue a las 3.30 i el ultimo acceso ponia que era 2:28



en concreto es para un programa de poker, calcular las estadisticas, (trabajo de informatica...) i entonces si ai m sale en mi mano 8 de corazones y 9 de picas, ami me sale undibujo con una carta, i esas cartas las tengo guardadas todas en la carpeta del programa, etonces lo q qiero q aga el programa esq detecte cual carta me han repartido y una vez alli ya acer los calculos i todo lo dmas... no se si m explico..

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Seguimos...
« Respuesta #3 en: Sábado 17 de Mayo de 2008, 07:48 »
0
lo prometido es deuda... abajo he puesto un ejemplo de programa completo que puedes descargar.

Citar
el problea esq dod pone ultiom acceso no t guarda el ultimo... lo e comprobado i pj la ultima vez que vi la iagen fue a las 3.30 i el ultimo acceso ponia que era 2:28

El último acceso no de debe confundir con el último cambio. Usando el ejemplo del código que te acompaño, se sabe incluso cuando haces un clic sobre el archivo, o abres la carpetas...

Pudiera ser que el programa en cuestión cargue todas las imágenes en memoria al inicio del mismo y luego simplemente acceda a ellas según se vayan necesitando. Sería un poco absurdo (salvo que las imágenes tengan un gran tamaño) leer de fichero cada vez que se necesita la imagen. Dado que un juego como el póker o uno de cartas tiene un número finito y pequeño de imágenes y que esas no son muy grandes ni pesan mucho (al menos yo), las cargaría al arrancar el programa y luego las iría mostrando según se necesitare, el acceso es más rápido y posiblemente todas las imágenes no superen 1MB.

Puedes comprobarlo del siguiente modo... con el programa en marcha, haz una copia de una imagen de las que hay y guárdala aparte, luego coge una imagen de donde quieras (pero muy diferente para reconocerla) , de tamaño igual que esas, y ponle el mismo nombre que esa que has copiado, ponla en la carpeta de las imágenes rescribiendo la que existe (ya guardaste una copia). Si no están bloqueadas, podrás pegarla sin problemas. Si el juego carga las imágenes desde fichero según las va necesitando habrá un momento dado en que saldrá la imagen que tu has puesto ahí con el nombre de otra. Si en cambio no aparece y si que aparece la imagen que has sustituído está claro que las carga al inicio en memoria.

Descargar programa:[/size]Descargar el proyecto completo 34Kb.

una imagen vigilando los archivos de la carpeta de windows\system32:

«Ma non troppo»
----> ModoVacaciones = False<----

rkneo

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Seguimos...
« Respuesta #4 en: Sábado 17 de Mayo de 2008, 11:37 »
0
e hecho lo de la imagen y la carga al entrar en la mesa, tu ejecutas el prograa i entras como en el hall del casino, i cuando entras en una mesa ya es cuando se cargan todas las imagenes.

rkneo

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Seguimos...
« Respuesta #5 en: Sábado 17 de Mayo de 2008, 21:36 »
0
sigo investigando... i he descubierto programas que hacen lo que yo qiero... pero evidentemente no me sirve... jeje (recordemos que esto es un trabajo de 3ºdecarrera)

i te explico asta donde e concluido...

el programa este que he econtrado llamado calculatem pro, recoge tus cartas pero tb recoge lo que apuestan los demas, quien se retira i todo.. asiq lo que yo pienso es... abra algun dll o algun archivo en el que se guarde inmediatamete la actuacion de ls jugadores? como puedo saberlo... creo que si saco esto... tendre el programa bastante avanzado...

si alguie sabe algo... loqesea... muchas gracias

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Seguimos...
« Respuesta #6 en: Sábado 24 de Mayo de 2008, 01:57 »
0
Bueno, veamos.. si las imágenes pesan poco como acostumbra a suceder con los juegos de cartas, donde su número es finito, es muy probable que las imágenes se carguen una única vez al arrancar el programa y luego se alojen en memoria y se vayan llamando según se vayan necesitando.

Yo de entrada descarto que haya un archivo que guarde el estado de la partida mientras se está jugando, a lo sumo al finalizar la misma, si se ofrece la opción de pausar la partida y continuar en otro momento. Incluso así sólo salvaría el estado actual no cada jugada realizada.

Lo más lógico y probable es que los datos se hayan alojado en una estructura incluso en una clase.

De todos modos para saber si se guarda info en un archivo en cada momento sólo tendrías que vigilar cada archivo durante el desarrollo del juego (la mitad del código anterior o más te vale para esto, pués en vez de interrogar a las imágenes por acceso preguntas a todos por su taaño... Si tienen tamaño distinto cuando se inicia el programa que en cualquier momento dado durante el juego, es claro que guarda información...

Pero incluso pudiera guardar los datos en el registro.  Mi opinión particular es guardar en el registro sólo aquello que realmente afecte al sistema, pero de manera sistemática muchos abusan del registro patra guardar sus variables entre sesiones, posiblemente porque les resulte más cómodo usar el registro....

Con 'serialization' escribir el estado de tus programas es creo yo más ventajoso, pero una cosa es la teoría o otra lo que se ha hecho en un programa en concreto.
«Ma non troppo»
----> ModoVacaciones = False<----