c# - 使用 C# 设置默认的全局打印首选项
问题描述
目标:我正在尝试创建一个简单的控制台应用程序,其功能是为我的本地机器设置默认打印首选项。默认情况下,任何访问打印机的本地应用程序都将使用此设置。
以下是尝试设置默认值的属性
- 纸张类型
- 纸张方向
- 利润
- 默认打印机
我已经实现了下面的代码,几乎没有用,
using (ManagementObjectSearcher objectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer"))
{
using (ManagementObjectCollection objectCollection = objectSearcher.Get())
{
foreach (ManagementObject mo in objectCollection)
{
if (string.Compare(mo["Name"].ToString(), "OneNote", true) == 0)
{
mo.InvokeMethod("SetDefaultPrinter", null, null);
return true;
}
}
}
}
即使是默认打印机也会更新,但每次我ctrl+p
选择不同的打印机
时
其次,我已经实现了以下代码来修改 HKCU,但它没有提供预期的结果。
string pageSetupKey = "Software\\Microsoft\\Internet Explorer\\PageSetup";
bool isWritable = true;
RegistryKey rKey = Registry.CurrentUser.OpenSubKey(pageSetupKey, isWritable);
rKey.SetValue("margin_bottom",1000, RegistryValueKind.DWord);
rKey.SetValue("margin_top", 1000, RegistryValueKind.DWord);
rKey.SetValue("margin_left", 1000, RegistryValueKind.DWord);
rKey.SetValue("margin_right", 1000, RegistryValueKind.DWord);
请澄清我打算做的事情是可以实现的以及实现它的方法。我还提到了其他没有帮助的帖子和问题。注意:我想进行这些更改,不是基于流程/程序,而是针对当前用户。