Título: Sobre el Molebox (compilador/compresor) Publicado por: Dracomega en 28 Mayo 2010, 10:57 am Buenas! No se si va aqui el tema... Si no moverlo..
La cosa es que tengo el Molebox, que para quien no lo conozca es un programa que comprime en un solamente ejecutable, librerias, imagenes etc etc... Por supuesto no funciona para todos los programas, pero para que yo lo quiero me basta. El problema es, cuando el programa comprimido genera un archivo, que no puede introducirlo dentro, ya que eso solo lo puede hacer el molebox... y segun lo que he visto, el archivo me lo crea en Mis documentos/data Para el uso que le doy esta bien eso... ya que cada usuario tendria sus archivos... pero claro, me gustaria que la carpeta no se llamara Data, por que si tengo otro progama que tambien lo mete ahi, se mezclaria todo... Por lo que he mirado en el Molebox, en entorno grafico no viene ninguna opcion para cambiarlo... en entorno consola no se... http://www.taringa.net/posts/downloads/4402803/MoleBox-Portable.html Aqui esta en programa.. ¿Alguna forma de hacerlo? Gracias de antemano! ^^ EDIT: He intentado hacer varios patch, con archivos que no necesitan modificarse y otro con los que si, separando el ejecutable... Pero nada no hay forma, siempre va a "mis documentos/data" ni siquiera mira si hay algo dentro de el mismo... Ya me estoy desesperando T_T Por cierto, se me olvido decir el uso: Es para un juego creado con rpg maker, y los archivos que se van a Mis documentos/data son las partidas guardadas, es decir Save01.lsd... etc EDIT2: Descubri, que la carpeta que crea dependera de donde este el path del juego, es decir, si esta en una carpeta data, creara una en mis documentos\data Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: Dracomega en 2 Junio 2010, 22:41 pm Perdon por el doble post... T_T Es que me corria un poco de prisa.. :-\.
¿Nadie sabe como se podria hacer? :huh: Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: karmany en 3 Junio 2010, 20:50 pm La verdad que el Molebox es un excelente programa, pero parece ser que ha tenido algún problemilla con VIsta y W7. Yo tuve algunos (verifica esto con tu juego).
Sobre el tema que comentas, es posible que esa carpeta no la cree molebox, sino el juego...¿? ¿En esa carpeta que hay? No entiendo mu bien lo que quieres decir: "El problema es, cuando el programa comprimido genera un archivo, que no puede introducirlo dentro, ya que eso solo lo puede hacer el molebox" A mi me parece que insertas la base de datos de los juegos dentro de molebox y cuando se intenta actualizar pues no puede hacerlo. Yo no los pondría dentro(si es este el problema) y verificaría la ruta desde juego. Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: Dracomega en 4 Junio 2010, 00:09 am El juego siempre crea las partidas dentro de su directorio, asi que no creo que sea el mismo juego el que te los cree en mis documentos\data.
La cosa es que las partidas no las pongo a dentro, pero como he dicho el juego comprimido en Molebox no intenta arrancar las partidas dentro del dirrectorio sino en la carpeta data, por lo que deduzco que es el molebox el que modifica el ejecutable... Y segun lo que dices, si tiene problemas con vista y seven, seria una pua que te intentara crear la carpeta data, y lo tenga como el xp... ya que Documents and setting no existe en vista y en seven... Un saludo Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: karmany en 4 Junio 2010, 00:33 am En consola tampoco he visto la opción...
De todos modos me parece algo raro ya que la ruta mis documentos\data no es una ruta común de molebox. Por eso yo sigo pensando que se trata del juego. Yo haría pruebas; usa molebox solamente con el exe del juego, no lo comprimas ni lo encriptes para hacer pruebas. Verifica también si el juego (antes de comprimir con molebox) tiene alguna opción de ruta para guardar los save.lsd. Mira a ver si el juego tiene algún archivo ini o similar, ya que si se extrae en otro directorio es posible que pueda modificar el patch del juego... Incluye sólo archivos ocx dll etc.. en un primer momento, no incluyas otros tipos de archivo... Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: LSL en 4 Junio 2010, 00:39 am abre una ventana de simbolo de sistema (MSDOS), y con el comando SET, mira si te sale la carpeta de "\Mis Documentos\Data", en alguna configuración de variables de entorno.
Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: Dracomega en 4 Junio 2010, 01:39 am Muchas gracias por sus respuestas ^^
A ver he descubierto algo, primero LSL no tengo ninguna variable de entorno si quiera apuntando a mis documentos (Hallada el D:\documentos). Y la carpeta que crea en mis documentos, depende del nombre que tenga la carpeta donde va el proyecto comprimido. Es decir, si juego.exe esta en una carpeta llamada Data, creara otra carpeta en mis documentos llamada data, y si esta en prueba, la llamara prueba. Si solo paso por molebox el ejecutable, esto no lo tiene en cuenta. Mañana ire probando a dejar diferentes archivos (Como base de datos, arbol de mapas, ini...) fuera del pack, a ver cual es el responsable... Y a ver si podias ayudarme, ya que me gustaria no dejar ninguno fuera sin proteccion. Un saludo, y gracias de nuevo ^^ Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: Dracomega en 5 Junio 2010, 16:08 pm Explico un poco como funciona el juego antes de arrancar, he encontrado una solucion alternativa
1º Batch que genera ruta donde estan unos ficheros web; detecta si existe una partida completada y arranca un arrancador grafico 2º Arrancador grafico en VB6, tiene un pequeño navegador y unas opciones para selecionar entre varios juegos, arranca otro script en batch enviando distintos parametros 3º Segun los parametros enviados, mueve los ficheros de la carpeta data a una nueva creada y manda un ejecutable. Finalmente arranca el ejecutable, que carga el path del molebox donde esta el juego. Cuando termina el juego, vuelve los ficheros a donde estaban, y borra los archivos temporales. Lo he hecho casi todo por batch, debido a mis escasos conocimientos de programacion... xD Ahora lo unico que me quedaria, es hacer una variable de entorno con la ruta de "mis documentos" para detectar si hay una partida completada. Nota: Lo de detectar la partida completada, lo hago con el comando FIND, buscando un nombre en concreto de un charset que se usa cuando el juego termina, con este unico fin xDDDD Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: LSL en 5 Junio 2010, 21:19 pm Ahora lo unico que me quedaria, es hacer una variable de entorno con la ruta de "mis documentos" para detectar si hay una partida completada. en "Mi PC", propiedades del sistema, Opciones avanzadas, "Variables de entorno", Variables de usuario, pulsar en Nueva, le das un "nombre" sin espacios blancos y le indicas el path ó el valor de la variable. Luego para hacer referencia a ella en un archivo batch, escribes la variable entre los simbolos %, ejemplo %juego% Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: Dracomega en 6 Junio 2010, 03:16 am Ya, el problema es que tiene que funcionar en todos los ordenadores :S
Lo que he visto por google, es un pequeño codigo en python que lo sacaba del registro de windows, lo que no se es si funcionara tambien en windows vista y seven... Código
¿Alguna otra opcion mas sencilla? Un saludo ^^ Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: LSL en 6 Junio 2010, 12:30 pm como utilizas un archivo batch para arrancar el juego, dentro de ese .bat utiliza el comando SET de la consola de MSDOS para configurar las variables de entorno que necesites, así te aseguras que sean siempre las mismas en todos los PC.
Citar Microsoft Windows XP [Versión 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. >set /? Muestra, establece o quita las variables de entorno de cmd.exe. SET [variable=[cadena]] variable Especifica el nombre de la variable de entorno. cadena Especifica una serie de caracteres que se asignará a la variable. Escriba SET sin parámetros para ver las variables de entorno actuales. Si las extensiones de comando están habilitadas, SET cambia así: "Cuando se llama al comando SET solamente con un nombre de variable, sin signo de igual ni valor, se mostrarán los valores de todas las variables cuyos prefijos coincidan con el nombre especificado como parámetro para el comando SET. Por ejemplo: SET P mostrará todas las variables que empiecen con la letra 'P' El comando SET establecerá ERRORLEVEL en 1 si no se encuentra el nombre de la variable en el entorno actual. El comando SET no permitirá que un signo de igual sea parte de una variable. Se han agregado dos modificadores nuevos al comando SET: SET /A expression SET /P variable=[promptString] El modificador /A especifica que la cadena a la derecha del signo de igual es una expresión numérica que es evaluada. El evaluador de expresiones es bastante simple y es compatible con las siguientes operaciones, en orden de precedencia decreciente: () - agrupar ! ~ - - operadores unarios * / % - operadores aritméticos + - - operadores aritméticos << >> - desplazamiento lógico & - bit a bit y ^ - bit a bit exclusivo o | - bit a bit = *= /= %= += -= - asignación &= ^= |= <<= >>= , - separador de expresión Si se utiliza cualquiera de los operadores lógicos o de módulo, será necesario escribir la cadena entre comillas. Cualquier cadena de la expresión que no sea numérica, se tratará como variable de entorno cuyo valor se convertirá a tipo numérico antes de utilizarse. Si se especifica una variable que no está definida en el entorno actual, se utilizará el valor cero. Esto permite hacer operaciones aritméticas con los valores de variables de entorno evitando el escribir todos estos signos % para obtener sus valores. Si se ejecuta el comando SET /A desde la línea del comando fuera de la secuencia de comandos, entonces se mostrará el valor final de la expresión. El operador de asignación requiere un nombre de variable de entorno a la izquierda del operador de asi gnación. Los valores numéricos son números decimales, a no ser que lleven el prefijo 0x delante para los números hexadecimales, y 0 para los números octa les. De esta manera 0x12 es lo mismo que 18, y lo mismo que 022. Nota: la notación octal puede ser confusa: 08 y 09 no son números válidos porque 8 y 9 no son dígitos octales válidos. El modificador /P permite establecer el valor de una variable para una línea de entrada escrita por el usuario. Muestra la cadena del símbolo del sistema antes de leer la línea de entrada. La cadena del símbolo del sistema puede estar vacía. La sustitución de variables de entorno ha sido mejorada así: %PATH:str1=str2% expandirá la variable de entorno PATH, sustituyendo cada repetición de "str1" en el resultado expandido con "str2". "str2" puede ser la cadena vacía para borrar efectivamente todas las repeticiones de "str1" de la salida expandida. "str1" puede empezar con un asterisco, en cuyo caso, coincidirá con lo contenido en la salida expandida desde su inicio, hasta la primera aparición del fragmento de str1 que queda. También puede especificar subcadenas para una expansión. %PATH:~10,5% expandirá la variable de entorno PATH, y usará sólo los 5 caracteres a partir del décimo primer carácter (desplazamiento 10) del resultado expandido. Si la longitud no se especifica, se utilizará el resto del valor de la variable. Si algún número (desplazamiento o longitud) es negativo, entonces el número usado es la longitud del valor de la variable de entorno añadido al desplazamiento o longitud especificados. %PATH:~-10% extraerá los 10 caracteres de la variable PATH. %PATH:~0,-2% extraerá todo menos los 2 últimos caracteres de la variable PATH. Finalmente, se ha añadido compatibilidad para la expansión de la variable retardada. Este soporte está siempre deshabilitado de forma predeterminada, pero puede habilitarse o deshabilitarse a través del modificador de línea de comandos /V a CMD.EXE. Ver CMD /? La expansión de la variable de entorno es útil para tratar con las limitaciones de la expansión actual, las cuales ocurren cuando una línea de texto es leída, y no cuando se ejecuta. El siguiente ejemplo demuestra el problema con la expansión de la variable inmediata: set VAR=antes if "%VAR%" == "antes" ( set VAR=después if "%VAR%" == "después" @echo Si esto se puede ver, entonces significa que funcionó ) dado que %VAR% se sustituye al mismo tiempo en ambas instrucciones IF cuando se lee la primera instrucción IF, pues incluye lógicamente al cuerpo del IF, el cual es una instrucción compuesta. De esta manera, IF, dentro de la instrucción compuesta está realmente comparando "antes" con "después" lo cuál nunca será igual. De un modo parecido, el siguiente ejemplo no funcionará como se espera: set LIST= for %i in (*) do set LIST=%LIST% %i echo %LIST% en esto NO generará una lista de archivos en el directorio actual, pero en su lugar establecerá la variable LIST en el último archivo encontrado. De nuevo, esto ocurre porque %LIST% es expandido sólo una vez cuando la opción FOR es leída, y en ese momento la variable LIST variable está vacía. Así el ciclo actual FOR que se está ejecutando es: for %i in (*) do set LIST= %i el cual sólo mantiene el valor LIST hasta el último archivo encontrado. La expansión de la variable de entorno retardada permite utilizar un carácter diferente (el signo de exclamación para expandir variables en tiempo de ejecución. Si la expansión de la variable retardada está habilitada, los ejemplos se pueden escribir de la siguiente manera para que funcionen como es necesario: set VAR=antes if "%VAR%" == "antes" ( set VAR=después if "!VAR!" == "después" @echo Si esto se puede ver, entonces significa que funcionó ) set LIST= for %i en (*) do set LIST=!LIST! %i echo %LIST% Si las extensiones de comando están habilitadas, hay varias variables dinámicas de entorno que pueden ser expandidas pero que no se muestran en la lista de variables que muestra ESTABLECER. Estos valores de variable se calculan dinámicamente cada vez que el valor de la variable se expande. Si el usuario define una variable explícitamente con uno de estos nombres, entonces esa definición suplantará la variable dinámica abajo descrita: %CD% - se expande a la cadena del directorio actual . %DATE% - se expande a la fecha actual usando el mismo formato que el comando DATE. %TIME% - se expande a la hora actual usando el mismo formato que el comando TIME. %RANDOM% - se expande a un número decimal aleatorio entre 0 y 32767. %ERRORLEVEL% - se expande al valor de NIVEL DE ERROR actual %CMDEXTVERSION% - se expande al número actual de versión de las extensiones del comando del procesador. %CMDCMDLINE% - se expande a la línea de comando original que invocó el Procesador de comandos. Título: Re: Sobre el Molebox (compilador/compresor) Publicado por: Dracomega en 6 Junio 2010, 21:56 pm Sigo en las mismas... de donde saco la ruta de mis documentos para asignar a esa variable?
Por que para eso alguien me deberia decir donde esta, y esa informacion la podria guardar con set y usarla posteriormente... pero el caso es que como en cada ordenador es diferente (Yo por ejemplo tengo mis documentos en otra particion del disco duro) es arriesgado intuir nada xD Si tengo tiempo, subire todo el proyecto, con un juego improvisado para que probeis.. u.u Un saludo ^^ ;D EDIT: Ya esta hecho http://www.megaupload.com/?d=I6KWZSFV Lo descomprimis, y para probarlo es el Game.exe. En la carpeta SRC teneis todos los bat y el codigo del arrancador grafico. Un saludo |