creteprocess(VC编程中,想使用creteprocess调用excel.exe来启动多个xls,该如何设置参数呢)

大家好!今天让小编来大家介绍下关于creteprocess(VC编程中,想使用creteprocess调用excel.exe来启动多个xls,该如何设置参数呢)的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

文章目录列表:

creteprocess(VC编程中,想使用creteprocess调用excel.exe来启动多个xls,该如何设置参数呢)-图1

从注册表中找到xls文件的打开参数"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" /e也就是说explore根本没有理想中的那样通过CreateProcess传文件名给excel.exe,当打开一个xls文件的时候检测是否已经打开了excel.exe,而是直接告诉excel.exe让他执行“打开文件”操作所以如果自己编程就要做到跟explore一样的事情,因此createprocess打开多个excel文件就会产生多个exe,想使用createprocess调用excel.exe来启动多个xls,想使用createprocess调用excel.exe来启动多个xls,这时再双击一个xls文件发现压根就没执行CreateProcess了,双击xls文件后执行CreateProcess。

本文目录

VC编程中,想使用createprocess调用excel.exe来启动多个xls,该如何设置参数呢

office系列都自带了防多开功能,其中word和excel用了很低级的dde,而ppt用了比较高端的事件对象,用createprocess可以直接绕过dde,但是无法直接绕过ppt这种机制,因此createprocess打开多个excel文件就会产生多个exe,但ppt只会有1个。从注册表中找到xls文件的打开参数"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" /e也就是说explore根本没有理想中的那样通过CreateProcess传文件名给excel.exe,另外还可以找到ddeexec键,说明是做了dde的,点进去可以发现open("%1"),也就是说explore只是启动了excel.exe,然后相当于给excel.exe发送消息,让他执行“打开文件”操作,这点可以用api monitor监视到,另外用api monitor监控结果表明,双击xls文件后执行CreateProcess,第一个参数是C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE,第二个参数是"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" /e,这时再双击一个xls文件发现压根就没执行CreateProcess了,说明explore内部做了一次检测,当打开一个xls文件的时候检测是否已经打开了excel.exe,如果已经打开了,就不需要CreateProcess了,而是直接告诉excel.exe让他执行“打开文件”操作所以如果自己编程就要做到跟explore一样的事情,首先CreateProcess是已知的,但是用什么函数让excel.exe去执行“打开”操作我就不知道了,之前做过破解office的这种机制实现多开,却没有反过来考虑过,只能帮你这么多了

以上就是小编对于creteprocess(VC编程中,想使用creteprocess调用excel.exe来启动多个xls,该如何设置参数呢)问题和相关问题的解答了,creteprocess(VC编程中,想使用creteprocess调用excel.exe来启动多个xls,该如何设置参数呢)的问题希望对你有用!

转载请说明出处 内容投诉内容投诉
南趣百科 » creteprocess(VC编程中,想使用creteprocess调用excel.exe来启动多个xls,该如何设置参数呢)

南趣百科分享生活经验知识,是您实用的生活科普指南。

查看演示 官网购买