Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Listar las aplicaciones que se están ejecutando (https://www.clubdelphi.com/foros/showthread.php?t=72421)

razonasistemas 17-02-2011 21:29:15

Listar las aplicaciones que se están ejecutando
 
Hola a todos.

Tras buscar en google he encontrado un trozo de codigo Delphi que permite listar los procesos que se están ejecutando en ese momento en el PC. Ya sabeis, los que aparecen en la pestaña "Procesos" dentro del Administrador de Tareas.

Pero no es eso exactamente lo que busco. Lo que quiero conseguir es la lista de aplicaciones, no de procesos. Es decir, quiero la lista de aplicaciones que sale en pantalla al hacer ALT + TAB.

No he sido capaz de encontrar la funcion de API de windows que hace tal cosa.

¿Alguno de vosotros sabe como puedo conseguir esa lista de aplicaciones?

Gracias y saludos

Cañones 17-02-2011 22:58:16

Fijate en la sección trucos.
Saludos.

mRoman 26-02-2011 22:42:15

Yo también ando en las mismas, solo que yo quiero saber como obtener el texto de la tarea q se esta ejecutando.

Explico: Uds. saben q al dar Ctrl+Alt+Supr sale el Administrador de tareas. En todo lo que el consultado he encontrado código para obtener el nombre del ejecutable que apararece en la "ceja" de "Procesos", pero la verdad no es lo q ando buscando.

Explico mejor: Necesito detectar si cierto programa ejecutado desde el MS-DOS esta corriendo, pero con el código q he encontrado solo me dice que el "cmd.exe" se encuentra en procesos, el problema esta cuando el usuario tiene varias ventanas corriendo en ellas el cmd.exe, entonces observando el "Administrador de tareas" veo que en "Aplicaciones" se identifica que se esta ejecutando en cada una de las ventanas donde esta el cmd.exe

Alguien sabe como puedo obtener el texto q aparece en "Aplicaciones" del administrador de tareas?

p.d. He consultado también la seccion de trucos y si he encontrado algo relacionado, pero siempre hace referencia al nombre del proceso y no al texto que aparece en "Aplicaciones" del administrador de tareas.

Gracias

Draker 10-12-2011 04:12:43

Hola razonasistemas, pues haber si podemos irnos ayudando :D y de paso ayudamos a mRoman.

Pues resulta que yo tambien estoy batallando con esto y he llegado a este código:

Con 1 Memo y 1 botón.

Código Delphi [-]
var
  Form1: TForm1;
  Datos:TStringList;

implementation

{$R *.dfm}

Function EnumWinProc(Wnd : HWND; Param:Pointer) : Boolean; stdCall; Export;
Var WinText:array[0..255] of char;
Begin
  Result := True;
  // Obtenemos el Texto de la Ventana
  GetWindowText(Wnd, WinText, 255);

  If (WinText <> '') and IsWindowVisible(Wnd) and (GetWindow(Wnd,gw_Owner)=0)
  Then Datos.Add(WinText);
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Try
    Datos:=TStringList.Create;
    EnumWindows(@EnumWinProc, LongInt(Self) );
    Memo1.Clear;
    Memo1.Lines.AddStrings(Datos);
  Finally
    Datos.Free;
  End;
end;

Posiblemente tu problema este en el filtro de las ventanas o procesos encontrados.

Ahora bien, a mi a partir de este código lo que quisiera es obtener el icono asociado a la clase o proceso y la ruta de dicha ventana.

Por ejemplo si en la lista aparece:

Trabajos (carpeta)
Messenger (programa)
....

desde ahora mil gracias...


La franja horaria es GMT +2. Ahora son las 08:44:47.

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