Ir para conteúdo
Fórum Script Brasil
  • 0

como ver se um programa está aberto mais de uma vez?


Guest --gisele --

Pergunta

Guest --gisele --

Preciso de ajuda com um programa no delphi

to fazendo um programa que ve se tem um programa rodando mais de uma vez

eu adicionei os aplicativos q estão sendo executados num listbox

dai quero ver se ele té no listbox mais de uma vez

como eu verifico se o primeiro item do listbox1 é igual aos outros, e se for igual passar ele para o listbox2

vlw

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
por favoor ajudem ae

me add no MSN: gisele__paini@hotmail.com

pesquisei no google e olhe o que eu achei facinho...

http://www.tecnobyte.com.br/dica8.html#dica11

Evitar que um programa seja executado mais de uma vez
{ Muitos programas Windows permitem apenas uma cópia em 
  execução de cada vez. Isto é interessante principalmente
  quando é um grande aplicativo, pois duas cópias ao mesmo
  tempo usuaria muito mais memória. Em aplicativos 
  desenvolvidos em Delphi podemos ter esta característica.
  Vejamos:

  - Crie um novo projeto;
  - Mude o "Name" do Form1 para DPGFormPrinc;
  - Altere o código-fonte do arquivo Project1.dpr
    conforme abaixo:  }

program Project1;

uses
  Forms, Windows,
  Unit1 in 'Unit1.pas' {DPGFormPrinc};

{$R *.RES}

var
  Handle: THandle;
begin
  Handle := FindWindow('TDPGFormPrinc', nil);
  if Handle <> 0 then begin { Já está aberto }
    Application.MessageBox('Este programa já está aberto. A cópia ' +
      'anterior será ativada.', 'Programa já aberto', MB_OK);
    if not IsWindowVisible(Handle) then
      ShowWindow(Handle, SW_RESTORE);
    SetForegroundWindow(Handle);
    Exit;
  end;
  Application.Initialize;
  Application.CreateForm(TDPGFormPrinc, DPGFormPrinc);
  Application.Run;
end.

Link para o comentário
Compartilhar em outros sites

  • 0
eu adicionei os aplicativos q estão sendo executados num listbox

dai quero ver se ele té no listbox mais de uma vez

como eu verifico se o primeiro item do listbox1 é igual aos outros, e se for igual passar ele para o listbox2

gisele, basta que você utilize os método IndexOf da propriedade Items do TListBox. Veja no exemplo:

...
 // caso não exista na lista, será retornado -1
  if ListBox1.Items.IndexOf(NomePrograma) >= 0 then
  begin
    ListBox2.Items.Add(NomePrograma);
  end else
    ListBox1.Items.Add(NomePrograma);
...

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...