说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何改变 Windows 预设的打印机

HTML文档下载 WORD文档下载 PDF文档下载
VB如何改变 Windows 预设的打印机


在 VB 里面, 原本改变预设打印机的方法是:(假设安装有两种打印机(驱动程序))
Set Printer = Printers(0) ' 将预设打印机设定成第一种打印机
Set Printer = Printers(1) ' 将预设打印机设定成第二种打印机
但实际上以上叙述有时候不会成功(原因不详), 为了能够成功地改变预设打印机,以下是调用 Windows API 的方法:(补充说明: 此一解决方案适用于 Windows 95, 至于 NT 设定预设打印机的方法请叁考 98/04/05 的每周小技巧)
1. API 的声明:
Const HWND_BROADCAST = &HFFFF&
Const WM_WININICHANGE = &H1A
Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
注:如果以上的声明放在「一般模块」底下, 应在 Const 之前加上 Public 保留字, 并且将 Private 保留字去掉。
2. 程序范例:
PrinterName = "您想设定的打印机名称"
Dim S As String, length As Long, hKey As Long
S = String(80, Chr(0))
length = GetProfileString("devices", PrinterName, "", S, Len(S))
S = Left(S, length)
Call WriteProfileString("windows", "device", PrinterName & "," & S)
Call SendMessage(HWND_BROADCAST, WM_WININICHANGE, &H7FFF&, ByVal "windows")
以笔者的所安装的打印机为例, 含有 "HP LaserJet 4L" 及 "HP LaserJet 5L (Traditional)" 两种, 若想将预设打印机设定成 "HP LaserJet 4L", 则须将以上程序的「PrinterName = "您想设定的打印机名称"」改成:
PrinterName = "HP LaserJet 4L"



