Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
efelix Va por buen camino
Cantidad de veces que se ejecuta una aplicación

Hola a todos. Saludos. Soy nuevo en la programación en delphi, estoy trabajado con delphi 7, en una aplicación de bases de datos con Microsoft SQL Server 2000, necesito saber como se puede saber la cantidad de veces que se ejecuta una aplicación. Porque deseo que la primera vez que se ejecute la misma mostrar un formulario solicitando datos que luego los utilizaré para poner como encabezado en todos los informes de la aplicación. Este formulario debe mostrarse solamente una vez, es decir la primera vez que se jecute la aplicación. Muchas Gracias. Disculpen si este tema no es para este foro.
Responder Con Cita
  #2  
Antiguo 07-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
La única forma es incrementar la cuenta cada vez que ejecutas un formulario, puedes guardar ese datos en el registro, en un archivo de texto o en alguna base de datos, pero el procedimiento es similar. Aquí te dejo una función que incrementa la cuenta y te devuelve el resultado, en este caso uso el registro de windows:

Código Delphi [-]
uses Registry;

function IncCount: Integer;
begin
  Result:= 1;
  with TRegistry.Create do
  try
    RootKey:= HKEY_CURRENT_USER;
    if OpenKey('\Software\TuNombre',TRUE) then
    begin
      if ValueExists('Count') then
        Result:= ReadInteger('Count') + 1;
      WriteInteger('Count',Result);
      CloseKey;
    end;
  finally
    Free;
  end;
end;

Solamente llama esta función en la parte del programa donde quieres comprobar el numero de ejecuciones, por ejemplo en el evento OnCreate del formulario principal:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowMessage(IntToStr(IncCount));
end;
Responder Con Cita
  #3  
Antiguo 09-11-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
efelix Va por buen camino
Saludos seonane, muchas gracias por tu respuesta, me sirvió de algo, pero me queda la siguiente duda, imaginate que haces una aplicación, que creas un instalador para la misma, que es para comercializarla, con esta solución de escribir en el registro de windows según la función que me diste, cuando se reinstale el sistema operativo se pierde la efectividad de la misma, mi pregunta es la siguiente como puedo evitar que esto suceda, es decir evitar que se modifique el registro. Disculpa la molestia y muchas gracias por tu explicación.
Responder Con Cita
  #4  
Antiguo 09-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Eso depende de lo que quieras conseguir. Me explico, si lo que quieres evitar es que se tengan que volver a introducir los datos de configuración podrías generar un archivo con una copia de los datos de configuración, archivo que tu cliente debería de guardar en lugar seguro (un Cd, otro disco) y tu programa debería dar la opción la primera vez que se ejecuta de introducir los datos de nuevo o utilizar la copia guardada.

Ahora bien, si lo que quieres es crear una especie de "demo" que se ejecute un numero de veces limitado, pues no puedes hacer nada. Si tu programa esta en un Cd por ejemplo, y el disco duro es formateado, es imposible saber si tu aplicación ya ha sido ejecutada. Esa información tienen que guardarse en alguna parte. Incluso podríamos pensar en distribuir nuestra aplicación en un disco o memoria usb y modificar el contenido de este al ejecutar nuestra aplicación, pero nada impediría que el "cliente" hiciera una copia del disco antes de empezar a instalar el software.

Yo solo veo dos soluciones, usar una llave hardware (busca en google, las hay a muy buen precio), o si el cliente dispone de conexión a Internet hacer que nuestra aplicación pida permiso para ejecutarse a través de Internet. De esta forma podríamos controlar, cuando, como y cuantas veces se ejecuta la demo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
evitar ejecutar la misma aplicacion 2 veces noe API de Windows 13 26-05-2008 19:30:03
¿Cuantas veces se ejecuta mi aplicación? m@r Varios 6 07-11-2006 15:28:33
no ejecuta mi aplicacion en un servidor de red jas010 Tablas planas 3 01-02-2005 00:23:57
mantener un archivo en memoria mientras ejecuta la aplicacion agustincs API de Windows 8 01-09-2004 02:05:57
ejecutar aplicacion 2 veces en misma maquina maruenda Varios 1 07-02-2004 19:19:24


La franja horaria es GMT +2. Ahora son las 12:31:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi