• Lunes 12 de Mayo de 2025, 04:37

Mostrar Mensajes

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


Mensajes - okap

Páginas: 1 [2]
26
C++ Builder / Problema Borrar Ejecutable Desde Setup
« en: Lunes 5 de Febrero de 2007, 11:27 »
Hola a todos:

La semana pasada publique un problema que tenía a la hora de borrar un ejecutable desde él mismo. Me propusisteis una solución que me fue de gran ayuda la cual consistía en crearme un fichero "Killer.vbs", el cual lo creaba desde el propio ejecutable antes de que este terminase. Al lanzar el archivo 'Killer.vbs', este se espera 5 seg. y tras este tiempo borra el ejecutable.
Pues bien todo esto funciona si lanzo el ejecutable tal cual, sin más. Pero el problema es que dicho ejecutable forma parte de una instalación, con un setup, etc. Este ejecutable del que hablo se debe de lanzar automáticamente en un determinado momento de la instalación, hacer su función y luego destruirse gracias al archivo 'Killer.vbs'. El problema está en que cuando el ejecutable se lanza desde la instalación, no se crea el fichero 'Killer.vbs' y evidentemente tampoco se borra el ejecutable.
Todo esto lo probé en una máquina con windows 98, No funcionó y pensé que el problema sería por alguna librería que me haría falta y que w98 no tendría, ya que en mi máquina con w2000 sí que funciona. He probado la instalación en una máquina con windows xp y el ejecutable no se borra ni tampoco se crea el fichero 'Killer.vbs'.
No sé por donde puede andar el problema. No entiendo por qué si lanzo el ejecutable sin más sí que funciona y, sin embargo, si se lanza desde el instalador no funciona lo de la autodestrucción del ejecutable.
Espero haberme explicado con claridad, para que me podais ayudar mejor.
Muchas gracias.

27
C++ Builder / Re: Borrar Un Ejecutable Desde él Mismo
« en: Viernes 2 de Febrero de 2007, 16:08 »
Muchisimas gracias por la gran ayuda prestada.
Un saludo

28
C++ Builder / Borrar Un Ejecutable Desde él Mismo
« en: Viernes 2 de Febrero de 2007, 13:41 »
Hola a todos. Tengo un duda y no sé como resolverla.
Tengo un programa ".exe" que realiza unas determinadas tareas, y lo que necesito es que cuando dicho ".exe" termine lo que tiene que hacer, se borre a sí mismo.
Si intento hacer un DeleteFile(...), desde el propio ejecutable, no me deja por que dicho ejecutable está en uso y de esta forma no se puede borrar así mismo.
¿Hay alguna forma de hacer esto?. He pensado en crearme un .bat que me lo haga, pero para este caso, no sé como lanzar dicho .bat de forma automática.
Espero hablerme explicado con claridad para que me podais ayudar.
Muchas gracias.

29
C++ Builder / Re: Leer De Un Fichero Para Grabar En Otro
« en: Jueves 1 de Febrero de 2007, 12:52 »
Muchas gracias. Me ha funcionado perfectamente para lo que quería.
Me ha sido de gran ayuda.
Un saludo.

30
C++ Builder / Re: Leer De Un Fichero Para Grabar En Otro
« en: Miércoles 31 de Enero de 2007, 13:18 »
No exactamente, verás el primer archivo es así:

#!A1#DC
#IMSR54.02/24.98
#HV50
#ERN0
#T16.26 #J13.55
#YIR43/ÿ@ þ( þ' þ& þ%    þ$ þ#  þ" þ! þ  þ þ þ    þ þ þ þ þ þ  þ þ þ þ þ  þ! þ@ þ" þ@ þ   $ þ) þ#G
#T01.44 #J19.64 #YN100/0/42///Texto de prueba#G

Y de la forma que necesito que quede es la siguiente:

#!A1
#DC
#IMSR54.02/24.98
#HV50
#ERN0
#T16.26
#J13.55
#YIR43/ÿ@ þ( þ' þ& þ%    þ$ þ#  þ" þ! þ  þ þ þ    þ þ þ þ þ þ  þ þ þ þ þ  þ! þ@ þ" þ@ þ   $ þ) þ#G
#T01.44
#J19.64
#YN100/0/42///Texto de prueba#G