用VB5.0获取正在系统中运行的窗口标题 用VB实现浮动按钮 用VB5实现窗口图象缩放、滚动技巧 用VB6建立带光栅的超级开始菜单 用VB尝试新的界面风格 用VB建立字符界面的控制台程序 用VB快速读取TextBox第N行的数据 用VB 设计VCD播放器 用VB设计更好的用户界面 用VB设计聚焦框程序 用VB实现“ICQ”式的启动欢迎画面 用VB实现全屏幕图形界面及动态功能提示 用VB实现任务栏右下角的小图标 用VB制作常居上层的浮动工具箱 用VB制作即时动态按钮 用VB作浮动式图标提示按钮 用Visual Basic编写托盘程序 用Visual Basic窗体背景花纹的实现 用Visual Basic设计窗体背景花纹 用Visual Basic设计更好的用户界面 用Visual Basic设计三维图形按钮 用VisualBasic制作半透明窗体 运行时改变控件大小的两种方法-VB资料 运行中隐藏/显示窗口标题栏-VB资料 在ListBox适当设定水平滚动条的宽度-VB资料 在VB中利用API实现窗体的平滑显示 在vb中让控件大小和位置随着表单的大小成比例变化的方法 在VB中实现闪动标题栏 在VB中实现位图的透明放置 在VB中使用数据窗体设计器插件 在VB中制作单独程序封面的两种方法 VB中如何使用资源文件?急!急!急! 关于思路,高分求教!分数不够在添 不得不提问了: 怎样防止用户重复登陆!???? **请问Kylix3在红帽7上如何安装? TEST 求php的win98下开发环境,大家帮帮忙。 我想做一个类似于邮件系统中附件功能的程序,请问用的是什么协议,那里有源码? 为什么输出结果不正确呢??? 急救!用ADO在98下与2K下不能同时运行! 主板的认识! 如何删除相同的两条记录 有关Blob造型成oracle.sql.BLOB的问题。 急死我了!!!RS485通讯的奇怪问题,请高手帮忙! 怎样在delete记录时不往log文件中写东西? 签名支持JK10000行动,同意签名者,进来跟贴!到时候咱们的真名或ID会被复印在传单背面,抵制日货,保卫钓鱼岛!!!!!!!!!!!! 迷惑!!!!!高手指点,值得讨论,谢谢! char型怎么转换成String型?(答对结帖) 请问 哪位大侠有loadrunner的中文测试资料提供一下,非常感谢! JS和ASP的问题????? 高手指点 这样划分vlan可不可以???? 数据库超时 VB+SQl 2000 如何实现在程序运行时加减代码? 各位高手给我个提示有关手动添加消息映射的 关于EjbOBJECT和EJBLOCALOBJECT在使用上的区别?? 寻找中俄文转换的工具软件!急! 请问怎么把CLASS程序打包成JAR程序? 如何在VC中嵌入对Access表tableApp中纪录个数的统计(在线等)? 学习java到底有没有前途?? 关于ie6和ie5下使用javascript的问题??? 自定义函数返回值的问题 小问题:如何在VC中嵌入对Access表tableApp中纪录个数的统计(在线等)? 怎么没人理我啊?我好可怜!linux下线程池谁知道怎样实现,在哪里可以找到资料? 请教高手:如何把 Office Word 中的字(包括字体、字色、字类型等)复制到 java 中。急!在线... 挂双硬盘在CMOS中怎么设置? 沾边就给分,请问各位前辈,我想画一个框,并据一定的条件使它以两种颜色交替显示,退出时将其释放 不能用右键来另存图片 关于J2EE问题? 有没有这么一个函数:将一个double型变量按科学计数法的格式显示出来 升级的问题 难!请教关于随机分段计算并判断的问题。 请教:QT库怎么配?怎么看装没装上?里面都有什么? 请推荐一个国外的(英文)网站,类似与csdn的程序员网站!想提高英语水平 请问jsp程序在运行时出现的这个错误是什么原因引起的? ASP对字符串加密后,就认不到路径了,,, 如何在VSS中建立软件运行平台。 如何接收附件 学习java有什么好的资料,书,网站!! 一个简单问题,在线等待! 设计模式疑问,偶都快晕了~~~ 奉化烧到43.5℃刷新浙江纪录 28杭州制定食品安全方案 校园大宗食品统杭州洒水车一天洒水6次以上给主干道降杭州农行等多处场所邀请环卫工人进门歇丽水市6名高考学子进入北大清华 市委延安路取消停车位500多个 将新增1天气太热公猪厌食猪肉减产 杭州本地肉杭州连续两天高温破历史记录 夜温全国《旅游法》新规禁强制购物 个别出境游臭氧取代PM2.5成金华主要空气污染用电形势严峻 宁波有序用电响应从C级浙江人均存款高出全国2.13万杭州公交大换血 全面淘汰国二及以下标杭州今年重症中暑患者比去年多两倍半金华老人讲述过去高温天:下田干活烫伤下半年杭州主城区50条道路完成大修持续高温天气给杭州埋下咸潮隐患高温天让市民对涨价更敏感 7月CPI浙江通报6起公车私用情况 责令相关单黄坤明在杭州防旱抗旱工作会议上强调:头胎办证简化 10省份夫妻生孩子登记手机哥逗逼一刻(第11期)| 小米是【敢死队】金融蓄势 持股过节99%的人不懂,其实你与富人之间仅有老屋换新妆 中西融合132平米三居室让孩子发愁的6件事为啥早上堵车时根本看不到豪车,现在终锦江首家主题酒店 开启梦幻体验之旅股市坑了大妈,支付宝拯救了!传说中的智能袖套:把柔性手机戴在手腕美图M4评测:小众另类 自拍效果一级西单女孩落魄回归地下通道 仍唱《天使民间借贷新规实施,打借条要注意12个经典:看看你懂多少这些“牛语”最奢华的领航者 Berluti201告诉孩子,这就是贵族精神!科研院所开启改制之路 潜力股机会无限iPhone 6手机套之战:厂商巨额突发重磅,一大批人又将暴富经观社论:证监部门应把属于市场的权力2014中国健康大会报名启动零首付骗局:车没见反欠银行十几万
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