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ú

Temas - DarkMatrix

#1
Bueno dado que se cayo el servidor donde antes estaba subido este codigo, lo resubi y lo mejore un poco.

Actualizador de Aplicaciones:



La aplicacion es muy sencilla y funciona de la siguiente manera: cuando se ejecuta la aplicacion esta descarga del servidor de actualizaciones el archivo "UpdateList.zip", que es el archivo que contiene la lista de archivos actualizados de la aplicacion, luego lo carga en memoria y empieza a comparar los archivos actualizados con los archivos que estan en la carpeta local de la aplicacion, si existen archivos nuevos o archivos mas actualizados la aplicacion los descarga.

Para generar el archivo UpdateList.zip la aplicacion (Actualizador.exe) debe estar en la carpeta local que tiene la aplicacion actualizada y ejecutar el actualizador con el parametro "GenerateUpdateList". Esto generara el archivo updatelist.zip y tambien comprimira todos los archivos que hayan sido especificados en el archivo config.ini.

Ojo: El Actualizador no esta programado para actualzarse a si mismo.

Ejemplo de Uso:

Mi aplicacion se llama MiPrograma.Exe y depende de los archivos Ejemplo1.txt y Ejemplo2.txt, y los tengo almacenados en una carpeta llamado MiPrograma.

El primer paso es incluir todos los archivos del actualizador que son 4 ( Actualizador.exe, Unzip32.dll, Zip32.dll y Config.ini) en la carpeta principal "MiPrograma".

El segundo paso es especificar la URL del host donde estaran al macenados los archivos actualizados, para eso abrimos el archivo Config.ini y cambiamos el valor "UpdateServer" por el host donde tendremos nuestros archivos y quedaria algo asi "UpdateServer=http://ejemplo.com/ejemplo".

Ahora especificamos las extensiones de archivos que queremos que sean comprimidos, se recomienda que los .exe y .dll sean comprimidos ya que algunos servidores no dejan bajar este tipo de archivo por seguridad. Para cambiar las extensiones abrimos el archivo Config.ini y modificamos el valor "ZipThisFileTypes" y colocamos las extensiones que queramos, por defecto queda asi: "ZipThisFileTypes=.exe,.dll", cada extension separada con una coma e incluyendo el punto.

Una vez hecho esto ya se puede generar el archivo UpdateList.zip, para esto ejecutamos la aplicacion con el comando "GenerateUpdateList", esto generara el archivo updatelist.zip y tambien comprimira todos los archivos que especificamos en la lista de extensiones. Ahora debemos subir todos los archivos de la carpeta MiPrograma al host donde almacenaremos los archivos ( url especificada en el archivo config.ini ) exceptuando solo aquellos archivos que fueron comprimidos ( subir solo el comprimido y no el original, por ejemplo si se comprimio MiPrograma.exe a MiPrograma.zip subimos el .zip y no el .exe).

Con esto ya la aplicacion estara lista para actualizar a todos los clientes que ya tengan una version vieja de la aplicacion.

Para comprobarlo borra o cambia cualquiera de los archivos que estan en la carpeta "MiPrograma" y ejecuta el actualizador, por ejemplo si borramos MiPrograma.exe y ejecutamos el actualizador veremos que se descagara MiPrograma.exe nuevamente ya que al no existir en la carpeta local pero si en el servidor de actualizaciones, la aplicacion lo descarga.

Descarga Exe + Codigo Fuente:

http://www.mediafire.com/?pgdp4q3ufpyda77

Bueno se aceptan recomendaciones, mejoras, sugerencias, dudas XD

Suerte y espero que les sirva de algo :P

#2
Programación Visual Basic / Tamaño de un UDT
1 Noviembre 2011, 04:06 AM
Bueno solo tengo esa duda, saber si los UDTs tienen un tamaño limite cuando son parte de un array.

ejemplo:

Código (vb) [Seleccionar]

Type tOnlineUserList

    uNickName           As String
    uLevel              As String
   
End Type

Dim UserList(30000) as tOnlineUserList ' Tienen limite?
#3
Buenas, necesito un poco de ayuda. He detectado que este control tiene un error grave:

http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/214-boton-checkbox-optionbutton-con-skin.htm

Lo que sucede es que cuando el control es cargado y descargado de la memoria muchas veces, visual basic manda un error de Memoria Insuficiente, he probado varios usercontrols de botones pero ninguno manda el error como lo hace este. Lo primero que imagine fue que el control creba un DC que luego no liberaba pero creo que ese no es el problema.

