我试图让我的程序在运行时改变布局比例。我基于一个现有的powershell脚本开发了这段代码。但是它编译了,但是在运行时,它返回了一个错误。
错误:
在动态链接库中找不到过程入口点SystemParametersInfo。
var
Form1: TForm1;
function SystemParametersInfo(uiAction, uiParam: UINT; pvParam: Pointer; fWinIni: UINT): BOOL; stdcall; external 'user32.dll';
implementation
{$R *.dfm}
function SetScaling: Boolean;
begin
Result := SystemParametersInfo($000F, 125, nil, 1);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SetScaling;
end;
2条答案
按热度按时间ipakzgxi1#
正如上述错误中所述,
user32.dll
中没有名为SystemParametersInfo
的函数。有两个名称相似的函数SystemParametersInfoA,用于处理ANSI字符串的应用程序; SystemParametersInfoW,用于支持宽字符串的应用程序,如现代 Delphi 。
注:SystemParametersInfo只能在Windows CE 5.0上找到,它位于
Coredll.lib
库中。aor9mmx12#
WinAPI.Windows单元定义了SystemParametersInfo函数。无需在本地定义。
调用SystemParametersInfo(第一个参数为$000F)是请求将屏幕保护程序超时设置为125秒($000F=SPI_SETSCREENSAVETIMEOUT)。
设置DPI Scaling比你在代码中尝试的要复杂一些。你可以阅读“how-to”细节here。