VC中,ShellExecute函数如何用默认打印机打印?

ActiveX控件中要用ShellExecute对文档进行打印,如果word文档曾经在word软件中选用A打印机执行过打印操作,会有这样结果:调用ShellExecute... ActiveX控件中要用ShellExecute对文档进行打印,
如果word文档曾经在word软件中选用A打印机执行过打印操作,会有这样结果:
调用ShellExecute打印该word文档时,即使事先将默认打印机设为了B,却还是会调用A打印机进行打印,丝毫不理会当前默认打印机是什么。
求教各位达人,这种情况怎么解决?
我希望能用自己设定的默认打印机对文档进行打印。。
我的打印命令是这个:ShellExecute(NULL,"print",fileSavePathName,NULL,NULL,SW_SHOW);
展开
 我来答
bhtzu
推荐于2017-12-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4240万
展开全部
使用ShellExecute打印,它会通过文件扩展名调用默认的打开程序进行打印。
换句话说,如果是doc文档,就会使用word打印,你的参数为SHOW,还可以看到一个word的打开过程(会自动关闭)。
而不使用默认打印机,就是因为要打印的文档或者文件关联程序指定了使用的打印机(这个和文件格式有关,比如doc文件格式中,是可以指定打印机的),所以,如果没有指定,那么一定会使用默认打印机,而不使用默认,和程序无关(也管理不了),只能看是文档问题还是关联程序问题。
追问
我现在是想打印本地的PDF文档,原来的命令是ShellExecute(NULL,"print",fileSavePathName,NULL,NULL,SW_HIDE);那照你的说法,是不是我先用某台打印机打印过一次,后面我设置另一台打印机作为默认的,再调用ShellExecute命令打印,它还是只能在原先的打印机上打印?这个问题是不是没办法解决了?还有没有别的API能实现上述打印功能啊?
追答
ShellExecute是“抛出式”的命令,本身没有对打印机设置的功能,使用哪个打印机,程序干预不了。
据我所知,API的方式只能是抛出打印,无法控制,但你所说问题我觉得还是和软件有关,正常就是使用默认打印机的。
另外,可以使用ActiveX的方式,将PDF文档在程序中打开并打印,这个可以实现程序内的打印机设置和各种打印控制。当然,这种方法稍微复杂,而且你程序改动会比较大。
沫沫容
推荐于2018-05-15 · 知道合伙人教育行家
沫沫容
知道合伙人教育行家
采纳数:7299 获赞数:44206
2010年毕业,英语六级水平,擅长写作、翻译、同义句转换、完形填空、阅读理解等一系列题型及相关考试。

向TA提问 私信TA
展开全部
1. 函数功能:
你可以给它任何文件的名字,它都能识别出来并打开它。
2.函数原型:
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
3.参数说明:
hwnd:
用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。
lpOperation:
用于指定要进行的操作。
“open”操作表示执行由lpFile参数指定的程序,或打开由lpFile参数指定的文件或文件夹;
“print”操作表示打印由lpFile参数指定的文件;
“explore”操作表示浏览由lpFile参数指定的文件夹。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
锋铭亿150
2013-07-24 · TA获得超过112个赞
知道答主
回答量:327
采纳率:0%
帮助的人:102万
展开全部
如果路径没错的话,改为:ShellExecute(NULL,NULL,&quot;E:&#92;&#92;Program Files&#92;&#92;Thunder Network&#92;&#92;Thunder&#92;&#92;Program&#92;&#92;Thunder5.exe&quot;hlNULLNULLjnSW_SHOWNORMAL);试试
追问
我的打印命令是这个:ShellExecute(NULL,"print", fileSavePathName,NULL,NULL,SW_SHOW);你给我的那段代码看不懂啊,能详述下么?
我的打印命令是这个:ShellExecute(NULL,"print", fileSavePathName,NULL,NULL,SW_SHOW);你给我的那段代码看不懂啊,能详述下么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式