RE:URGENTE!!!! Detectar si una aplicación no delph
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( sz