Fungsi SetProcessDpiAwareness (shellscalingapi.h)

Mengatur tingkat kesadaran DPI proses-default. Ini setara dengan memanggil SetProcessDpiAwarenessContext dengan nilai DPI_AWARENESS_CONTEXT yang sesuai.

Catatan

Disarankan agar Anda mengatur kesadaran DPI proses-default melalui manifes aplikasi, bukan panggilan API. Lihat Mengatur kesadaran DPI default untuk proses untuk informasi selengkapnya. Mengatur kesadaran DPI default proses melalui panggilan API dapat menyebabkan perilaku aplikasi yang tidak terduga.

Sintaks

HRESULT SetProcessDpiAwareness(
  [in] PROCESS_DPI_AWARENESS value
);

Parameter

[in] value

Nilai kesadaran DPI yang akan ditetapkan. Nilai yang mungkin berasal dari enumerasi PROCESS_DPI_AWARENESS .

Mengembalikan nilai

Fungsi ini mengembalikan salah satu nilai berikut.

Menampilkan kode Deskripsi
S_OK
Kesadaran DPI untuk aplikasi berhasil ditetapkan.
E_INVALIDARG
Nilai yang diteruskan tidak valid.
E_ACCESSDENIED
Kesadaran DPI sudah diatur, baik dengan memanggil API ini sebelumnya atau melalui manifes aplikasi (.exe).

Keterangan

Versi Windows sebelumnya hanya memiliki satu nilai kesadaran DPI untuk seluruh aplikasi. Untuk aplikasi tersebut, rekomendasinya adalah menetapkan nilai kesadaran DPI dalam manifes seperti yang dijelaskan dalam PROCESS_DPI_AWARENESS. Di bawah rekomendasi itu, Anda tidak seharusnya menggunakan SetProcessDpiAwareness untuk memperbarui kesadaran DPI. Bahkan, panggilan ke API ini di masa mendatang akan gagal setelah kesadaran DPI ditetapkan sekali. Sekarang setelah kesadaran DPI terkait dengan utas daripada aplikasi, Anda dapat menggunakan metode ini untuk memperbarui kesadaran DPI. Namun, pertimbangkan untuk menggunakan SetThreadDpiAwarenessContext sebagai gantinya.

Penting  

Untuk aplikasi yang lebih lama, sangat disarankan untuk tidak menggunakan SetProcessDpiAwareness untuk mengatur kesadaran DPI untuk aplikasi Anda. Sebagai gantinya, Anda harus menyatakan kesadaran DPI untuk aplikasi Anda dalam manifes aplikasi. Lihat PROCESS_DPI_AWARENESS untuk informasi selengkapnya tentang nilai kesadaran DPI dan cara mengaturnya dalam manifes.

 
Anda harus memanggil API ini sebelum memanggil API apa pun yang bergantung pada kesadaran dpi. Ini adalah bagian dari alasan mengapa disarankan untuk menggunakan manifes aplikasi daripada SetProcessDpiAwareness API. Setelah kesadaran API diatur untuk aplikasi, panggilan apa pun di masa mendatang ke API ini akan gagal. Ini berlaku terlepas dari apakah Anda mengatur kesadaran DPI dalam manifes atau dengan menggunakan API ini.

Jika tingkat kesadaran DPI tidak diatur, nilai defaultnya adalah PROCESS_DPI_UNAWARE.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8.1 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2012 R2 [hanya aplikasi desktop]
Target Platform Windows
Header shellscalingapi.h
Pustaka Shcore.lib
DLL Shcore.dll

Lihat juga

PROCESS_DPI_AWARENESS

SetThreadDpiAwarenessContext

Mengatur kesadaran DPI default untuk proses