Bueno a ver si pueden ayudarme a encontrar el error.

Adjunto un archivo con la prueba que hize: http://nova-digital.net/prueba.rar

#4
Buenas, estoy empezando en .net pero ya tengo algunos conocimientos en vb6 y quisiera saber si esto es posible:



Pues bien basicamente creo que la imagen se explica por si sola, la idea es saber si hay forma de detener el codigo en dos o mas procedimientos distintos hasta que una variable X cambie, de modo que si cualquiera de esas variables cambia que continue en su procedimiento.
#5
Buenas, estoy haciendo un control de usuario parecido a un listview, los items los meto dentro del contenedor y puedo verlos de tal manera que parace un listview, sin embargo el problema esta en que el contenedor que uso, el de leandro ( http://www.leandroascierto.com.ar/categoria/Controles%20de%20Usuario/articulo/ScrollControl.php ) dibuja las scrollbars con el tema de windows, mi pregunta es si existe una forma para cambiar el color de esas scrollbars o al menos un control que tenga la misma funcion y que se le pueda cambiar el color al scrollbar.

Encontre algunos controles de usuarios muy parecidos y logre cambiar el color de las scrollbars sin embargo el control de usuario no me permite tener suficiente espacio virtual dentro del contenedor como para abarcar suficientes items...

Espero puedan ayudarme porque se ve muy feo las barras blancas o grises del windows dentro de un form negro xD

Una Captura:


#6


Buenas, aqui les traigo un juego hecho por mi para fans del yugioh, esta hecho con Visual Basic 6.0 y Direct X y es Online. Actualmente esta en desarrollo y en fase beta pero se puede jugar, solo que faltan Usuarios ^^, sin mas aqui un poco de Informacion:

El Juego sera Online, el sistema de juego sera igual al de Yu-Gi-Oh con algunas pequeñas modificaciones. Las cartas seran por ahora las originales de yugioh pero luego que sea liberada la version 1.0 las cartas seran modificadas por un nuevo diseño que ya esta hecho. Actualemente hay 800 cartas agregadas y se siguen agregando mas.

El juego tendra distintos modos de juego, por ejemplo: Modo de juego Normal ( Segun las reglas originales del Yu-Gi-Oh ) Modo de Juego Simple ( Basado en las Reglas del Juego del Yu-Gi-Oh Forbidden Memories ), los cuales tendran sub-modos de juego, por ejemplo para el modo normal: Jugada por Puntos de Vida o Jugada Por Monsters Destruidos. Ademas de eso el Juego contendra una gran cantidad de cartas que se iran agregando conforme avanze el juego.

Esta version es unicamente de prueba, esto quiere decir que no posee sonidos ni efectos graficos por razones de ahorro de espacio a la hora de descargar. Fue lanzada esta version con el proposito de detectar errores de programacion en la parte logica del programa y asi poder corregirlos antes de lanzar la version 1.0.

Los jugadores Obtendrán otras cartas de distintas maneras ya sea ganándolas apostando contra otros jugadores, ganándole a los jugadores predeterminados (la maquina), comprándolas, ganándolas en eventos del juego o cualquier otro evento que surja; teniendo la posibilidad de tenerlas en una colección para posteriormente mejorar su baraja de cartas, bien sea agregando o quitando cartas, hasta un mínimo de 40 cartas y un máximo de 80.

Las cartas básicas que habrá en el juego cuando empiece será un total de aproximadamente 800 cartas, 600 de Yugioh modificadas y las demás serán de Otros Generos no referentes a este que ya están creadas. Los usuarios según su experiencia ganada en juego tendrán un determinado nivel para determinar su posición final en un ranking de los mejores jugadores. Esta experiencia dependerá de el nivel del contrincante con el que se pelea y de las jugadas hechas en el juego.

Algunas Capturas de lo que va de desarrollo:









Un Video del Gameplay:
[youtube=425,350]o424AL69zDU[/youtube]

Bueno espero que Comenten y aporten sus ideas para ayudar a mejorar el juego. Saludos xD!!

La Pagina del Juego es: http://nova-digital.net
#7
Programación Visual Basic / API SetCursor
21 Diciembre 2010, 08:09 AM
Buenas, tengo un pequeño problema con una aplicacion que no me carga un cursor, debido a esto me vi obligado a usar varias APIs para cargar el cursor. En si la aplicacion si cargo el cursor correctamente pero solo hasta que se mueve el mouse luego de eso regresa al anterior :S.

La idea es cargar el cursor en la aplicacion y cuando esta cierre que el cursor quede como estaba.

Aca les dejo el code que encontre pero es el que cambia al mover el cursor:

Código (vb) [Seleccionar]


    Private Declare Function LoadCursorFromFile Lib "user32.dll" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
    Private Declare Function SetCursor Lib "user32.dll" (ByVal hCursor As Long) As Long

    ' Display the application starting (arrow and hourglass) Windows
    ' cursor for three seconds. The cursor resource is loaded from Windows. Then
    ' restore the old cursor (whatever it happens to be).

    Dim hcursor    As Long ' receives handle to application starting cursor
    Dim holdcursor As Long ' receives handle to previously used cursor
    Dim retval     As Long ' throw-away return value

    hcursor = LoadCursor(0, IDC_APPSTARTING) ' load Windows's application starting cursor
    holdcursor = SetCursor(hcursor) ' set it to the new cursor

    Sleep 3000 ' wait for 3 seconds

    retval = SetCursor(holdcursor) ' set it to the previous cursor



NOTA: Intente cambiando el cursor actual con SetSystemCursor pero no creo que eso sea buena idea ya que despues hay que restaurar el cursor de forma manual :S.
#8
Bueno mi pregunta es si eso se puede, agregar texto rebordeado en un richtextbox. Se que con las propiedades que trae por defecto no se puede, logre hacer algo parecido con GDI+ dibujando en un pidcture pero no es exactamente lo que necesito.

A ver si alguien sabe si se puede y me heche una mano o me ilumine =D, Grax de Antemano.

EDIT: aca una imagen de referencia a lo que mas o menos quiero hacer:

#9
Programación Visual Basic / Guardar un UDT
12 Agosto 2010, 02:56 AM
Buenas :P, esta vez tengo una pregunta y es que he buscado pero no he encontrado mucho, queria saber si es posible grabar los datos de una estructura UDT como string u otro tipo de variable, para luego cargar los datos de nuevo asignadolo al UDT. He visto que se puede grabar una UDT en un archivo binario, pero necesito que no sea en un archivo binario.

PD: Necesito espesificamente guardar los datos de la UDT en una campo de una base de datos, para luego poder leer esa UDT otra vez.
#10
Programación Visual Basic / MultiProceso
21 Julio 2010, 00:47 AM
Buenas, tengo un inconveniente y no encuentro una solucion. Veran tengo una aplicacion que necesita ejecutar una funcion, esta funcion se debe mantener activa hasta que la en la aplicacion suceda algo por ejemplo que cambie una variable, en pequeño ejemplo:

Código (vb) [Seleccionar]
Sub Funcion()

    ' La aplicacion activa un suceso, ejemplo activa un command botton.

    ' La aplicacion se mantiene en esta linea sin pasar a la siguiente linea hasta que
    ' una variable cambie de valor, cuando la variable cambia de valor entonces
    ' pasa a la siguiente linea.

    ' Desactiva el suceso antes activado.

End Function



Esto yo lo habia logrado aplicando un doEvents junto con waitmessage, pero el problema surge cuando tengo que llamar dos veces a esa funcion, solo me ejecuta una a la vez, el doevents se mantiene en una funcion pero no me analiza la otra y esto me causa problemas, ya que ambas tienen condiciones diferentes, y si la condicion de una cambia mientras el bucle esta en la otra entonces se queda pegada esa funcion y no me sirve :S. Quisiera saber si saben alguna forma de solucionar esto o alguna alternativa que me sirva Gracias.

Saludos! XD!

#11
Buenas, he buscado en la web algun codigo o algo que me sirva para obtener un codigo unico para una maquina, que solo lo tenga esa maquina y ningun otra. Si alguien tiene algo que me ayude se agradece :P Saludos!
#12
Bueno mi inquietud es la de como obtener el rank (Posicion) de un usuario dentro de una determianada jerarquia, sabiendo que los datos estan en una base de datos access. Ejemplo: En la base de datos hay 10.000 usuarios cada uno con una determinada experiencia, quiero obtener la posicion del Usuario 3 ordenando de mayor a menor sin tener que hacer un "SELECT * FROM Users ORDER BY Experiencia" y tener que recorrer cada registro para obtener el indece del registro -.-

Usuario:              Experiencia:
Usuario 1            500
Usuario 2            358
Usuario 3            589
Usuario 4            955
Usuario 5            1254
Usuario 6            2121
Usuario 7            85
Usuario 8            159

"SELECT * FROM Users ORDER BY Experiencia DESC":

Usuario:              Experiencia:
Usuario 6            2121
Usuario 5            1254
Usuario 4            955
Usuario 3            589
Usuario 1            500
Usuario 2            358
Usuario 8            159
Usuario 7            85

Usuario 3 Posicion: 4

Actualmente lo hago de esta manera, pero hay que pedir todos los registros a la base de datos y quiera saber si hay otra forma:

Código (vb) [Seleccionar]
Private Function Obtener_Posicion()

   MiRecordset.Open "SELECT * FROM Users ORDER BY Experience DESC", MiConexion, adOpenDynamic, adLockOptimistic

   MiRecordset.MoveFirst
   MiRecordset.Find "Username = 'Usuario 7266'"

   If (MiRecordset.BOF = True) Or (MiRecordset.EOF = True) Then
       MsgBox "Usuario no encontrado"
       MiRecordset.Close
       Exit Function
   End If
   
   MsgBox MiRecordset.AbsolutePosition
   MsgBox MiRecordset.Fields("Experience")

   MiRecordset.Close

End Function
#13
Programación Visual Basic / Esperar por Accion?
19 Agosto 2009, 05:31 AM
Buenas, escribo para ver si existe alguna forma de esperar por un cambio en una variable y que el ejecutable no consuma tanto procesador, Ejemplo: tengo una variable llamada Accion tipo Boolean en False y mas o menos lo que quiero que haga es esto:

Código ( vb) [Seleccionar]


Do: DoEvents: Loop Until Accion = True


Esa es la funcion que yo uso pero consume procesador a ver si hay alguna alternativa que no consuma.

Saludos!  ::)
#14
Programación Visual Basic / VB y Flash
4 Junio 2009, 04:11 AM
Buenas, queria saber si hay alguna forma de que una animacion flash me quede por debajo de todos los controles de un formulario, intente mil maneras pero no lo logre.

