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

如何识别用户在Visual Basic 中更改Windows默认打印机的时间?

要识别用户在Visual Basic中更改Windows默认打印机的时间,您可以使用Windows API(应用程序编程接口)来监视注册表更改。以下是一个简单的示例,说明如何在Visual Basic中实现这一功能:

  1. 首先,您需要导入Microsoft Win32 API中的RegNotifyChangeKeyValue函数,该函数允许您监视注册表更改。
代码语言:vb
复制
Private Declare Function RegNotifyChangeKeyValue Lib "advapi32.dll" (ByVal hKey As Long, ByVal bWatchSubtree As Boolean, ByVal dwNotifyFilter As Long, ByVal hEvent As Long, ByVal fAsynchronous As Boolean) As Long
  1. 然后,您需要创建一个函数来读取默认打印机的名称。
代码语言:vb
复制
Function GetDefaultPrinter() As String
    Dim objWMIService, objPrinter
    Dim strPrinterName As String

    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set objPrinter = objWMIService.ExecQuery("Select * From Win32_Printer Where Default = True")

    For Each printer In objPrinter
        strPrinterName = printer.Name
    Next

    GetDefaultPrinter = strPrinterName
End Function
  1. 接下来,您需要创建一个函数来监视注册表更改。
代码语言:vb
复制
Sub MonitorRegistryChanges()
    Dim hKey As Long
    Dim strPrinterName As String
    Dim strPreviousPrinterName As String

    ' 打开注册表键
    hKey = OpenKey("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows")

    ' 获取当前默认打印机名称
    strPreviousPrinterName = GetDefaultPrinter()

    ' 循环监视注册表更改
    Do
        ' 等待注册表更改事件
        RegNotifyChangeKeyValue(hKey, True, &H1 Or &H2 Or &H4, 0, False)

        ' 获取新的默认打印机名称
        strPrinterName = GetDefaultPrinter()

        ' 检查默认打印机是否已更改
        If strPrinterName <> strPreviousPrinterName Then
            MsgBox "默认打印机已更改:" & vbCrLf & _
                   "旧打印机:" & strPreviousPrinterName & vbCrLf & _
                   "新打印机:" & strPrinterName
            strPreviousPrinterName = strPrinterName
        End If
    Loop

    ' 关闭注册表键
    CloseKey(hKey)
End Sub
  1. 最后,您可以在Visual Basic程序中调用MonitorRegistryChanges函数来监视默认打印机更改。
代码语言:vb
复制
Sub Main()
    MonitorRegistryChanges
End Sub

这个示例将弹出一个消息框,显示默认打印机更改的时间和新旧打印机名称。请注意,这个示例仅适用于当前用户的注册表更改。如果您需要监视所有用户的更改,您需要以管理员身份运行程序并监视不同的注册表键。

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

相关·内容

