gerenciador de tarefas do windows
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!
alguém por favor sabe como eu pego no nome dos programas ativos no gerenciador?
agradeço a atenção!
Crcam
Curtidas 0
Respostas
Martins
12/06/2006
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
GOSTEI 0
Crcam
12/06/2006
quase isso.
eu usei esse codigo aqui
é ele retorna tudo que está ativo mas não seria bem isso ele vem com varias outras coisas.
agora ...
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!
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!
GOSTEI 0
Crcam
12/06/2006
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
agradecimentos também ao colega renato.pavan
quando precisarem de mim é só chamar!
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!
GOSTEI 0
Janete
12/06/2006
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
agradecimentos também ao colega renato.pavan
quando precisarem de mim é só chamar!
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;
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));
GOSTEI 0