未知的 SetProcessDpiAwareness 错误结果
Unknown SetProcessDpiAwareness Error Result
我有 50 台计算机中有 1 台计算机return从 SetProcessDpiAwareness 得到了一个非零结果,我找不到关于它的任何信息。我将 DPI Awareness 设置为 Unaware。我有一台计算机 returning 值为 105621835743232(十进制)。它似乎仍在将 DPI 感知设置为应有的无意识状态,但给出了一个预期之外的 return 值。
Private Declare Function SetProcessDpiAwareness Lib "shcore.dll" (ByVal Value As PROCESS_DPI_AWARENESS) As Long
Private Function SetDPI() As Long
'Results from SetProcessDPIAwareness
'Const S_OK = &H0&
'Const E_INVALIDARG = &H80070057
'Const E_ACCESSDENIED = &H80070005
Dim lngResult As Long
lngResult = SetProcessDpiAwareness(PROCESS_DPI_AWARENESS.Process_DPI_Unaware)
Return lngResult
End Function
这是一个 clickonce winforms 应用程序,所以我不能使用清单来设置 DPI。
非常欢迎任何有关查找文档的帮助!
提前致谢。
此 API 函数的 return 值是一个 32 位整数,因此您应该使用 Integer
而不是 Long
。请注意 Long
是 64 位类型。
我也强烈建议使用 p/invoke 而不是 Declare
。后者出于兼容性原因而存在。 P/invoke 可以更好地控制导入过程。
我有 50 台计算机中有 1 台计算机return从 SetProcessDpiAwareness 得到了一个非零结果,我找不到关于它的任何信息。我将 DPI Awareness 设置为 Unaware。我有一台计算机 returning 值为 105621835743232(十进制)。它似乎仍在将 DPI 感知设置为应有的无意识状态,但给出了一个预期之外的 return 值。
Private Declare Function SetProcessDpiAwareness Lib "shcore.dll" (ByVal Value As PROCESS_DPI_AWARENESS) As Long
Private Function SetDPI() As Long
'Results from SetProcessDPIAwareness
'Const S_OK = &H0&
'Const E_INVALIDARG = &H80070057
'Const E_ACCESSDENIED = &H80070005
Dim lngResult As Long
lngResult = SetProcessDpiAwareness(PROCESS_DPI_AWARENESS.Process_DPI_Unaware)
Return lngResult
End Function
这是一个 clickonce winforms 应用程序,所以我不能使用清单来设置 DPI。
非常欢迎任何有关查找文档的帮助!
提前致谢。
此 API 函数的 return 值是一个 32 位整数,因此您应该使用 Integer
而不是 Long
。请注意 Long
是 64 位类型。
我也强烈建议使用 p/invoke 而不是 Declare
。后者出于兼容性原因而存在。 P/invoke 可以更好地控制导入过程。