Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-04-2005
Avatar de noe
noe noe is offline
Miembro
 
Registrado: dic 2003
Ubicación: Mexico
Posts: 111
Poder: 21
noe Va por buen camino
Question evitar ejecutar la misma aplicacion 2 veces

Saludos a todos los compañeros de este foro. un saludo muy cordial.

Bueno, mi pregunta es la siguiente. ¿Como puedo evitar que un usuario ejecute la misma aplicacion que realice mas de una vez?.

Bueno para este sistema uso tablas paradox y delphi 5. (Es que el sistema ya esta viejito).

Saludos a todos en verdad este foro resulta de mucha ayuda para todos los que estamos en este rollo.

Atte Noe.
Responder Con Cita
  #2  
Antiguo 05-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Prueba con la unidad UIApp de mi página

// Saludos
Responder Con Cita
  #3  
Antiguo 06-04-2005
Avatar de noe
noe noe is offline
Miembro
 
Registrado: dic 2003
Ubicación: Mexico
Posts: 111
Poder: 21
noe Va por buen camino
Unhappy

Gracias roman por tu respuesta pero no logre resolverla podrias explicarme como lo hago con la funcion findwindow.
O mejor te agradecere me proporciones algo de codigo, si es que me puedes hacer el favor.

Gracias de todos modos.
Responder Con Cita
  #4  
Antiguo 06-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues el código ya te lo he proporcionado. ¿Qué es lo que no funciona?

La unidad UIApp no hace uso de la función FindWindow justamente por los motivos que explico en mi página. Para usar la unidad únicamente tienes que incluirla en el archivo dpr (menú Project|View Source):

Código Delphi [-]
program Project1;

uses
  UIApp,
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Únicamente con esto se impide la ejecución de la segunda instancia.

Acabo de probar con Delphi 5 y funciona bien.

// Saludos
Responder Con Cita
  #5  
Antiguo 07-04-2005
Toñico Toñico is offline
Miembro
 
Registrado: ene 2005
Posts: 50
Poder: 20
Toñico Va por buen camino
Hola Noe,

también puedes usar un componente que está incluido en la colección LMD-Tools SE. La colección es de pago, aunque hay muchos componentes libres. la web donde los puedes encontrar es www.lmd.de.

Un saludo.
Responder Con Cita
  #6  
Antiguo 07-04-2005
Avatar de noe
noe noe is offline
Miembro
 
Registrado: dic 2003
Ubicación: Mexico
Posts: 111
Poder: 21
noe Va por buen camino
Thumbs up Gracias roman

Muchas gracias Roman, ya funcionó, solo era eso, incluir la unidad en el archivo dpr n el uses, funciona a la perfeccion.

No cabe duda que siempre nos ayudas a todos.
Gracias
Responder Con Cita
  #7  
Antiguo 07-04-2005
Avatar de noe
noe noe is offline
Miembro
 
Registrado: dic 2003
Ubicación: Mexico
Posts: 111
Poder: 21
noe Va por buen camino
Question No se puede abrir otro ejecutable de delphi diferente

Roman, todo funciona muy bien, pero fijate que tengo varias aplicaciones realizadas. cuando intente abrir otra no me deja, habria una forma para poder ejecutar aplicaciones pero que sean diferentes?.
bueno se que es mucho pedir pero se agradece la ayuda de antemano.
Gracias.
Responder Con Cita
  #8  
Antiguo 07-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por noe
habria una forma para poder ejecutar aplicaciones pero que sean diferentes?.
Claro que sí. Si lees el texto de la página verás que tienes que poner tus propios valores para las cadenas sMutex y sActivar (ambas), esto es, deben ser únicas para cada aplicación. Puedes generar valores oprimiendo Ctrl-Shift-G en el editor de Delphi.

// Saludos
Responder Con Cita
  #9  
Antiguo 11-01-2008
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Podriais pasarme esa unidad?? Necesito eso mismo que explicasteis, que una aplicacion no pueda ejercutarse mas de una vez al mismo tiempo. Un saludo!
Responder Con Cita
  #10  
Antiguo 11-01-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Puedes conseguir la unidad "UIApp" en la página web de Román.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #11  
Antiguo 11-01-2008
xio xio is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Poder: 18
xio Va por buen camino
Gracias! Es que los enlaces que hay en los comentarios de arriba no estan bien.

Un saludo!
Responder Con Cita
  #12  
Antiguo 30-04-2008
cascarrabias cascarrabias is offline
Miembro
 
Registrado: abr 2006
Posts: 103
Poder: 19
cascarrabias Va por buen camino
Hola, se que es un post viejo pero, ROMAN, mira estoy utilizando tu unidad, y funciona muy bien lo unico es que la excepcion no es silenciosa para mi, si me restaura o da el foco a la primera instancia pero lo hace mandando un mensage de error, tal vez la cosa este en que estoy usando windows vista!, tambien utilizo Delphi 2007. Saludos y gracias por tu unidad.

El error dice lo siguiente:

Application Error
Exception EAbort in module "nombre poyecto".exe at 002BE4F6.
Operation Aborted.
Responder Con Cita
  #13  
Antiguo 30-04-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Aunque está escrito en Builder C++, lo puedes traducir a delphi. Es posible que te sirva de ayuda:

Evitar dos instancias de una aplicación

Saludos.
Responder Con Cita
  #14  
Antiguo 26-05-2008
Alliance Alliance is offline
Miembro
 
Registrado: may 2008
Posts: 29
Poder: 0
Alliance Va por buen camino
Cita:
¿Como puedo evitar que un usuario ejecute la misma aplicacion que realice mas de una vez?
hola, eso que quieres se puede hacer de la siguiente manera, con esto el programa se ejecutara una solo vez, si quieres volver a ejecutarla tendras que reniciar la computadora.

Código:
var
 programa: integer;
 begin
 if GlobalFindAtom('Repetido') = 0 then
    Programa := GlobalAddAtom('Repetido');
    else begin
    ShowMessage('No puedes ejecutar el programa mas de una vez');
  end;
end;
espero que te sirva

Greeting
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


La franja horaria es GMT +2. Ahora son las 18:58:00.


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