把每次遇到并解决了的问题记录下来,形成文档,这便是一种财富。--沉森心
问题描述:
客户投诉说,安装完软件包后,打开某个业务模块,点击打印预览按钮时,没反应,不能打印。
原因描述:
对于打印这个功能,PC客户端是通过调用OCX控件来进行打印的,我们采用了批处理脚本的方式来进行OCX文件的注册和反注册。每次程序第一次被安装启动时,系统会自动调用执行一个批处理脚本,从而完成任务。但由于Windows系统环境的复杂,导致了批处理文件执行偶尔会失败。现根据不同的系统环境来分析一下:
批处理脚本:
@echo off
if "%processor_architecture%"=="x86" goto REG32
if "%processor_architecture%"=="AMD64" goto REG64
:REG32
if not exist %systemroot%\system32\Print.OCX COPY MSCHRT20.OCX %systemroot%\system32
%systemroot%\system32\regsvr32.exe -u -s %systemroot%\system32\Print.ocx
%systemroot%\system32\regsvr32.exe -s %systemroot%\system32\Print.ocx
......
goto exit
:REG64
if not exist %systemroot%\syswow64\Print.OCX COPY MSCHRT20.OCX %systemroot%\syswow64
%systemroot%\syswow64\regsvr32.exe -u -s %systemroot%\system32\Print.ocx
%systemroot%\syswow64\regsvr32.exe -s %systemroot%\system32\Print.ocx
......
got