Bagikan melalui


Fungsi OpenProcess (processthreadsapi.h)

Membuka objek proses lokal yang ada.

Sintaks

HANDLE OpenProcess(
  [in] DWORD dwDesiredAccess,
  [in] BOOL  bInheritHandle,
  [in] DWORD dwProcessId
);

Parameter

[in] dwDesiredAccess

Akses ke objek proses. Hak akses ini diperiksa terhadap deskriptor keamanan untuk proses tersebut. Parameter ini bisa menjadi satu atau beberapa hak akses proses.

Jika pemanggil telah mengaktifkan hak istimewa SeDebugPrivilege, akses yang diminta diberikan terlepas dari konten deskriptor keamanan.

[in] bInheritHandle

Jika nilai ini TRUE, proses yang dibuat oleh proses ini akan mewarisi handel. Jika tidak, proses tidak mewarisi handel ini.

[in] dwProcessId

Pengidentifikasi proses lokal yang akan dibuka.

Jika proses yang ditentukan adalah System Idle Process (0x00000000), fungsi gagal dan kode kesalahan terakhir adalah ERROR_INVALID_PARAMETER. Jika proses yang ditentukan adalah proses Sistem atau salah satu proses Server Klien Run-Time Subsistem (CSRSS), fungsi ini gagal dan kode kesalahan terakhir adalah ERROR_ACCESS_DENIED karena pembatasan aksesnya mencegah kode tingkat pengguna membukanya.

Jika Anda menggunakan GetCurrentProcessId sebagai argumen untuk fungsi ini, pertimbangkan untuk menggunakan GetCurrentProcess alih-alih OpenProcess, untuk meningkatkan performa.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah handel terbuka untuk proses yang ditentukan.

Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Untuk membuka handel ke proses lokal lain dan mendapatkan hak akses penuh, Anda harus mengaktifkan hak istimewa SeDebugPrivilege. Untuk informasi selengkapnya, lihat Mengubah Hak Istimewa dalam Token.

Handel yang dikembalikan oleh fungsi OpenProcess dapat digunakan dalam fungsi apa pun yang memerlukan handel ke proses, seperti fungsi tunggu, asalkan hak akses yang sesuai diminta.

Ketika Anda selesai dengan handel, pastikan untuk menutupnya menggunakan fungsi CloseHandle .

Contoh

Misalnya, lihat Mengambil Rekam Jepret dan Menampilkan Proses.

Persyaratan

Persyaratan Nilai
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 processthreadsapi.h (termasuk Windows.h pada Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

AssignProcessToJobObject

CloseHandle

CreateProcess

CreateRemoteThread

DuplikatHandle

GetCurrentProcess

GetCurrentProcessId

GetExitCodeProcess

GetModuleFileNameEx

GetPriorityClass

Fungsi Proses dan Utas

Proses

ReadProcessMemory

SetPriorityClass

SetProcessWorkingSetSize

TerminateProcess

VirtualProtectEx

WriteProcessMemory