编程论坛
注册
登录
编程论坛
→
VFP论坛
请教一下 Winspool.drv GetDefaultPrinter 用法
weiyisc
发布于 2023-03-30 08:36, 832 次点击
请教一下 Winspool.drv GetDefaultPrinter 用法
7 回复
#2
iswith
2023-03-30 09:45
内面有一些函数,你传参数,然后就可以控制了。。。。。。。。。你这问问题太泛指,啥函数那个函数调用有问题你要贴出来,这么泛指我都觉得现在请教问题的人,好NB。。。。。。
[此贴子已经被作者于2023-3-30 09:47编辑过]
#3
吹水佬
2023-03-30 09:54
是获取系统设置的默认打印机设备名
程序代码:
DECLARE
long
GetDefaultPrinter
IN
winspool.drv string@,
long
@
nlen
=
0
GetDefaultPrinter(
NULL
,
@nLen
)
cName
=
SPACE
(nLen)
IF
GetDefaultPrinter(
@cName
,
@nLen
)
!=
0
?
LEFT
(cName,nLen
-
1
)
ELSE
? "没有默认打印机"
ENDIF
#4
iswith
2023-03-30 11:44
只看前面没有看后面,抱歉。。。。。。
#5
sam_jiang
2023-03-30 12:27
DECLARE long GetDefaultPrinter IN winspool.drv string@,long@
nlen = 64
cName = repli(chr(0),64)
IF GetDefaultPrinter(@cName, @nLen) != 0
? LEFT(cName,nLen-1)
ELSE
? "没有默认打印机"
ENDIF
#6
吹水佬
2023-03-30 12:53
以下是引用
sam_jiang
在2023-3-30 12:27:52的发言:
DECLARE long GetDefaultPrinter IN winspool.drv string@,long@
nlen = 64
cName = repli(chr(0),64)
IF GetDefaultPrinter(@cName, @nLen) != 0
? LEFT(cName,nLen-1)
ELSE
? "没有默认打印机"
ENDIF
GetDefaultPrinter 出现异常时通常会抛出:
1、接收数据的缓冲大小不够 ERROR_INSUFFICIENT_BUFFER(112)
2、没有默认打印机 ERROR_FILE_NOT_FOUND(2)
像这类in/out参数的API,最好先获取输出数据的大小,明确输出缓冲的大小后再去获取数据,这样定义的缓冲大小准确又不浪费。
#7
sam_jiang
2023-03-31 11:21
回复 6楼 吹水佬
我说怎么一个函数用2次呢,受教了。。。
#8
weiyisc
2023-04-05 22:01
回复 6楼 吹水佬
受教了,感谢吹版!感谢给位
1