GARANTIR DESCONTO

Fórum gerenciador de tarefas do windows #323271

12/06/2006

0

amigos estou tentando resolver um problema antigo que na etapa que me encontro eu preciso pegar os aplicativos ativos no ( gerenciador de tarefas do windows)

alguém por favor sabe como eu pego no nome dos programas ativos no gerenciador?

agradeço a atenção!


Crcam

Crcam

Responder

Posts

14/06/2006

Martins

amigos estou tentando resolver um problema antigo que na etapa que me encontro eu preciso pegar os aplicativos ativos no ( gerenciador de tarefas do windows) alguém por favor sabe como eu pego no nome dos programas ativos no gerenciador? agradeço a atenção!


Tente assim...

EnumWindows(lpEnumFunc: TFNWndEnumProc;  {the address of the enumeration callback function}
            lParam: LPARAM  {a 32-bit application-defined value}
            ): BOOL;  {returns TRUE or FALSE}




EnumWindowsProc(hWnd: HWND;  {a handle to a top-level window}
                lParam: LPARAM  {the application-defined data}
                ): BOOL;  {returns TRUE or FALSE}



function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export;
var
  Title, ClassName: array[0..255] of char;
begin
  Result := True;
  GetWindowText(wHandle, Title, 255);
  GetClassName(wHandle, ClassName, 255);
  if IsWindowVisible(wHandle) then
     lb.Items.Add(string(Title) + ´-´ + string(ClassName));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EnumWindows(@EnumWindowsProc, Integer(Listbox1));
end;



Boa sorte


Responder

Gostei + 0

14/06/2006

Crcam

quase isso.

eu usei esse codigo aqui

function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export; 
var
  Title, ClassName: array[0..255] of char;
begin
  Result := True;
  GetWindowText(wHandle, Title, 255);
  GetClassName(wHandle, ClassName, 255);
  if IsWindowVisible(wHandle) then
     lb.Items.Add(string(Title) + ´-´ + string(ClassName));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc, Integer(Listbox1));
end;


é ele retorna tudo que está ativo mas não seria bem isso ele vem com varias outras coisas.

agora ...

EnumWindows(lpEnumFunc: TFNWndEnumProc;  {the address of the enumeration callback function} 
            lParam: LPARAM  {a 32-bit application-defined value} 
            ): BOOL;  {returns TRUE or FALSE} 




EnumWindowsProc(hWnd: HWND;  {a handle to a top-level window} 
                lParam: LPARAM  {the application-defined data} 
                ): BOOL;  {returns TRUE or FALSE} 



não soube implementar!

para você endenda legal o que estou tentando fazer faça assim:

abra varios programas pastas no seu computador...
agora ctrl+alt+del
click em gerenciador de tarefas
veja o que tem na aba APLICATIVOS

............... é essa lista que procuro ...........

mas obrigadão pela ajuda!


Responder

Gostei + 0

16/06/2006

Crcam

Marthis muito obrigado mesmo vc mostrou o caminho certo.

coloco o código final p/ os colegas com a mesma dúvida não quebrem mais a cabeça

function EnumWindowsProc(wHandle: HWND; lAplicativos: TStringList): BOOL; stdcall; export;
var
  Title: array[0..255] of char;
begin
  Result := True;
  GetWindowText(wHandle, Title, 255);
  if (IsWindowVisible(wHandle)) and (Title <> ´Program Manager´) and (Title <> ´´) and (Title <> ´Oculta Aplicativos´) then
    lAplicativos.Add(StrPas(Title));
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  StringList: TStringList;
begin
    StringList := TStringList.Create;
    StringList.Clear;
    Memo1.Lines.Clear;
    EnumWindows(@EnumWindowsProc, Integer(StringList));
    Memo1.Lines := StringList;
end;


agradecimentos também ao colega renato.pavan

quando precisarem de mim é só chamar!


Responder

Gostei + 0

13/02/2007

Janete

Marthis muito obrigado mesmo vc mostrou o caminho certo. coloco o código final p/ os colegas com a mesma dúvida não quebrem mais a cabeça
function EnumWindowsProc(wHandle: HWND; lAplicativos: TStringList): BOOL; stdcall; export;
var
  Title: array[0..255] of char;
begin
  Result := True;
  GetWindowText(wHandle, Title, 255);
  if (IsWindowVisible(wHandle)) and (Title <> ´Program Manager´) and (Title <> ´´) and (Title <> ´Oculta Aplicativos´) then
    lAplicativos.Add(StrPas(Title));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  StringList: TStringList;
begin
    StringList := TStringList.Create;
    StringList.Clear;
    Memo1.Lines.Clear;
    EnumWindows(@EnumWindowsProc, Integer(StringList));
    Memo1.Lines := StringList;
end;
agradecimentos também ao colega renato.pavan quando precisarem de mim é só chamar!


Alguém pode me ajudar, estou tentando usar essa função, mas não sei o q está faltando, qdo compilo ele para na linha abaixo onde coloquei as reticências.
EnumWindows(@EnumWindowsProc,.......Integer(StringList));


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar