如何在Windows 11上更改默认打印机?以下代码在Windows 10上可以正常工作,但在Windows 11上不能:
procedure TForm1.SetDefaultPrinter(NewDefPrinter: string);
var
ResStr: array [0 .. 255] of char;
begin
StrPCopy(ResStr, NewDefPrinter);
WriteProfileString('windows', 'device', ResStr);
StrCopy(ResStr, 'windows');
SendNotifyMessage(HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@ResStr));
end;
打印机首选项“让Windows管理我的默认打印机”已关闭,一台打印机已设置为默认打印机。我很高兴听到任何提示。
2条答案
按热度按时间xvw2m8pv1#
正如我看到你使用“老式”代码。我认为微软已经打破了“WIN.INI”的功能-文件直接从Win 9 X交付。尝试使用通用的WinApi解决方案。这应该有帮助:https://learn.microsoft.com/en-us/windows/win32/printdocs/setdefaultprinter
e4eetjau2#
谢谢,这段代码对我有用: