Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

список запущенных приложений   Найти похожие ветки 

 
LOX   (2003-09-13 13:24) [0]

Как получить список запущенных приложений. Если можно, то с путями к приложения.
У меня XP.


 
LOX   (2003-09-14 12:30) [1]

Ответьте, пожалуйста.


 
Erazzer   (2003-09-14 22:16) [2]

Используй API Process32First/Next. Точных названий функций не помню, но ты введи этот текстик и нажми F1, для платформы NT/2K/XP работают ТАКЖЕ функции типа enumprocesses_какая-то хрень, короче смотри справку и разные FAQ, особенно на этом портале!
Seek"n"Destroy...


 
Erazzer   (2003-09-14 22:19) [3]

Используй API Process32First/Next. Точных названий функций не помню, но ты введи этот текстик и нажми F1, для платформы NT/2K/XP работают ТАКЖЕ функции типа enumprocesses_какая-то хрень, короче смотри справку и разные FAQ, особенно на этом портале!
Seek"n"Destroy...


 
LOX   (2003-09-15 14:35) [4]

Напишите по подробнее


 
Alibaba   (2003-09-15 14:52) [5]

procedure TfrmMain.btnGetListClick(Sender: TObject);
var
Wnd : hWnd;
buff: array [0..127] of Char;
begin
lb.Clear;
Wnd := GetWindow(Application.Handle, gw_HWndFirst);
while Wnd <> 0 do
begin {Не показываем:}
if (Wnd <> Application.Handle) and {-Собственное окно}
IsWindowVisible(Wnd) AND {-Невидимые окна}
(GetWindow(Wnd, gw_Owner) = 0) AND {-Дочернии окна}
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0){-Окна без заголовков}
then
begin
GetWindowText(Wnd, buff, sizeof(buff));
lb.Items.Add(StrPas(buff));
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
lb.ItemIndex := 0;
end;


 
Songoku   (2003-09-15 16:29) [6]

Вы хоть читать умеете???
Он хочет узнать какие приложения(модули) в системе загружыны!!! НЕ ОКНА.
Process32First - ны выдаёт путь к приложения а только названия exe фаила!!!

NTAPI Hook_NtQuerySystemInformation(
LONG type, // тип требуемой информации
PVOID SystemInformation, // указатель на буфер, в который вернется информация
LONG SystemInformationLength, // размер буфера в байтах
PLONG ReturnLength // сколько байт было возвращено или требуется
);
typedef struct {
FILETIME ProcessorTime;
ULONG unk2, unk3;
FILETIME CreateTime;
ULONG unk6;
ULONG StartAddress;
ULONG ProcessID;
ULONG ThreadID;
ULONG CurrentPriority;
ULONG BasePriority;
ULONG ContextSwitchesPerSec;
ULONG ThreadState;
ULONG ThreadWaitReason;
ULONG unk15;
} SYSTEM_THREAD_INFORMATION;

typedef struct {
ULONG NextOffest; // следующий процесс
ULONG ThreadCount;
ULONG unk2, unk3, unk4, unk5, unk6, unk7;
FILETIME CreateTime;
FILETIME UserTime;
FILETIME KernelTime;
ULONG unk14;
WCHAR *pModuleName; /* unicode */
ULONG BasePriority;
ULONG ProcessID;
ULONG InheritedFromUniqueProcessID;
ULONG HandleCount;
ULONG unk20, unk21;
ULONG PeekVirtualSize;
ULONG VirtualSize;
ULONG PageFaultCountPerSec;
ULONG PeakWorkingSetSize;
ULONG WorkingSetSize;
ULONG PeekPagedPoolUsage;
ULONG PagedPoolUsage;
ULONG PeekNonPagedPoolUsage;
ULONG NonPagedPoolUsage;
ULONG unk31; /* PagefileUsage ? */
ULONG PeakPagefileUsage;
ULONG unk33; /* PrivateBytes ? */
SYSTEM_THREAD_INFORMATION ThreadInfos[1]; // потоки данного процесса
} SYSTEM_PROCESS_INFORMATION;

