Im пытается заполнить ListBox с помощью списка всех запущенных приложений (Im using C++ Builder) И путем поиска я нашел этот код, который не дает мне Список запущенных только приложения, он печатает некоторые нежелательные текст и запущенные приложенияКак заполнить списокBox всеми запущенными приложениями
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <psapi.h>
void PrintProcessNameAndID(DWORD processID)
{
TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID);
if (NULL != hProcess)
{
HMODULE hMod;
DWORD cbNeeded;
if (EnumProcessModules(hProcess, &hMod, sizeof(hMod),
&cbNeeded))
{
GetModuleBaseName(hProcess, hMod, szProcessName,
sizeof(szProcessName)/sizeof(TCHAR));
}
}
_tprintf(TEXT("%s (PID: %u)\n"), szProcessName, processID);
CloseHandle(hProcess);
}
int main(void)
{
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
if (!EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded))
{
return 1;
}
cProcesses = cbNeeded/sizeof(DWORD);
for (i = 0; i < cProcesses; i++)
{
if(aProcesses[i] != 0)
{
PrintProcessNameAndID(aProcesses[i]);
}
}
return 0;
}
я знаю, что этот код для консольных приложений, но, если он работал, я бы изменить его, чтобы работать на C++ Builder, но его просто не. Итак, что такое правильный код?
Ваш цикл 'for (i = 0; i
@RaymondChen На самом деле, это не мой код, я нашел его на MSDN – Kordy
@ Kordy Это глупо вставлять код из Интернета, не проверяя его и не понимая. –