Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Aplicacion En Ejecucion (https://www.clubdelphi.com/foros/showthread.php?t=54577)

juanjo_m_m 24-03-2008 14:48:53

Aplicacion En Ejecucion
 
Buenas, tengo una pregunta para hacer espero que alguien me pueda ayudar
Como puedo hacer para que solo se ejecute una aplicacion de mi programa??? :confused:

Caro 24-03-2008 15:26:39

Hola juanjo_m_m, nose si te he entendido bien, supongo que lo que quieres es que solo se ejecute una vez tu aplicación, en la pagina de Roman existe la unidad UIApp.pas que evita que se ejecute mas de una instancia de una aplicación http://romansg.net/index.php?pg=delphi_ejemplos

Saluditos

Khronos 24-03-2008 15:28:29

1 Archivos Adjunto(s)
Te dejo una unidad de una aplicación que estoy desarrollando, espero que te sirva :D.


En el archivo UniquePhoenix.pas cambia el valor de la constante exeName por el nombre
de tu ejecutable.
En el archivo dpr de tu proyecto, pon la unidad de primera.
Ejemplo:


Código Delphi [-]
program phxmp;

uses
  UniquePhoenix,
  Forms,
  frm_main in 'frm_main.pas' {FMain},
  helper_global in 'helper_global.pas',
  iPhoenix in 'iPhoenix.pas',
  helper_styles in 'helper_styles.pas',
  phxplayer in 'phxplayer.pas',
  frm_copy in 'frm_copy.pas' {FCopy},
  frm_about in 'frm_about.pas' {FAbout},
  frm_styles in 'frm_styles.pas' {FStyles},
  frm_options in 'frm_options.pas' {FOptions},
  helper_CDRip in 'helper_CDRip.pas',
  helper_GoogleSearchs in 'helper_GoogleSearchs.pas',
  Opciones in 'Opciones.pas';
{$R *.res}
begin
  Application.Initialize;
  Application.Title := 'Reproductor Multimedia Phoenix';
  Application.CreateForm(TFMain, FMain);
  Application.CreateForm(TFCopy, FCopy);
  Application.CreateForm(TFAbout, FAbout);
  Application.CreateForm(TFStyles, FStyles);
  Application.CreateForm(TFOptions, FOptions);
  Application.Run;
end.

juanjo_m_m 24-03-2008 16:56:48

probe y trate pero no pude, al final encontre este articulo y me sirvio gracias de todas maneras..

Otro ejemplo, mediante un semáforo




Pon esto en el OnCreate de tu form:


procedure TMainForm.FormCreate(Sender: TObject);
var Sem : THandle;
begin
Sem := CreateSemaphore(nil,0,1,'PROGRAM_NAME');
if ((Sem <> 0) and (GetLastError = ERROR_ALREADY_EXISTS)) then
begin
CloseHandle( Sem );
ShowMessage('This program is already running.'+
'Este programa ya se está ejecutando...');
Halt;
end;
end;

enecumene 24-03-2008 18:24:46

Bueno, en las librerias JVCL hay un componente que sirve para eso sin necesidad de codigos, solo lo ponias en el form principal y ya!, si mal no recuerdo se llama JvAppEvents.:)

Saludos.


La franja horaria es GMT +2. Ahora son las 01:51:18.

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