首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

c#设置“按钮”提示使用默认打印机,将设置保存到ini文件

C#设置“按钮”提示使用默认打印机,将设置保存到ini文件的步骤如下:

  1. 首先,需要在C#中引入System.Runtime.InteropServices命名空间,以便使用Windows API函数来设置默认打印机和读取INI文件。
  2. 创建一个名为"PrinterHelper"的类,用于封装设置默认打印机和保存设置到INI文件的方法。
  3. 在"PrinterHelper"类中,定义以下方法:
  4. a. GetDefaultPrinter():使用Windows API函数获取当前系统的默认打印机名称。
  5. b. SetDefaultPrinter(string printerName):使用Windows API函数设置默认打印机为指定名称的打印机。
  6. c. SavePrinterSettingToIni(string printerName):将默认打印机设置保存到INI文件中。
  7. d. LoadPrinterSettingFromIni():从INI文件中加载默认打印机设置。
  8. 在按钮的Click事件中,调用"PrinterHelper"类的方法来设置默认打印机和保存设置到INI文件。

下面是一个示例代码:

代码语言:txt
复制
using System;
using System.Runtime.InteropServices;

public class PrinterHelper
{
    // Windows API函数声明
    [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern bool SetDefaultPrinter(string printerName);

    [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern bool GetDefaultPrinter(StringBuilder printerName, ref int size);

    // INI文件操作函数声明
    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    private static extern int GetPrivateProfileString(string section, string key, string defaultValue, StringBuilder value, int size, string filePath);

    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    private static extern bool WritePrivateProfileString(string section, string key, string value, string filePath);

    // 获取默认打印机名称
    public static string GetDefaultPrinter()
    {
        const int bufferSize = 256;
        StringBuilder printerName = new StringBuilder(bufferSize);
        int size = bufferSize;
        GetDefaultPrinter(printerName, ref size);
        return printerName.ToString();
    }

    // 设置默认打印机
    public static bool SetDefaultPrinter(string printerName)
    {
        return SetDefaultPrinter(printerName);
    }

    // 将默认打印机设置保存到INI文件
    public static void SavePrinterSettingToIni(string printerName)
    {
        WritePrivateProfileString("PrinterSettings", "DefaultPrinter", printerName, "settings.ini");
    }

    // 从INI文件中加载默认打印机设置
    public static string LoadPrinterSettingFromIni()
    {
        const int bufferSize = 256;
        StringBuilder printerName = new StringBuilder(bufferSize);
        GetPrivateProfileString("PrinterSettings", "DefaultPrinter", "", printerName, bufferSize, "settings.ini");
        return printerName.ToString();
    }
}

// 在按钮的Click事件中调用以下代码
private void button_Click(object sender, EventArgs e)
{
    string defaultPrinter = PrinterHelper.GetDefaultPrinter();
    PrinterHelper.SetDefaultPrinter(defaultPrinter);
    PrinterHelper.SavePrinterSettingToIni(defaultPrinter);
}

在上述示例代码中,我们使用了Windows API函数SetDefaultPrinterGetDefaultPrinter来设置和获取默认打印机。同时,我们还使用了INI文件操作函数GetPrivateProfileStringWritePrivateProfileString来读取和保存INI文件中的设置。

请注意,上述示例代码中的INI文件名为"settings.ini",你可以根据实际需求修改为你想要的文件名。另外,为了简化示例,我们没有进行错误处理和异常处理,实际应用中需要根据具体情况进行处理。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

  • 腾讯云云服务器(CVM):提供弹性计算能力,可根据业务需求快速创建、部署和管理云服务器实例。了解更多信息,请访问:腾讯云云服务器
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的对象存储服务,可用于存储和管理各种类型的数据。了解更多信息,请访问:腾讯云对象存储

希望以上信息能对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

奔图打印机显示未连接_打印机无法打印的10种解决方法

如果打印机处于联机状态仍无法打印文档,此时你可以重新开启打印机,不仅清除了打印机内存,还能解决不少的打印故障。 三、打印机设置默认打印机。...这时,请单击“磁盘清理”按钮,然后在“要删除的文件”列表框中,选中要删除的文件类型,单击“确定”按钮。 六、增加打印机的超时设置。...2.键入几行文字,然后在“文件”菜单中,单击“打印”命令。 如果能够打印测试文档,就是原来你使用进行打印的程序有问题,请重新安装程序。 九、重新安装打印机驱动程序。...如果系统提示“删除这台打印机的专用文件”,请单击“是”按钮。如果系统提示删除默认打印机,请单击“确定”按钮。...如果使用打印切换设备,请先绕过切换设备,打印机直接与计算机相连,然后尝试进行打印。 2.测试端口连接打印机连接到另一个可用端口,重试打印文档,如果能够打印则表明原端口损坏。

9.8K40

安装最新版本的Oracle公司的虚拟机软件 VirtualBox + 安装虚拟机 Windows XP 系统 + 安装 Oracle 11g 软件 + 出现 ERROR: ORA-12541: TNS

选择 “使用已有的虚拟硬盘”,并点击红框标识的 按钮 ,在弹出对话框中,找到下载好的 WinXP.vdi,点击 “打开” ,点击 “创建” ? ? ? ?...方式一:在Windows中进行设置,控制面板 --> Windows防火墙 --> 高级设置 --> 入站规则 中 启用 文件打印机共享(回显请求 - ICMPv4-In) 规则(我不需要IPv6,所以不选择...为什么使用这些默认的密码,这些默认的密码是有来历的,有兴趣的可以了解一下。    点击 “确定” 之后,会出现一个警告,不用管它,点击 “是” ?   ...方式二:在本机上是否可以访问虚拟机上的数据库,发现不行,提示:'sqlplus' 不是内部或外部命令,也不是可运行的程序或批处理文件。 ?   ...C:\WINDOWS下删除以下文件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini等。      f.

1.6K10
  • 添加和共享打印机的方法是_按名称选择共享打印机输入什么

    使用设置”共享打印机 选择“开始”按钮 ,然后依次选择“设置” >“设备” >“打印机和扫描仪”。 选择要共享的打印机,然后选择“管理”。 选择“打印机属性”,然后选择“共享”选项卡。...你将使用此名称从辅助电脑连接到打印机共享的打印机连接到其他电脑 有两种方式可将共享的打印机连接到其他电脑:使用设置”或控制面板。...使用设置”连接共享的打印机 选择“开始”按钮 ,然后依次选择“设置” >“设备” >“打印机和扫描仪”。 在“添加打印机和扫描仪”下,选择“添加打印机或扫描仪”。...默认情况下,你需要主要电脑的用户名和密码以访问该打印机设置共享设置 默认情况下,用于共享设备的设置经常处于打开状态。如果没有,请按照本节中的步骤使用设置或控制面板来打开设置。...在“文件打印机共享”下,请选择“打开文件打印机共享”。 查找电脑名称 你需要主要电脑的名称,也称为计算机名称或设备名称,以辅助电脑连接到打印机

    4.3K30

    linux文件共享 samba_文件共享服务

    是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件 , 由服务器及客户端程序构成 ; SMB (Server Messages Block , 信息服务块) 是一种在局域网上共享文件打印机的一种通信协议..., 它为局域网内的不同计算机之间提供文件打印机等资源的共享服务 ; SMB 协议是 客户机/服务器 型协议 , 客户机通过该协议可以访问服务器上的共享文件系统 , 打印机及其他资源 ; 通过设置 NetBIOS...添加 Samba 用户 # smbpasswd -a root 然后根据提示设置相应的密码 , 注意这里的用户必须是系统的已存在的用户 smbpasswd 命令是用于维护 Samba 服务器的用户帐号的...常见问题 如果 Windows 下访问 Linux 下共享目录 , 提示没有权限 确保 Linux 下防火墙关闭或者是开放共享目录权限 确保 Samba 服务器配置文件 smb.conf 设置没有问题... setlinux 关闭 , 可以用 # setenforce 0 命令执行 ; 默认 SELinux 禁止网络上对 Samba 服务器上的共享目录进行写操作 , 即使你在smb.conf中允许了这项操作

    3.8K10

    麒麟系统安装打印机共享_银河麒麟 惠普打印机驱动怎么安装

    一:开始—打印机和传真—-点击打印机—–删掉打印任务 二:开始—-控制面板—程 方法一:如果有惠普打印机驱动程序光盘的话,就直接光盘放入电脑的光驱中可以直接点击安装按钮,就可以了:也可以点击开始菜单的设置...方法二: 如果没有程序光盘,只有个程序文件夹的话,就用控制面板中的添加打印机命令来安装,有对话框进行提示的,在安装前时,必须把打印机的电源线与电源接连,数据线与电脑连接,但是,电源开关暂时不要打开,程序安装到一定时候会提示的...步骤二: 运行惠普打印机安装向导 如果打印机尚未启动,请按电源按钮启动它。 使用 USB 连接线连接惠普打印机和电脑(如果您尚未连接电脑或网络)。...In-OS 驱动程序 Windows RT in-OS 软件是已在您的电脑上安装的一个驱动程序,支持基本打印机功能; 如果打印机控制面板的大多数按钮都无法使用,那么您无法使用 eFax 功能(如果您的打印机具备该功能...4、在你需要使用打印机图标上点右键,再点设置默认打印机即可正常使用打印机了,再加打印测试页测试一下机器是否正常工作。

    4.2K30

    驱动开发学习笔记(4-1)–INF文件-1

    (4)MaxBackupCopies 这个参数用来设置建立的备份文件的个数,值为5至99中的任一个数,默认值为5,即最大可建立五个备份文件,为更好的保护系统,一般来说设置10个左右为宜。...默认情况下,注册表检查程序创建注册表备份文件时,会将“system.dat”、“system.ini”、“user.dat”和“win.ini”四个文件保存在“cab”压缩文件中,如果你需要将其他重要的系统配置文件添加到此压缩文件中...首先准备一图标文件,你可以用图标制作程序制作自己的图标文件,也可以使用现成的图标文件,最好是保存到硬盘某一个分区的根目录下。...接着,运行Batch工具,按照向导提示生成“msbatch.inf”文件,并将该文件存到软盘中。具体的生成方法请参考有关资料,这里不再赘述。...当需要重新安装Windows 98时,用启动盘进入到DOS提示符下,保存有“msbatch.inf”文件的软盘插入软驱,Windows 98安装光盘插入光驱,在DOS提示符后键入如下命令:“x:/win98

    1.3K10

    bat命令编写大全

    d:”temp tmp #支持对文件夹的重命名 9 cls 清屏 10 type 显示文件内容 type c:”boot.ini #显示指定文件的内容,程序文件一般会显示乱码...文件到 d:” ,并重命名为 test.bak copy con test.txt 从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件 con代表屏幕,prn代表打印机...显示系统版本 14 label 和 vol 设置卷标 vol #显示卷标 label #显示卷标,同时提示输入新卷标 label...,转向输出到打印机 echo hello world>con 在屏幕上显示hello world,实际上所有输出都是默认 >con 的 copy c:”test.txt f: >nul 拷贝文件...您可以使用以下语法: %~1 – 删除引号(“”),扩充 %1 %~f1 – %1 扩充到一个完全合格的路径名 %~d1

    1.5K10

    3D打印机 无线内存卡 WIFI-SD 使用安装说明

    1.WIFI-SD 配置工作 准备好的TF卡,插入读卡内。在内存卡根目录下创建SETUP.INI文件文件内容如下: SSID=*** PASSWORD=???...打印机通电(或断电重启打印机WIFI-SD设备,插入到3D打印机SD卡槽,首次配网时务必等待5分钟左...每种路由器的设置不一样,这里就不做介绍了 PC端操作 [推荐]使用WinSCP管理3D打印机无线内存卡WIFI-SD设备文件 新建会话 新...使用系统自带的管理3D打印机无线内存卡WIFI-SD设备文件 开始-运行-\\IP地址 点击确定后就可以操作啦!...可以切片后直接保存到映射磁盘。自己试了一下。win7系统成功,win10挂载失败。失败原因百度过说是HTTPS验证的问题。尝试修改注册表未成功。

    1.4K10

    打印机服务器显示未连接,解决win10打印机提示“无法连接打印机 后台处理程序未运行”的方法…

    如今大家在办公室中最常见的两样设备就数电脑和打印机了吧?办公人员对于打印机使用是非常频繁的,每天都要使用。因此一旦打印机出现故障就会对我们的工作效率产生影响。...近日有用户电脑升级为win10之后发现自己的打印机不能正常的运行,每次点击打印之后就会出现:“无法连接到打印机,后台处理程序未运行”的提示。...方法步骤: 1、打开电脑之后使用鼠标右键单击左下角的开始图标,在弹出的右键菜单中找到“任务管理器”选项 2、进入任务管理器之后接着点击左上角文件按钮中的运行新任务 3、接着在新建任务界面中输入命令:...5、在新弹出的属性设置界面中将启动类型设置为自动模式 6、紧接着点击服务状态下的启动按钮这个服务重新启动,完成之后点击应用-确定按钮即可!...关于在Win10中使用打印机提示:“无法连接到打印机,后台处理程序未运行”的解决方法小编就演示完了,如果你在设置的时候有任何的疑问或是新故障都可以在下方给小编留言哦!欢迎大家关注河东软件园!

    5.2K40

    Windows rundll32的用法-脚本命令管理打印机

    打印机名 /o 显示打印机队列查看 /p 显示打印机属性 /q 安静模式,不显示错误信息 /r[port] 端口名 /s 显示服务器属性 /Ss 打印机设置存到一个文件 /Sr 从一个文件还原打印机设置...或2000,Windows2000或XP,WindowsXP /w 如果指定的驱动程序不在inf中,则提示用户 /y 打印机设为默认打印机 /Xg 获得打印机设置 /Xs 设定打印机设置 /z 不要自动共享这台打印机..._2 7 PRINTER_INFO_7 c 颜色配置文件 d 打印机数据 s 安全描述符 g 全局 DevMode m 最低设置 u 用户 DevMode r 解决名称冲突 f 强制使用名称 p 解析端口...” rem 取得文件中的打印机设置保存结果: rundll32 printui.dll,PrintUIEntry /f “results.txt” /Xg /n “printer” rem 设置打印机设置命令使用...rem 所有打印机设置存入一个文件: rundll32 printui.dll,PrintUIEntry /Ss /n “printer” /a “file.dat” rem 从一个文件还原所有打印机设置

    13610

    C#常用 API函数大全

    在win32下推荐使用这个函数 RegQueryInfoKey 获取与一个项有关的信息 RegQueryValue 取得指定项或子项的默认(未命名)值 RegQueryValueEx 获取一个项的设置值...一个项以及它的所有子项都保存到一个磁盘文件 RegSetKeySecurity 设置指定项的安全特性 RegSetValue 设置指定项或子项的默认值 RegSetValueEx 设置指定项的值...SetFileTime 设置文件的创建、访问及上次修改时间 SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 SetVolumeLabel 设置一个磁盘的卷标...WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 4....PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 ReadPrinter 从打印机读入数据 ResetDC 重设一个设备场景 ResetPrinter 改变指定打印机默认数据类型及文档设置

    2.3K41

    Windows中安装 MySQL8.0.30 数据库

    解压安装文件 解压文件解压到你安装的目录,比如:C:\ 千万要注意:不要放在有中文名字和空格的的目录下 解压以后得到的目录是C:\mysql-8.0.30-winx64 添加配置文件 在mysql-8.0.30...-winx64文件夹下面新建一个my.ini文件和一个data文件夹 my.ini 添加以下内容: [mysqld] #设置3306端口 port=3306 #设置mysql的安装目录 basedir=...这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 #服务端使用的字符集默认为UTF8 character-set-server=utf8 #创建新表时将使用默认存储引擎...default-storage-engine=INNODB [mysql] #设置mysql客户端默认字符集 default-character-set=utf8 [client] #设置mysql客户端连接服务端时默认使用的端口...下面要设置PATH环境变量,具体做法如下: 如下图箭头指向的Path位置,鼠标单击界面右下角的“编辑”按钮。 在弹出的界面中(如下图所示),点击“新建”按钮

    1.5K20

    Windows 2003下IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置

    php-5.0.4-Win32解压移动到自己需要放置的目录; 2、PHP目录下的php.exe、php-win.exe和php.ini-dist三个文件拷到C:\Windows目录下; 3、C:\Windows...4、配置 IIS 使其支持 PHP: 打开 IIS 后停止服务,然后在左侧默认Web站点上单击右键选择“属性”, 在打开的“ Web 站点属性”窗口的“ISAPI 筛选器”标签里找到并点击“添加”按钮...[attachment=889] 再打开“Web 站点属性”窗口的“文档”标签,找到并点击“添加”按钮,向默认的 Web 站点启动文档列表中添加 index.php 项。...Server 时,选择 IIS ,然后提示你是否 Restart Web Server,选择是,完成安装之前提示是否备份 php.ini ,点确定后安装完成。...默认为config,是不安全的,不推荐,推荐使用cookie, 将其设置为 cfg['Servers'][i]['auth_type'] = 'cookie'; 打开浏览器,输入:http://localhost

    2.3K20

    【3分钟开服】幻兽帕鲁服务器一键部署保姆教程(持续更新)

    ,推荐您直接使用文件名DefaultPalWorldSettings.ini,在Windows的文件夹内进行搜索。...默认情况下,PalWorldSettings.ini文件是空的,手动配置的门槛很高,因此我们推荐在默认配置文件的基础上进行修改。...复制 2、使用如下命令,默认配置文件复制到幻兽帕鲁下的LinuxServer目录中: 默认情况下,PalWorldSettings.ini文件是空的,手动配置的门槛很高,因此我们推荐在默认配置文件的基础上进行修改...此处以8GB内存的服务器输入初始大小和最大值,再点击【设置按钮后,单击【确定】。 1、初始大小:通常建议初始大小设置为物理内存的1.5倍到2倍。...例如当前服务器有8GB的物理内存,可以最大大小设置为16GB到32GB。 1GB = 1000MB 7、此时,系统会弹出如下对话框,提示:要使改动生效,需要重新启动计算机,单击确认即可。

    1K30

    Ubuntu如何使用Roundcube安装自己的Webmail客户端

    接下来,搜索upload_max_filesize设置。此设置主要影响上传附件。默认情况下,它设置为2MB。您可以将其设置为您想要的任何数值,但大多数电子邮件服务器总附件大小限制为10MB。...所有其他选项可以保留其默认值。 记录和调试 将此部分中的所有内容保留为默认设置。 数据库设置 Roundcube使用MySQL来存储运行Web客户端的信息(而不是您的电子邮件)。...现在,所有*_mbox字段(如sent_mbox)保留为默认值。这可以稍后在Roundcube UI中更新,并且大多数电子邮件客户端仍然使用这些文件夹名称。...以下是一组可以安装的默认设置。所有插件都是可选的。如果您未在此处选择插件,则可以在以后随时安装。 存档:为您提供类似于Gmail的存档按钮。 表情符号:使在电子邮件中使用表情符号更容易。...第6步 - 测试Roundcube配置 更新配置后,页面刷新,您将在页面顶部看到一个黄色信息框,其中显示配置文件已成功保存到RCMAIL_CONFIG_DIRRoundcube安装目录中。

    11.5K51

    如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

    我们将在此步骤中进行大量更改,并且会在每个步骤后提示我们重新启动Apache。如果你愿意,你可以这样做,但在这里,我们等到所有设置的最后并重启Apache一次。...sudo a2enmod rewrite 现在PHP已完全安装,我们需要在php.ini文件中进行一些编辑。有三行需要更新。使用首选编辑器nano,编辑php.ini文件。...如果您需要非常自定义的日志记录设置,这些日志选项会变得非常复杂,但这些默认设置适用于我们的目的。 将此配置粘贴到文件中,然后保存并关闭它。...只要这是唯一的警告,其余项目都OK,点击按钮点击这里继续PYDIO。 出现提示时,单击“ 启动向导”>“按钮”。...如果您发现Pydio在此设置中的性能对于您的用例来说有点太慢,这里有一些改进它的提示使用MySQL或PostgreSQL后端而不是Sqlite来耦合Pydio。

    2.6K00

    NSIS 打包脚本基础

    这个文件夹的用意是用来保存给 InstallOptions 使用INI 文件、启动画面位图或其他插件运行需要的文件。 编译器指令 nsi脚本的编译器指令主要指仅在编译时刻执行的命令。...如果目录名匹配则所有包含的内容都会被递归添加,目录结构也会被保持 使用 /x 开关可以用来来排除文件或目录 例: ProjectFiles目录下的所有文件释放到输出目录 SetOutPath "$...文件操作 ReadINIStr 用户变量(输出) INI文件 区段 项 作用:读取INI文件。...例: 读取TimeZoneZh.ini文件中Field 1区段的State项,值输出到$0 ReadINIStr $0 "$PLUGINSDIR\TimeZoneZh.ini" "Field 1"...- 右对齐文本 MB_RTLREADING - RTL 阅读次序 MB_DEFBUTTON1 - 默认按钮 1 MB_DEFBUTTON2 - 默认按钮 2 MB_DEFBUTTON3 - 默认按钮

    4.9K60

    SAP打印机原理、打印配置及打印操作

    一、SAP打印原理  SAP的打印过程分两个步骤: 创建假脱机请求 创建输出请求 在点击打印按钮后,系统会提示创建假脱机请求后,你可以选择直接生成输出请求,或者手动生成输出请求,产生输出请求后,系统会根据输出设备的配置...S主要是windows系统下的远程打印机 U主要是Unix系统下的远程打印机 这两种模式使用本机安装的本地打印机或者远程打印机进行打印,打印时可以手动选择打印机或者使用系统默认打印机进行打印;(使用本机...;不选,则手动选择本机打印机  4、完成上面的这些设置后,点击保存按钮。...S主要是windows系统下的远程打印机 U主要是Unix系统下的远程打印机 这两种模式使用本机安装的本地打印机或者远程打印机进行打印,打印时可以手动选择打印机或者使用系统默认打印机进行打印;(使用本机...;不选,则手动选择本机打印机  4、完成上面的这些设置后,点击保存按钮

    2.9K30

    【vbs】vbs写ini文件

    但我的安装动作包括: - 提供一个ComboBox列出已安装打印机让用户选择 - 让用户填写一些初始参数并在安装完成后把这些参数写入安装目录中的指定ini和xml文件中 第一个需求就折腾了我大半天,难点在于动态填充...AI可以自由发挥的途径个人认为不算少,它的自定动作(Custom Actions)可以调用exe/js/vbs等东东,但js和vbs我没什么底子,有点畏难情绪,想用自己熟悉的方式来解决问题,就是用c#写个...只是他娘的,用惯优雅的C#,感觉其它语言就像屎一样,更别说像vbs这种脚本还没什么像样的ISE,总之很佩服主要coding在这些语言上的码农们,完全是受虐。...anyway,上述方法对于我做安装包来说,万万不能考虑,所以,还是老实研究地道vbs法,小有成果,分享如下: '函数:设置ini值(ini路径,目标节点,目标键,目标值) '注:若ini文件不存在则创建...ini的内容,直接把cache写入原文件,就实现了“修改”。

    1.8K20
    领券