Podrás observar que en el segundo archivo cada instrucción que empieza por # queda en una linea.
El problema está en que no consigo al crear el segundo fichero que la instrucción que ves con simbolos raros se me copie. Por eso me he planteado lo de leerlo en binario.
La idea es dejar el segundo fichero tal cual está el primero pero con la única diferencia de que necesito que cada instrucción que empieza por # quede en una única línea. Por cierto no hagas caso a #G, que verás al final de cada línea ya que eso no me interesa, solo si me encuentro con # seguido de cualquier cosa que no sea una G.

El problema es que con el tema de copiar ficheros al buffer y tratar ficheros en general, sobre todo en modo binario no estoy muy puesto. Te agradecía mucho, si te es posible, que me aclarases un poco la manera de afrontarlo.

Muchas gracias por todo.

31
C++ Builder / Re: Leer De Un Fichero Para Grabar En Otro
« en: Miércoles 31 de Enero de 2007, 12:21 »
Muchas gracias por todo voy a probar si me funciona.

32
C++ Builder / Re: Leer De Un Fichero Para Grabar En Otro
« en: Miércoles 31 de Enero de 2007, 10:11 »
Me gustaría aclarar lo siguiente. Desconozco si tengo que abrir el fichero origen en modo ascii o en modo binario, pero si lo abro en modo binario no sé si podré leer carácter a carácter para diferenciar cuando leo un ‘#’ para poder así bajar de línea en el fichero destino.
Además necesito abrir el fichero origen y luego grabar el fichero destino con el mismo nombre y en el mismo directorio, pero no sé como cargar el fichero origen en memoria o buffer para poder leer de ahí y a la vez escribir en el fichero destino.

33
C++ Builder / Re: Leer De Un Fichero Para Grabar En Otro
« en: Miércoles 31 de Enero de 2007, 09:55 »
No exactamente. Lo que quiero es leer el fichero origen caracter a caracter y grabarlo en el fichero destino caracter a caracter. Lo quiero así para que a la vez que voy leyendo del fichero de origen, saber cuando tengo que meter un '\n\r', para que me ponga la nueva instrucción en una sóla línea.
Para aclarar todo esto diré que cada instrucción viene precedida por el caracter '#', y lo que necesito es que sólo haya una instrucción por línea tal que así:

