微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SetProcessDpiAwareness错误代码

添加一个对SetProcessDpiAwareness窗口函数调用,作为我的Delphi XE7应用程序中的第一件事(在dynamic加载shcore DLL之后)。 我知道最好使用一个清单来设置DPIAware的价值,我已经分开工作,并将最终使用它。 然而,在开发过程中,我想使用命令行参数来设置DPIAwareness值,否则我不得不重build应用程序来改变这个状态。

问题是SetProcessDpiAwareness返回错误代码$ 800700A0。 这在function描述中没有记载,代码是什么意思?

啊我find了,由于看到参数的答案,我已经宣布函数types错了,我有

TSetDPIFunc =函数(const PROCESS_DPI_AWAREnesS):HRESULT; STDCALL;

delphiSaveDialog不显示

TWebbrowser依赖于IE版本吗?

我怎样才能阻止我的应用程序显示在任务栏上?

如何事先不知道他们的本地化名称,如何使用Windows安全组?

当对话框重新打开时,访问键应该保持下划线?

但PROCESS_DPI_AWAREnesS没有被定义为一个枚举。 改为以下,现在工作正常:

TSetDPIFunc =函数(const x:Integer):HRESULT; STDCALL;

如何使运行时从服务器打开文件列表中删除的EXE(从共享开始)

是保持线程优化?

如何在Delphi中实时读取cygwin程序的命令行输出

我应该使用什么XMLparsing器与Delphi XE2的iOS项目?

计划任务是否收到WM_QUERYENDSESSION消息?

0x8007XXXX是使用HRESULT_FROM_WIN32() 封装在COM HRESULT的Win32错误代码 。 WIN32_FROM_HRESULT(0x800700A0)给出0xA0 ,即错误代码160,这是ERROR_BAD_ARGUMENTS (“一个或多个输入参数不正确”)。

尽管你得到这个错误对我来说没有意义,因为这个函数甚至没有任何参数 !

所以我能想到的唯一的事情就是, 这里所描述的问题有一些问题 ,假设你自己改变了DPI设置进行测试,然后失败了:

因此,为了使SetProcessDPIAware(以及相关方法:SetProcessDpiAwareness()和显示为true)正常工作,必须在更改DPI设置之后并在运行程序之前注销并重新登录

顺便说一句,如果这是有帮助的:为了测试不需要完全重建的清单,可以使用mt.exe从命令行将清单附加到应用程序。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