引脚数据提示编辑代码并继续调试(C#,VB,C ++)编辑XAML代码并继续调试调试难以重现问题配置数据以显示调试器更改执行流程跟踪范围外对象(C#,Visual Basic)查看函数返回值

配置数据以显示调试器 对于C#,Visual Basic和C ++(仅C ++ / CLI代码),您可以使用DebuggerDisplay属性告诉调试器显示哪些信息。...但是,已处理异常(例如,try/catch块中发生异常)也可能是错误来源,您可能想调查它们发生时间。您还可以通过配置“异常设置”对话框选项,将调试器配置为闯入处理异常代码。...更加熟悉调试器如何附加到您应用程序(C#,C ++,Visual Basic,F#) 要附加到正在运行应用程序,调试器将加载与要调试应用程序完全相同内部版本生成符号(.pdb)文件。...某些情况下,对符号文件一些了解可能会有所帮助。您可以使用“模块”窗口检查Visual Studio如何加载符号文件。 调试时,通过选择“调试”>“ Windows”>“模块”,打开“模块”窗口。...要了解调试器如何将代码分类为用户代码,请参见Just My Code。要查找有关符号文件更多信息,请参见Visual Studio调试器指定符号(.pdb)和源文件。

4.5K41

标签打印软件 BarTender 2021 R5 v11.2

Librarian 可帮助您更好地管理任何标签打印系统,尤其监管程度很高环境(如医疗和医药)和安全程度很高环境(如军事和化学)更具价值。...经过 SAP 认证、Oracle 验证 使用户能够从 SAP、Oracle 和其他业务系统,打印标签以及执行其他任务,而无需了解 BarTender 执行打印。...基于浏览器界面,可通过网络轻松部署和打印 通过使用户能够从任何浏览器,只要几下点击,即可选择设计、完成打印时数据表单,并启动打印作业到互联网上任何打印机,将打印基础结构扩展到防火墙之外。...Visual Basic Script Editor 以实现轻松管理 VB Script Editor 可以让您轻松文档实现不同脚本导航浏览;在编写自己代码时,访问受支持代码片段为您提供帮助;...打印到任何真正 Windows 打印机驱动程序,并使用免费 Drivers by Seagull,利用标签和证卡打印机特殊功能,以获得优化性能。

1.4K30
  • 条码标签打印 BarTender 2019 R4 11.1.140.669

    Librarian 可帮助您更好地管理任何标签打印系统,尤其监管程度很高环境(如医疗和医药)和安全程度很高环境(如军事和化学)更具价值。...经过 SAP 认证、Oracle 验证 使用户能够从 SAP、Oracle 和其他业务系统,打印标签以及执行其他任务,而无需了解 BarTender 执行打印。...基于浏览器界面,可通过网络轻松部署和打印 通过使用户能够从任何浏览器,只要几下点击,即可选择设计、完成打印时数据表单,并启动打印作业到互联网上任何打印机,将打印基础结构扩展到防火墙之外。...Visual Basic Script Editor 以实现轻松管理 VB Script Editor 可以让您轻松文档实现不同脚本导航浏览;在编写自己代码时,访问受支持代码片段为您提供帮助;...打印到任何真正 Windows 打印机驱动程序,并使用免费 Drivers by Seagull,利用标签和证卡打印机特殊功能,以获得优化性能。

    2.3K20

    使用 Visual Studio 调试 .NET 控制台应用程序

    默认情况下,Visual Studio 使用“调试”生成配置,因此不需要在调试之前对其进行更改。 启动 Visual Studio。...单击该行代码窗口左边缘,显示名称、日期和时间行上设置断点。 左边缘在行号左侧。 设置断点其他方法是,通过将光标置于代码行,然后按 F9 或从菜单栏中选择“调试”“切换断点”来进行设置。...“局部变量”窗口显示当前正在执行方法定义变量值。 使用“即时”窗口 “即时”窗口中,可以与正在调试应用程序进行交互。 可以通过交互方式更改变量值,看看这样会对程序产生哪些影响。...控制台窗口中显示值对应于“即时”窗口中所做更改。 按任意键,退出应用程序并停止调试。 设置条件断点 程序显示用户输入字符串。 如果用户没有输入任何内容,情况又如何呢?...Visual Studio 会在要执行下一行旁边突出显示一个箭头。 Visual Basic 此时,“局部变量”窗口显示 数组为空,name 和 currentDate 具有默认值。

    2.1K30

    Linux下用CUPS打印机服务

    今天提到这个问题,是由于发现很多用户使用Linux时候,沿用Windows习惯,用Samba进行打印机共享。...其实Linux下Samba打印机共享,是Samba连接本地cups服务,然后提供出来,这样会有几个问题: 引用 1、打印状态Windows下看不到; 2、从Windows下访问Samba需要访问密码...libgnomecups-0.1.12-5 libgnomecups-devel-0.1.12-5 cups-1.1.22-0.rc1.9.6.3AX cups-devel-1.1.22-0.rc1.9.6.3AX  但默认配置...输入打印机名字,点击“continue”; 4、选择服务器连接本地打印机,一般是usb或并口,可以图中看到; 5、选择打印机厂商 由于我们只是通过cups进行管理,并不是一定要在本地进行打印工作...到此,服务器打印机是已经添加完成了。 三、添加客户端打印机 1、Windows客户端  使用cups连接网络打印服务前,必须停止XP防火墙服务,或添加631协议。否则会引起问题

    3.9K50

    披着狼皮羊——寻找惠普多款打印机RCE漏洞

    我们发现这是有可能实现,但是现实环境管理员不太可能成功锁定这些打印机管理界面,至少他们需要从默认更改以下设置,并且注意,这里没有向用户表明,这些设置与安全性有关联。...以这种方式修改BDL文件上传到了打印机并确认可用,但是还没对代码进行恶意更改。当我们试图替换任何ZIPDLL文件时,我们得到了DLL签名验证错误。...然后,该程序Visual Studio调试器运行,并使用由惠普签名有效DLL文件作为输入。...显而易见问题是,我们应该如何设置int32_2和int32_3值,以将Foo.txt粘贴在DLL文件末尾字节读入numArray2?...具体来说,这个项目需要针对“Windows CE设备”: ? 最终我们取得了Visual Studio 2008 Pro副本,并成功构建了该项目。

    1K30

    披着狼皮羊——寻找惠普多款打印机RCE漏洞

    我们发现这是有可能实现,但是现实环境管理员不太可能成功锁定这些打印机管理界面,至少他们需要从默认更改以下设置,并且注意,这里没有向用户表明,这些设置与安全性有关联。...,经过一番调查后,发现打印机上运行操作系统是Windows CE一个版本,Windows CE内核存储/CEKERNEL/NK.bin。...以这种方式修改BDL文件上传到了打印机并确认可用,但是还没对代码进行恶意更改。当我们试图替换任何ZIPDLL文件时,我们得到了DLL签名验证错误。...然后,该程序Visual Studio调试器运行,并使用由惠普签名有效DLL文件作为输入。...具体来说,这个项目需要针对“Windows CE设备”: [zp88z6Z.png] 最终我们取得了Visual Studio 2008 Pro副本,并成功构建了该项目。

    1.8K80

    Visual Studio 2005 IDE 技巧和窍门

    大部分开发人员都不了解这一点,但实际上,Visual Studio 默认提供了 450 多个键盘快捷方式。不过,对于如何找到 Visual Studio 内部所有键盘快捷方式还没有简便方法。...对于 Visual Basic 用户,还可以有另一种插入代码段方式:您可以键入代码段别名前几个字母,后跟“?”,然后按 Tab 键。...Visual Studio 会显示一个按字母排序列表,其中包含与突出显示内容最为匹配所有代码段别名。此功能仅适用于 Visual Basic 用户。 图 9.... Visual Studio 内部非常容易就可以创建您自己代码段。我将通过一个示例说明如何操作。我经常会编写一些应急实用程序来帮助我完成工作。...无论何时更新团队设置文件,该文件都会在用户下次启动 Visual Studio 时自动导入来改写已有的设置。以下步骤说明了如何使用这个强大功能。 步骤 1:创建设置文件。

    2.2K40

    你不得不知道Visual Studio 2012(3)- 创建Windows(WPF)应用程序

    创建项目 Visual Studio创建一个应用程序,应首先创建一个项和一个解决方案。在此示例,您将创建Windows presentation foundation应用程序。...选择Visual Basicvisual C# WPF应用程序模板,然后将项目命名为WpfApplication1。 ?...MainWindow.xaml文件和MainWindow.xaml.vb或MainWindow.xaml.csWPF设计器打开,具体取决于您选择项目类型是Visual Basic还是visual...以下各项显示 *** 解决方案资源管理器 ***: ? 创建项目后,可以开始自定义设置。使用"属性"窗口,可以显示和更改项目项、控件和其他项选项应用程序。...当约会时间临近,C1Scheduler会自动弹出警告,提醒您不要忘记约会。 ? 好了,现在一个简单VS2012Windows应用程序就完成了。

    1.4K70

    Win上做Python开发?当然是用官方MS Terminal和VS Code了

    使用 Windows 系统一大好处是它应用太丰富了,甚至强大 GPU 也能在闲暇时间做点其它「工作」。...这些对于初学者来说尤其突出:我们安装某个库时可能出现各种依赖项错误,我们在读写文本时出现各种编码错误等等。 那么 Windows如何做 Python 开发呢?...默认延迟时间为 1000 毫秒,也可以重新配置。 Settings Sync 允许用户借助 GitHub 不同装置同步自己 VS Code 设置。...这使得解决单个测试失败并重新运行失败测试变得很简单,从而能够节省大量时间。测试结果显示 Python Test Log 下 Output 窗格。...VS Code 还可以识别编辑器外部进行更改并且正确运作。 VS Code 中提交最近更改相当简单。

    4.5K20

    使用python matplotlib 画图导入到word如何保证分辨率

    写论文时,如果是菜鸟级别,可能不会花太多时间去学latex,直接用word去写,但是这有一个问题,当我们用其他工具画完实验彩色图时,放到word中会有比较模糊,这有两个原因导致。...再点击确定按钮,会提示你对做更改进行单独保存为一个文件(默认标准设置不能被改变)。...选择保存路径就行(这里有一个大坑,保存路径必须为 (Windows) /Documents and Settings/[用户名]/Application Data/Adobe/Adobe PDF/Settings...不同系统选择不同位置进行保存,如果不保存在该目录下,则后面选择默认设置时不能识别。 接下来在前面弹出对话框 ? 上面圈出来部分选择刚才保存配置名称。...以上这篇使用python matplotlib 画图导入到word如何保证分辨率就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.6K30

    Windows上写 Python 代码王炸组合!

    使用 Windows 系统一大好处是它应用太丰富了,甚至强大 GPU 也能在闲暇时间做点其它「工作」。...这些对于初学者来说尤其突出:我们安装某个库时可能出现各种依赖项错误,我们在读写文本时出现各种编码错误等等。 那么 Windows如何做 Python 开发呢?...默认延迟时间为 1000 毫秒,也可以重新配置。 Settings Sync 允许用户借助 GitHub 不同装置同步自己 VS Code 设置。...这使得解决单个测试失败并重新运行失败测试变得很简单,从而能够节省大量时间。测试结果显示 Python Test Log 下 Output 窗格。...(merge conflict) 查看差异(view diffs) 所有这些功能都可以直接从 VS Code UI 获得: VS Code 还可以识别编辑器外部进行更改并且正确运作。

    4.9K20

    Kali Linux 网络扫描秘籍 第五章 漏洞扫描

    第五章 漏洞扫描 作者:Justin Hutchens 译者:飞龙 协议:CC BY-NC-SA 4.0 尽管可以通过查看服务指纹结果,以及研究所识别的版本相关漏洞来识别许多潜在漏洞,但这通常需要非常大量时间...默认情况下,它尝试使用LANMAN API枚举打印机某些系统上通常不可用。 在这种情况下,用户应将打印机共享名称指定为打印机脚本参数。 要查找打印机共享,可以使用smb-enum-share。...提供示例,扫描系统未修补,但它也没有共享远程打印机。...因为Nessus是一个需要许可产品,它不会在Kali默认安装。 有关如何在Kali安装Nessus更多信息,请参阅第一章“Nessus 安装”秘籍。...因为Nessus是一个需要许可产品,它不会在Kali默认安装。 有关如何在Kali安装Nessus更多信息,请参阅第一章“Nessus 安装”秘籍。

    5.5K30

    Win上做Python开发?当然是用官方MS Terminal和VS Code了

    使用 Windows 系统一大好处是它应用太丰富了,甚至强大 GPU 也能在闲暇时间做点其它「工作」。...这些对于初学者来说尤其突出:我们安装某个库时可能出现各种依赖项错误,我们在读写文本时出现各种编码错误等等。 那么 Windows如何做 Python 开发呢?...默认延迟时间为 1000 毫秒,也可以重新配置。 Settings Sync 允许用户借助 GitHub 不同装置同步自己 VS Code 设置。...这使得解决单个测试失败并重新运行失败测试变得很简单,从而能够节省大量时间。测试结果显示 Python Test Log 下 Output 窗格。...VS Code 还可以识别编辑器外部进行更改并且正确运作。 VS Code 中提交最近更改相当简单。

    4.7K20

    Win下安装Visual Studio和Parallel Studio XE

    本文将展示如何Windows系统里安装最新版两款软件,以及如何调用MKL库。...英文网页对应“Free Visual Studio”,网页语言可下拉网页至底部,左下角更改。 这是一个轻量交互式安装程序,需联网实时下载组件,安装跟着提示走即可。注意可以更改安装路径等。...安装时间可能长达二、三十分钟,中途不建议点暂停或取消。该安装程序安装完之后,若再运行则有“修复”和“修改”功能,可以再添加组件或重置环境。...值得注意是,parallel studio会自动检测Visual Studio版本并集成进去。若点击Customize可以看到识别出了已装好Visual Studio 2019: ?...安装完成后,启动Visual Studio,可发现多出了Fortran语言选项。 ? 默认Fortran编译器可能是Win32/x86,可以自己新建一个,选择x64。(下图是新建完后) ?

    8.4K31

    Win 平台做 Python 开发最佳组合:MS Terminal 和 VS Code

    作者:Jon Fincher 来源:机器之心 使用 Windows 系统一大好处是它应用太丰富了,甚至强大 GPU 也能在闲暇时间做点其它「工作」。...这些对于初学者来说尤其突出:我们安装某个库时可能出现各种依赖项错误,我们在读写文本时出现各种编码错误等等。 那么 Windows如何做 Python 开发呢?...默认延迟时间为 1000 毫秒,也可以重新配置。 Settings Sync 允许用户借助 GitHub 不同装置同步自己 VS Code 设置。...这使得解决单个测试失败并重新运行失败测试变得很简单,从而能够节省大量时间。测试结果显示 Python Test Log 下 Output 窗格。...VS Code 还可以识别编辑器外部进行更改并且正确运作。 VS Code 中提交最近更改相当简单。

    4.5K50

    曾是最流行语言之一,Visual Basic 28年兴衰记

    但当 Microsoft 发布 Windows,将 PC 用户带到了一个由按键和点击组成图形世界时,游戏规则发生了变化。... Microsoft 发布第一个真正成功 Windows 3.0 同时,他们也发布了 Visual Basic 1.0。 这是个全新事物。...这与人们已知几乎所有其他编程环境截然不同,这些环境迫使开发人员重新编译他们工作,并在每次更改之后重新开始。 最初 Visual Basic 蓬勃发展了大约十年。...生命周期结束时,它已经支持接口、多态性和类库,而所有这些都是从 COM 借鉴来,COM 是组件技术核心部分,它硬链接到 Windows 每个版本。 经典 VB 真正问题在于它太过成功。...专业开发人员,几乎没有人使用 Visual Basic,它甚至都没有出现在专业开发人员调查清单,也没有出现在 GitHub 存储库

    2.2K20

    win7默认共享(win7开启默认共享)

    访问win7默认共享: HEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System DWORD值LocalAccountTokenFilterPolicy...版gpedit.msc win7企舰版WINDOWS\system32”文件夹gpedit.msc、fde.dll、gpedit.dll、gptext.dll、wsecedit.dll 注册以下文件.../t reg_dword /d 0 /f 即在gpedit“不允许 SAM 帐户和共享匿名枚举”为禁用 2、请检查名称拼写,否则,网络可能有问题,要尝试识别并解决网络问题 开TCP.../IP NetBIOS Helper服务 3、登录失败,未授予用户在此计算机上请求登录类型 XP上,打开运行窗口,输入 secpol.msc 本地策略-用户权利指派,右侧找到拒绝从网络访问此计算机...2、点击“打开网络和共享中心”后“查看活动网络”处单击设置成“家庭网络”。   3、选择“家庭组和共享文档”。   4、“共享库和打印机打印机”或其他前打对勾,然后下一步。

    2.4K30

    Win 平台做 Python 开发最佳组合

    使用 Windows 系统一大好处是它应用太丰富了,甚至强大 GPU 也能在闲暇时间做点其它「工作」。...这些对于初学者来说尤其突出:我们安装某个库时可能出现各种依赖项错误,我们在读写文本时出现各种编码错误等等。 那么 Windows如何做 Python 开发呢?...默认延迟时间为 1000 毫秒,也可以重新配置。 Settings Sync 允许用户借助 GitHub 不同装置同步自己 VS Code 设置。...这使得解决单个测试失败并重新运行失败测试变得很简单,从而能够节省大量时间。测试结果显示 Python Test Log 下 Output 窗格。...VS Code 还可以识别编辑器外部进行更改并且正确运作。 VS Code 中提交最近更改相当简单。

    4.3K50

    Windows上写 Python 代码最佳组合!

    使用 Windows 系统一大好处是它应用太丰富了,甚至强大 GPU 也能在闲暇时间做点其它「工作」。...这些对于初学者来说尤其突出:我们安装某个库时可能出现各种依赖项错误,我们在读写文本时出现各种编码错误等等。 那么 Windows如何做 Python 开发呢?...默认延迟时间为 1000 毫秒,也可以重新配置。 Settings Sync 允许用户借助 GitHub 不同装置同步自己 VS Code 设置。...这使得解决单个测试失败并重新运行失败测试变得很简单,从而能够节省大量时间。测试结果显示 Python Test Log 下 Output 窗格。...(merge conflict) 查看差异(view diffs) 所有这些功能都可以直接从 VS Code UI 获得: VS Code 还可以识别编辑器外部进行更改并且正确运作。

    5.2K20
    领券