#!A1
#BON
#IMSR54.02/24.98
#DC
#N9
#ERN0
#T16.26
#J13.55
#YIR43/ÿ
@ þ(     þ'     þ&     þ%     þ$           þ#
  þ"           þ!       þ              þ¬
  þ              þ        þ              þ  
  þ              þ        þ                  þ      
  þ            þ          þ          þ      ¬ þ      þ      ! þ@ þ      " þ@ þ      $ þ    ) þ#G

Pero el problema lo tengo al procesar esta última instrucción ya que se trata de una imagen y tiene todos esos caracteres "extraños" que no puedo leer, con lo cual el fichero destino no me quedaría igual que el origen.

Gracias.

34
C++ Builder / Leer De Un Fichero Para Grabar En Otro
« en: Miércoles 31 de Enero de 2007, 09:10 »
Hola:
Tengo un programa de diseño de etiquetas el cual una vez que tengo diseñada la etiqueta me genera un archivo de texto con el juego de instrucciones que le envia a la impresora. Dicho archivo yo lo tengo que tratar para introducirle una instrucción que el pograma de deseño no contempla y por eso se la tengo que introducir yo.
El problema es que anteriormente utilizaba otro programa el cual me generaba dicho fichero poniendo una instrucción por línea, pero el nuevo pone 2 o más instrucciones en una misma línea. Necesito leer dicho fichero y guardalo en otro poniendo cada instrucción en una sóla línea.

Este es un ejemplo del fichero que generaba el primer programa de diseño de etiquetas:

#!A1
#BON
#IMS54.0/25.0
#DC
#N9
#ERN0
#T6.2
#J3.9
#M1/1
#YN101/1/40///**031#G
#T12.1
#J6.4
#M1/1
#YN101/0/181///**019#G

Este es el código que genera el nuevo programa:

#!A1#BON
#IMSR54.02/24.98
#DC#N9
#ERN0
#T16.26 #J13.55
#YIR43/ÿ
@ þ(     þ'     þ&     þ%     þ$           þ#
  þ"           þ!       þ              þ¬
  þ              þ        þ              þ  
  þ              þ        þ                  þ      
  þ            þ          þ          þ      ¬ þ      þ      ! þ@ þ      " þ@ þ      $ þ    ) þ#G

Siendo la última línea la instrucción referente a una imagen que he introducido y la cual me da problemas al leer del fichero original y grabarla en uno nuevo, donde separo cada instrucción en una línea. Sólo me coge los diez primeros caracteres.

Este es mi problema. Lo que he hecho es abrir el fichero original y el de destino mediante la clase TstringList, pero al leer cada línea como cadena, no consigo grabar en el fichero destino dicha instrucción tal cual está en el original.

Otra de las cosas que he intentado es esta:

  FILE *forigen;
  FILE *fdestino;

  forigen = fopen(rutaFicheroInAux.c_str(),"r");
  fdestino = fopen("c:\destino.txt","w");

  char caracter = ' ';
  char caract_aux = ' ';

  while(!feof(forigen))
  {
    fscanf(forigen,"%c",&caracter);

    if(caracter == '#')
    {
      caract_aux = '\n';
      fprintf(fdestino,"%c",&caract_aux);
      caract_aux = '\r';
      fprintf(fdestino,"%c",&caract_aux);
      fprintf(fdestino,"%c",&caracter);
    }
    else
      fprintf(fdestino,"%c",&caracter);
  }//fin del while

  fclose(forigen);
  fclose(fdestino);

Pero no me graba en el fichero destino caracteres ‘B’ y ‘C’, todos en una misma línea. Pensaba que leyendo el fichero origen carácter a carácter y grabandolo de la misma manera en el fichero destino tendría éxito, pero no ha sido así.

Por favor me gustaría que me mostraseis otra opción para conseguir mi objetivo.

Muchas gracias.

35
C++ Builder / Puntos De Parada Desordenados Cuando Compilo
« en: Viernes 19 de Enero de 2007, 15:54 »
Tengo un problema con los puntos de parada a la hora de compilar una dll. El problema es que cuando compilo y entro para depurar el código poniendo puntos de parada y demás, los puntos azules que aparecen en cada línea de código están desordenados y por ejemplo aparecen en lineas donde no hay código, etc.

A esta dll la llamo desde otra dll con la siguiente función:

void __fastcall TFrmContado::CargaImpresionWindows(TFrmMenu * fPadre, AnsiString sql)
{
      AnsiString(*lpfuncion)(TFrmMenu * , AnsiString, double, double );

    lpfuncion =   (AnsiString(*)(TFrmMenu * , AnsiString , double, double)) AbreDLL ("IMPCONT.DLL", "_AbrirImpContModal");

    if (lpfuncion != NULL)
    {
      (*lpfuncion)(fPadre,sql, entregado, cambio);
    }
}

Y el punto de entrada en mi dll es el siguiente:

AnsiString AbrirImpContModal(TFrmMenu *fPadre, AnsiString q, double entregado, double cambio)

En el fichero “.h” tengo declarado el prototipo de esta función, de la siguiente manera:

_IMPCONTADODLL AnsiString AbrirImpContModal(TFrmMenu *fPadre, AnsiString q, double entregado, double cambio);

Ya he probado borrar obj y hacer un build de toda la dll, y continuan los puntos de parada desordenados.
Me inclino a pensar que el problema puede estar en el punto de entrada a la dll, pero desconozco el motivo.
Si a alguno de vosotros le ha ocurrido lo mismo agradecería mucho vuestra ayuda.
Muchas gracias.

36
C++ Builder / Re: Obtener Lista De Impresoras
« en: Martes 16 de Enero de 2007, 09:05 »
En primer lugar muchas gracias por tu respuesta.
He probado el código que me propones y sí que me funciona. Pero para que funcione es necesario incluir la librería, #include <Printers.hpp>, en el .h.
Realmente era esto lo que necesitaba saber, ya que cuando me declaraba una variable de la clase TPrinter el compilador me decía que desconocía la clase TPrinter.
Realmente no hay que declararse ninguna variable TPrinter, como yo pensaba, sino que incluyendo dicha librería ya puedes acceder a todas las propiedades de la clase TPrinter simplemente poniendo, Printer()->propiedad deseada.
Hago esta aclaración por si a alguién le sirve de ayuda al igual que a mí.
Muchas gracias

37
C++ Builder / Obtener Lista De Impresoras
« en: Lunes 15 de Enero de 2007, 18:50 »
Hola:
 
  Necesito obtener la lista de las impresoras que hay instaladas en windows.
  Me interesaría hacerlo con la clase TPrinter pero no encuentro la manera de conseguirlo.
  He probado a declararme una variable TPrinter y me muestra el error "Undefined simbol TPrinter". Desconozco si tengo que incluir alguna librería para solucionar este problema.
  Gracias.

Páginas: 1 [2]