Se puede si todos los controles los meto dentro de un picture, pero necesito la transparencia de algunos de ellos, ademas se ve muy feo.

A ver si me pueden ayudar, Saludos xD!
#15
Programación Visual Basic / Contenido html
22 Mayo 2009, 02:26 AM
buenas, tengo una duda, quiesiera saber si hay alguna forma de obtener los datos de una tabla de una pagina html.

Actualmente lo hago usando el control WebBroswer con el siguiente codigo:

Código (vb) [Seleccionar]
Private Sub Command2_Click()
    Text1 = WebBrowser1.Document.All.Tags("TD").Item(12).innertext
End Sub


Pero el problema esta en que usando ese codigo me devuelve el contenido de las tablas, pero las que estan vacias me no me las pone. Entiendo que esten vacias y no me devuelva texto alguno pero queria saber si se podia extraer esos datos y ponerlos en un listview de tal manera que queden exactamente igual a los datos de la tabla que quiero extraer, con campos vacios y todo.

Intente sacar los datos de esta web: (http://www.yugiohcardguide.com/spoilers/SDZW.html) y efectivamente lo hace, pero no me sirve ya que descarta las celdas vacias de cada fila.

Espero que puedan ayudarme o aportar alguna otra forma de hacerlo Saludos xD!
#16
bueno esta vez tengo una duda en el juego que estoy haciendo. el juego es online y funciona mas o menos asi:

un cliente se conecta al servidor y recibe toda la informacion del jugador y todo eso, luego el jugador ingresa a la la lista de todas las salas de juego creadas para seleccionar una y jugar con otro jugador. el juego es de cartas y cada sala abarca dos jugadores maximo. el problema esta en cuando estos dos jugadores entran en la sala, necesito q las dos pantallas esten sincronizadas en los movimientos de las cartas, eso lo logre, pero el problema esta en la conexion; yo habia hecho lo siguiente:

cuando el jugador Nº 1 entra en la sala crea una nueva conexion en un socket y lo pone a la espera, cuando el segundo jugador entra en la sala se conecta al socket que esta en espera y asi se conectan para poder transferir los datos. el problema lo encontre cuando el jugador que creo la sala esta detras de un router o conexion con ip de red osea internet compartido, lo que nos da una ip como esta 192.168.0.40 q son ips de redes privadas y con esa ip no se puede conectar el segundo jugador, he hay el problema T_T.

habia pensado q cuando el primer jugador cree la sala solo se quede hay y le mande su nick al servidor y que cuando se conecte el segundo jugador que le mande el nick al servidor y mediante esos dos nicks tranferir los datos solo entre esos 2 clientes y asi no tendria que crear una nueva conexion entre esos dos jugadores.

bueno a ver que me pueden recomendar ustedes.

Saludos y gracias de antemano por la ayuda que puedan ofrecer  ::)
#17
buenas, hay alguna forma de ejecutar un form en pantalla completa a una resolucion espesifica, pero que los controles no cambien de tamaño?
#18
Hola a todos otra vez, esta vez traigo una duda, quisiera saber si hay alguna forma de detectar cuando otro programa ha pulsado un boton, o averiguar el caption de ese boton.

