Fungsi EnumProcesses (psapi.h)
Mengambil pengidentifikasi proses untuk setiap objek proses dalam sistem.
Sintaks
BOOL EnumProcesses(
[out] DWORD *lpidProcess,
[in] DWORD cb,
[out] LPDWORD lpcbNeeded
);
Parameter
[out] lpidProcess
Penunjuk ke array yang menerima daftar pengidentifikasi proses.
[in] cb
Ukuran array pProcessIds , dalam byte.
[out] lpcbNeeded
Jumlah byte yang dikembalikan dalam array pProcessIds .
Menampilkan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Adalah ide yang baik untuk menggunakan array besar, karena sulit untuk memprediksi berapa banyak proses yang akan ada pada saat Anda memanggil EnumProcesses.
Untuk menentukan berapa banyak proses yang dijumlahkan, bagi nilai lpcbNeeded berdasarkan sizeof(DWORD). Tidak ada indikasi yang diberikan ketika buffer terlalu kecil untuk menyimpan semua pengidentifikasi proses. Oleh karena itu, jika lpcbNeeded sama dengan cb, pertimbangkan untuk mencoba kembali panggilan dengan array yang lebih besar.
Untuk mendapatkan handel proses untuk proses yang pengidentifikasinya baru saja Anda peroleh, panggil fungsi OpenProcess .
Dimulai dengan Windows 7 dan Windows Server 2008 R2, Psapi.h menetapkan nomor versi untuk fungsi PSAPI. Nomor versi PSAPI memengaruhi nama yang digunakan untuk memanggil fungsi dan pustaka yang harus dimuat program.
Jika PSAPI_VERSION adalah 2 atau lebih besar, fungsi ini didefinisikan sebagai K32EnumProcesses di Psapi.h dan diekspor di Kernel32.lib dan Kernel32.dll. Jika PSAPI_VERSION adalah 1, fungsi ini didefinisikan sebagai EnumProcesses di Psapi.h dan diekspor dalam Psapi.lib dan Psapi.dll sebagai pembungkus yang memanggil K32EnumProcesses.
Program yang harus berjalan pada versi Windows yang lebih lama serta Windows 7 dan versi yang lebih baru harus selalu memanggil fungsi ini sebagai EnumProcesses. Untuk memastikan resolusi simbol yang benar, tambahkan Psapi.lib ke makro TARGETLIBS dan kompilasi program dengan –DPSAPI_VERSION=1. Untuk menggunakan penautan dinamis run-time, muat Psapi.dll.
Contoh
Misalnya, lihat Menghitung Semua Proses atau Menghitung Semua Modul untuk Proses.
Persyaratan
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | psapi.h |
Pustaka | Kernel32.lib pada Windows 7 dan Windows Server 2008 R2; Psapi.lib (jika PSAPI_VERSION=1) pada Windows 7 dan Windows Server 2008 R2; Psapi.lib di Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP |
DLL | Kernel32.dll pada Windows 7 dan Windows Server 2008 R2; Psapi.dll (jika PSAPI_VERSION=1) pada Windows 7 dan Windows Server 2008 R2; Psapi.dll pada Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP |