Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Список процессов

Автор: Tribunal 18.12.2008 22:18

Здравствуйте!
Задача такова: Список процессов :: вывести информацию об активных процессах(имя .exe,имя модуля,полный путь к программе,ID процесса, приоритет,кол-во потоков).
Проблема в том,что не выводится инф-ия о пути...
Често говоря,не могу понять,корректно ли работает прога...
Если не сложно-посмотрите..на форме компоненты мемо и кнопка + кнопка для очистки мемо
Прилагаю исходник..

Вывод информации делается так:

 if (bGotModule)
{
HANDLE hProcess;
hProcess = OpenProcess (PROCESS_ALL_ACCESS,
FALSE, pe32.th32ProcessID);
dwPriorityClass = GetPriorityClass (hProcess);
CloseHandle (hProcess);

Memo1->Lines->Add("Priority "+
IntToStr(pe32.pcPriClassBase));
Memo1->Lines->Add("PID "+
IntToStr(pe32.th32ProcessID));
Memo1->Lines->Add("Thread_Count "+
IntToStr(pe32.cntThreads));

char inf;
s="---EXE--- ";
for (int i=0; i<50; i++)
{
inf=pe32.szExeFile[i];
s+=inf;
}
Memo1->Lines->Add(s);

s="---MODULE---";
for (int i=0; i<50; i++)
{
inf=me32.szModule[i];
s+=inf;
}
Memo1->Lines->Add(s);

s="---Path---";
for (int i=0; i<50; i++)
{
inf=me32.szExePath[i];
s=+inf;
}
Memo1->Lines->Add(s);
}
else
{
Memo1->Lines->Add("bGotModule failed PID "+IntToStr(pe32.th32ProcessID));
};




Прикрепленные файлы
Прикрепленный файл  Unit1.rar ( 1.27 килобайт ) Кол-во скачиваний: 200

Автор: volvo 18.12.2008 23:23

А зачем ты копируешь информацию посимвольно? Вот так все прекрасно отображается:

if (bGotModule) {
HANDLE hProcess;
hProcess = OpenProcess (PROCESS_ALL_ACCESS,
FALSE, pe32.th32ProcessID);
dwPriorityClass = GetPriorityClass (hProcess);
CloseHandle (hProcess);

Memo1->Lines->Add("Priority " + IntToStr((int)pe32.pcPriClassBase));
Memo1->Lines->Add("PID " + IntToStr((int)pe32.th32ProcessID));
Memo1->Lines->Add("Thread_Count " + IntToStr((int)pe32.cntThreads));
s.sprintf("---EXE--- %s", pe32.szExeFile);
Memo1->Lines->Add(s);

s.sprintf("---MODULE--- %s", me32.szModule);
Memo1->Lines->Add(s);

s.sprintf("---Path--- %s", me32.szExePath);
Memo1->Lines->Add(s);
}
(без приведения к int-у у меня наотрез отказалось компилироваться)