La cosa es que desarrolle un programa para llevar el control de un ciber, llevando los registros de horas y articulos comprados y vendidos y todo eso, pero quiero que la aplicacion me registre automaticamente un valor cuando se pulse un boton de la otra aplicacion; en este caso el boton que asigna una hora a una maquina cliente.

Ya he intentado hacerlo pero por ningun lado me da xD!, a ver si me pueden guiar.

no se si me entienden pero por hay va la cosa, cualquier cosa me dicen y les explico mejor.

Saludos xD!
#19
Programación Visual Basic / Una ayudita pliss
21 Septiembre 2008, 04:54 AM
buenas a todos por aca espero que me puedan ayudar, veran tengo un proyecto en el cual quiero que a una imagen se le pueda colocar texto, en una Zona espesifica de la imagen, tambien que se le puedan montar otras imagenes encima o en alguna parte de la imagen, y que luego esa imagen se pueda guardar como una sola.

Aqui un ejemplo de mas o menos lo que se quiere:

http://rapidshare.com/files/147030576/yugioh_card_maker_1_0.zip.html

Claro no les pido un codigo fuente, solo ayuda para saber como puedo hacerlo Gracias por las respuestas que puedan aportar xD! ;)

#20
Programación Visual Basic / html Mail
16 Septiembre 2008, 01:30 AM
Buenas foreros a ver si tienen un codigo fuente de un mailer que me permita enviar mail's en formato html, encontre uno que envia imagenes, smylies, y eso pero eso no me sirve porque ya lo sabia hacer, la idea es que se pueda ver sin codigo o con codigo para poder agregar que si tablas, separadores, tags y otras cosas