Эта не докуминтировная функция WindowsNT/2K/XP. Не спрашивай меня как с не работать я сам ещё не разобрался!!! Ноя знаю точно что он работает точно также каки EnumProcesses - смотри в MSDN примеры и докуминтацию!!!


 
DVM   (2003-09-15 16:30) [7]


> Alibaba © (15.09.03 14:52) [5]

Речь не об окнах. Этот кусок взят из библиотеки готовых решений, но не по теме.

> LOX ©

Здесь это столько раз встречалось, проще поискать по словосочетанию "Получить список процессов" тут или в Яндексе.
Писать подробнее лень.


 
Songoku   (2003-09-15 16:38) [8]

Ах да я кое что забыл.
Делай так EnumProcesses(PSAPI) а потом узновай путь GetModuleFileName функцией.


 
DVM   (2003-09-15 16:42) [9]

Еще надо добавить, что в разных версиях Windows получение информации о процессах производится по-разному.
Есть такая известнейшая книга "Delphi 5(6) Руководство разработчика" в 2 томах. Там об этом подробно все расписано.


 
Alibaba   (2003-09-17 16:19) [10]

>DVM © (15.09.03 16:30) [7]

Этот кусок может быть в библиотеке готовых решений.
На авторство не претендую - в очень многих примерах встречается.

Что не по теме - согласен.
Не внимательно прочитал.


 
FIREHACK   (2003-09-17 17:33) [11]

ЛОВИ НЕ ЖАЛКО!!!



type

TProcessInformation = record
NextOffset: cardinal; // следующий процесс
ThreadCount: cardinal;
unk2, unk3, unk4, unk5, unk6, unk7: cardinal;
CreateTime: TFileTime;
UserTime: TFileTime;
KernelTime: TFileTime;
unk14: cardinal;
pModuleName: PWideChar; //* unicode */
BasePriority: cardinal;
ProcessID: cardinal;
InheritedFromUniqueProcessID: cardinal;
HandleCount: cardinal;
unk20, unk21: cardinal;
PeekVirtualSize: cardinal;
VirtualSize: cardinal;
PageFaultCountPerSec: cardinal;
PeakWorkingSetSize: cardinal;
WorkingSetSize: cardinal;
PeekPagedPoolUsage: cardinal;
PagedPoolUsage: cardinal;
PeekNonPagedPoolUsage: cardinal;
NonPagedPoolUsage: cardinal;
unk31: cardinal; //* PagefileUsage ? */
PeakPagefileUsage: cardinal;
unk33: cardinal; //* PrivateBytes ? */
ThreadInfos: PThreadInformation; // потоки данного процесса
end;

TEnumNtProcessesProc = function (ProcessInformation:TProcessInformation; Param:DWORD):Boolean;stdcall;

function NTDLLEnumProcesses(EnumProc:TEnumNtProcessesProc;Param:DWORD):Boolean;
var
NtQuerySystemInformation: TNtQuerySystemInformation;
i:integer;
proc:PProcessInformation;
p:pointer;
hNTDll:HINST;
begin
Result:=False;
hNTDll:=GetModuleHandle("ntdll.dll");
if hNTDll <32 then exit;
try
@NtQuerySystemInformation:=GetProcAddress(hNTDll, "NtQuerySystemInformation");
if assigned(@NtQuerySystemInformation) then
begin
// GetMem(p, 30000);
p:= GetMemory(100000);
proc:=p;
Result:=NtQuerySystemInformation(5, proc, 40000,i)=0;
while Result do
begin
if not EnumProc(Proc^,Param) then Break;
if proc^.NextOffset=0 then break;
proc:=pointer(cardinal(proc)+proc^.NextOffset);
end;
FreeMemory(p);
end;
finally
end;
end;




Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.03 c
3-40841
alxx
2003-10-21 16:38
2003.11.13
dbExpress


4-42270
Olfi
2003-09-10 00:02
2003.11.13
исходящие данные


14-41929
mm0
2003-10-20 18:02
2003.11.13
Помогите с кнопкой /Продолжение/Первое непомогло


1-41500
Furkan
2003-10-28 11:56
2003.11.13
работа с ListView (TListItems)


3-40894
Бармалейкин
2003-10-20 14:23
2003.11.13
Как собрать данные и вывести отчёт?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский