Delphi - Saber si una aplicación se está ejecutando

 
Vista:

Saber si una aplicación se está ejecutando

Publicado por Javier Castro Nuñez (5 intervenciones) el 25/03/2001 19:13:38
Hola;Alguien sabría decirme como se si una plicación ( no de Delphi) se está ejecutando en ese momento sobre Windows.Nota: Da igual saber su nombre de ejecutable o numero de manejo de Windows.Gracias y 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:Saber si una aplicación se está ejecutando

Publicado por dav (2 intervenciones) el 13/04/2001 03:05:00
DETECTAR LAS APLICACIONES QUE SE ESTAN EJECUTANDO
=================================================

FindWindow te busca ventanas concretas que pueden ser una aplicación o no, y lo mismo pasa con EnumWindows, que te busca todas las ventanas TopLevel, pero hay aplicaciones que pueden tener más de una y ciertamente las hay a montones que no tienen ninguna ventana asociada.

Para hacer eso, tienes que echar mano de las ToolHelp. La contrapartida es que esta táctica no te vale para NT.

Bueno, te pongo, un ejemplo de como se hace, hazte la idea que simplemente consta de un TListView con la propiedad ViewStyle puesta a vsReport, así de paso explicamos como un TListView puede servir para mostrar varias columnas.
var

hSnapShot: THandle;

Process: TProcessEntry32;

lResult: Boolean;

ListItem: TListItem;

begin

hSnapShot := CreateToolHelp32SnapShot( TH32CS_SNAPPROCESS, 0 );

if ( hSnapShot = -1 ) then

ShowMessage( 'Error: ' + IntToStr( GetLastError ) );

lResult := Process32First( hSnapShot, Process );

while lResult do

begin

ListItem := ProcessLView.Items.Add;

with ListItem, Process do

begin

Caption := ExtractFileName( szExeFile );

SubItems.Add( Format( '%-8.8x', [th32ModuleID] ) );

SubItems.Add( Format( '%-8.8x', [th32ProcessID] ) );

SubItems.Add( szExeFile );
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