Saludos Y espero por su ayuda xD!
#21
Hey que tal otra vez yo por aca, esta vez con una pregunta: a ver si alguien sabe como poner un fondo estatico a un listview (que cuando haga scroll para ver los demas items, este no cambie ni se mueva) solo para ver si se puede.

Saludos y espero que me ayuden
#22
Programación Visual Basic / Control Winsock
13 Septiembre 2008, 22:38 PM
Buenas Foreros, Estoy por aca con una incógnita que me llevo encima, la cosa es q tengo un proyecto de un juego online y para la conexión de cada cliente uso el control winsock, ahora aquí mis preguntas:

1. En el servidor utilizo un control winsock, por cada cliente q se conecte al servidor este crea un nuevo socket ósea otro winsock que seria WS(0) y si se conecta otro cliente seria WS(1) y así sucesivamente, ahora ¿esta matriz de controles tiene limite? ósea ¿que si se puede llegar al WS(99999) u otro numero?

2. ¿En caso de que tuviera límite cual seria?

3. ¿Hay otra forma de hacer esto?

4. Pongamos este ejemplo: Hay 10 clientes conectados al Servidor, lo que nos da Winsock's del 0 al 9, cuando se utiliza un Socket en el servidor y el cliente por alguna razón se desconecta, pongamos de ejemplo el WS(7) y se conecta otro cliente o el mismo en tal caso, no crea un socket en ese numero si no en uno nuevo ósea en un WS(10) y no en el 7

¿Hay alguna forma de usar los sockets que ya han sido borrados?

(Solo para no tener números tan altos cuando solo hay 30 clientes conectados y el último esta conectado al socket por ejemplo 72, aunque los que no están siendo utilizados son descargados de la memoria)

y por ultimo

5. ¿Hay algún limite en la transferencia de información a través del servidor?

Pregunto por el siguiente caso: suponiendo que hay 30 clientes conectados y todos hablando al mismo tiempo, ósea enviando datos al Server para que este reenvié la información a los clientes, y en caso de que las charlas contengan mas o menos 200 o 300 caracteres de información el Server no se colapsaría de tanta información?

De antemano gracias por las preguntas que se puedan responder y por las ideas que puedan aportar.