邮电部的"九七工程"是一个大型数据库综合应用系统,其全称是"电信业务计算机综合应用系统",整个系统囊括了当今先进的计算机、数据库及网络技术。西安市电信局"九七工程"客户端的开发环境为英文Windows95配合中文之星2.5,使用Sybase大型数据库系统及其开发工具PowerBuilder5.0。一期工程整个系统网络连接二百余台计算机,应用端程序代码几十万行。在对这样一个大型系统进行集成的过程中,使用了多种技巧,对Windows95环境进行设置,对应用程序加以改进,在实践中获得了一套行之有效的措施,用来对付整个系统应用过程中的各类问题。之所以称为"技巧"而不是"技术",是因为所使用的各种方法,有的可能只是一个设置的改动,有的只是四五行源代码的集合。但就是这些设置和代码,在整个系统的应用中起了十分重要的作用。下面分三个方面来介绍这些设置和代码。
设置客户端计算机为"九七"专用系统
基于对系统安全和设备管理的考虑,我们希望运行"九七工程"系统的计算机成为一个专用计算机,也就是说当计算机启动时自动加载应用程序,退出应用程序后自动关闭计算机。为此我们对系统进行了一系列设置:
1、更改系统启动画面 启动画面使用一个320*400大小的256色BMP图象文件,文件名为logo.sys,并将其放置在C盘的根目录下,这样在以后Win95每次启动时就可以使用自己制作的画面作为启动画面了。如果还希望改动关机画面,用类似的方法修改windows目录下的logos.sys和logow.sys文件就可以了。
2、 计算机启动时直接进入"九七系统"的应用界面 "九七系统"有一个封面程序Shell1.exe,通过这个封面进行数据库的连接,输入工号和口令,进行用户身份验证,并根据用户工号的编码特征运行相应的应用程序。在用户打开计算机电源的时候,我们就希望能够使计算机直接启动这个封面程序。对这个问题,在Win95中的实现一般有两种方法,简单的一种是在Start菜单的Program\Startup中加入封面程序;另一个稍微麻烦,是在系统注册表的HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Windows \CurrentVersion \Run下加入封面程序。这两个方法是最通用的,但考虑到系统本身的特点,却是不可行的。"九七系统"是一个专用系统,不仅基于系统安全和设备管理的考虑,我们希望运行"九七工程"系统的计算机成为一个专用计算机,而且由于"九七系统"计算机的最终用户大多没有经过Windows95使用的培训,如果呈现在用户面前的东西太多,必然会对系统的安全构成潜在的威胁。因此,在实际的应用中,我们采用的是修改Windows目录下的System.ini文件的方法。在System.ini文件中有一个关于Windows95外壳程序的设置,在缺省情况下,外壳程序为Explorer.exe,即Shell=Explorer.exe,我们将其改为Shell=c:\apply\shell1.exe(封面程序统一放置在c:\apply目录下),这样,当Win95启动时会直接进入我们自己的封面程序,同时用户还看不到包括"开始"、桌面、我的电脑、网络邻居和回收站等所有的东西,真正将计算机做成了"九七系统"专用。
3、 汉字系统的加载 为了使计算机成为"九七系统"专用,我们对System.ini文件进行了改动,结果是牺牲掉了汉字系统。我们的应用程序在开发时使用的是英文Windows95和中文之星2.5,在对System.ini文件进行改动之后,桌面和"开始"都不见了踪影,中文之星自然也就启动不了了。而且比较麻烦的一点是中文之星的自动启动并不是包含在Windows的Startup中,也不是包含在注册表的run下面,而且我们网络上的二百多台微机是分了好几批进行软件安装的,使用的中文系统虽然大部分是中文之星2.5,但仍有相当一部分使用的是中文之星2.0,他们的安装目录名并不相同,这就为从我们的封面程序直接启动中文之星带来了不便。但我们对Windows95的启动过程进行了较为细致的分析,最终发现中文之星的自动启动是在Win.ini文件中设置的,因此,我们可以通过读取Win.ini 这个文件来直接获得中文之星执行文件的文件名和绝对路径,当然,有了路径和文件名之后只须用PowerBuilder 在程序适当的地方加一句run( CstarPath )的语句,不论中文之星的版本号是多少,也不用专门设定路径就可以顺利启动中文系统。






