Delphi - Aplicacion solo se ejecute una vez

 
Vista:

Aplicacion solo se ejecute una vez

Publicado por Josu (1 intervención) el 23/07/2003 10:04:25
Hola!!!!
Como se puede hacer para que la aplicacion solo pueda estar siendo ejecutada una vez en el ordendador. Lei hace tiempo que esto se podia controlar, pero no encuentro como.
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Aplicacion solo se ejecute una vez

Publicado por Delfino (1216 intervenciones) el 23/07/2003 13:14:44
En el registro de windows existe una clave llamada "RunOnce", para q una aplicacion se ejecute solo una vez tienes q poner su nombre en esa clave..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Aplicacion solo se ejecute una vez

Publicado por BigLuis (463 intervenciones) el 23/07/2003 16:46:56
Si es muy importante, yo tengo implementada una unidad para hacer lo que quieres, de forma que si la aplicacion ya está corriendo minimizada, por ejemplo, al intentar correrla de nuevo lo que hace es traerla a primer plano, te la puedo enviar por Email.La unidad es pequeña pero no lo suficiente para ponerla en el foro.No me gusta contestar de forma particular ya que el resto se queda sin nada, pero as veces no hay otra solucion.
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Aplicacion solo se ejecute una vez

Publicado por Josu (1 intervención) el 23/07/2003 17:36:19
Muchas gracias Delfino y BigLuis.
Bueno en principio no creo que tenga problemas para hacer lo del registro Registro de Windows con la clase TRegistry... si eso ya te comento BigLuis...
Saludos y reitero las gracias!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Aplicacion solo se ejecute una vez

Publicado por josu (42 intervenciones) el 23/07/2003 18:15:21
Hum!!! Con la clave RunOnce parece que lo que se consigue es que windows te ejecute la aplicacion solo la primera vez que reinicializas.

No hay alguna propiedad o metodo de Application para que solo se pueda ejecutar una instacia del programa a la vez? Me suena que era por ahi

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Aplicacion solo se ejecute una vez

Publicado por maCo (4 intervenciones) el 23/07/2003 18:24:57
hay diferentes formas de hacerlo.
una es buscando el nombre de la clase principal del programa con la funcion API FindWindow, supon que se llama TfrmPrincipal

var hApp: cardinal;
..
hApp := FindWindow('TfrmPrincipal', nil);
if hApp <> 0 then CrearInstancia()

eso lo puedes poner por ejemplo en el archivo dpr si hApp es igual a 0 creas el programa que es Application no se que.
no tengo delphi instalado aqui
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Aplicacion solo se ejecute una vez

Publicado por josu (42 intervenciones) el 23/07/2003 18:25:00
Lo tengo chicos... asi:

program MyApp;
uses
Windows,Forms,
MyApp1 in 'MyApp1.pas' {Form1};

var
Mutex : THandle;
{$R *.RES}

begin
Mutex := CreateMutex(nil, True, 'MyAppName');
if (Mutex <> 0) and (GetLastError = 0) then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
if Mutex <> 0 then
CloseHandle(Mutex);
end;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Aplicacion solo se ejecute una vez

Publicado por josu (42 intervenciones) el 23/07/2003 18:48:03
No habia leido lo tuyo MaCo!!!
Gracias de todas formas (y voy a dejar de acaparar el foro por un rato no? ;p) )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MAS FACIL !!!

Publicado por Migconc (1 intervención) el 26/07/2003 00:30:07
Existe un componente llamado OnlyOne, lo pones en tu aplicacion y listo, si el usuario trata de abrir nuevamente tu aplicacion simplemente no lo hace puesto que ya esta... Suerte, si no lo encuentras escribeme y te lo mando... ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar