Funzione SetProcessDpiAwareness (shellscalingapi.h)

Imposta il livello di consapevolezza DPI predefinito per il processo. Equivale a chiamare SetProcessDpiAwarenessContext con il valore di DPI_AWARENESS_CONTEXT corrispondente.

Nota

È consigliabile impostare la consapevolezza DPI predefinita del processo tramite manifesto dell'applicazione, non una chiamata API. Per altre informazioni, vedere Impostazione della consapevolezza DPI predefinita per un processo . L'impostazione della consapevolezza DPI predefinita del processo tramite chiamata API può causare un comportamento imprevisto dell'applicazione.

Sintassi

HRESULT SetProcessDpiAwareness(
  [in] PROCESS_DPI_AWARENESS value
);

Parametri

[in] value

Valore di consapevolezza DPI da impostare. I valori possibili provengono dall'enumerazione PROCESS_DPI_AWARENESS .

Valore restituito

Questa funzione restituisce uno dei valori seguenti.

Codice restituito Descrizione
S_OK
La consapevolezza DPI per l'app è stata impostata correttamente.
E_INVALIDARG
Il valore passato in non è valido.
E_ACCESSDENIED
La consapevolezza DPI è già impostata, chiamando questa API in precedenza o tramite il manifesto dell'applicazione (.exe).

Commenti

Le versioni precedenti di Windows hanno un solo valore di consapevolezza DPI per l'intera applicazione. Per queste applicazioni, la raccomandazione è stata quella di impostare il valore di consapevolezza DPI nel manifesto, come descritto in PROCESS_DPI_AWARENESS. In questa raccomandazione non è stato previsto l'uso di SetProcessDpiAwareness per aggiornare la consapevolezza DPI. In effetti, le chiamate future a questa API non riuscirebbero dopo che la consapevolezza DPI è stata impostata una volta. Ora che la consapevolezza DPI è associata a un thread anziché a un'applicazione, è possibile usare questo metodo per aggiornare la consapevolezza DPI. È tuttavia consigliabile usare SetThreadDpiAwarenessContext .

Importante  

Per le applicazioni meno recenti, è consigliabile non usare SetProcessDpiAwareness per impostare la consapevolezza DPI per l'applicazione. È invece necessario dichiarare la consapevolezza DPI per l'applicazione nel manifesto dell'applicazione. Vedere PROCESS_DPI_AWARENESS per altre informazioni sui valori di consapevolezza DPI e su come impostarli nel manifesto.

 
È necessario chiamare questa API prima di chiamare qualsiasi API che dipende dalla consapevolezza dpi. Ciò fa parte del motivo per cui è consigliabile usare il manifesto dell'applicazione anziché l'API SetProcessDpiAwareness . Una volta impostata la consapevolezza dell'API per un'app, le chiamate future a questa API avranno esito negativo. Ciò è vero indipendentemente dal fatto che si imposta la consapevolezza DPI nel manifesto o usando questa API.

Se il livello di consapevolezza DPI non è impostato, il valore predefinito è PROCESS_DPI_UNAWARE.

Requisiti

Requisito Valore
Client minimo supportato Windows 8.1 [solo app desktop]
Server minimo supportato Windows Server 2012 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shellscalingapi.h
Libreria Shcore.lib
DLL Shcore.dll

Vedi anche

PROCESS_DPI_AWARENESS

SetThreadDpiAwarenessContext

Impostazione della consapevolezza DPI predefinita per un processo