- 积分
- 783
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2015-12-3
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2019-7-1 23:49:19
|
显示全部楼层
本帖最后由 qianz98 于 2019-7-2 08:23 编辑
你的方法我试了一下,一开始我这里调试是可以的,我发现主要是以下这行你和我写的不一样
- #app = w32c.gencache.EnsureDispatch('Surfer.Application')
- app = w32c.Dispatch('Surfer.Application')
复制代码
用我原来的这句就会报错,换成你的这句就OK了。你的代码我这里运行是正常的。
本来我以为这样就行了,但是我又把注释的那句又改回去测试了一下,也就是轮流执行了一下你的代码和原来的代码后就又有故障了。这下再执行你的代码也执行出错了。
我也在网上找了一下相关的说明,就找到一个调用excel为例的,解释了一下win32com.client的用法:
win32com.client.Dispatch(‘Excel.Application‘):启动Excel进程,如果系统内存中存在Excel进程则直接使用现有的进程不会新增;
win32com.client.DispatchEx(‘Excel.Application‘):启动一个新的Excel进程;
win32com.client.gencache.EnsureDispatch(‘Excel.Application‘):和第一情况一样,但是会检测是否存在缓存文件。生成常量缓存文件便于调用程序的常量参数。
还需要更多测试来查找问题原因。
|
|