用DELPHI开发自动化服务器
自动化是从一个应用程序内部自动控制另一个应用程序的方法 例如下面的代码 procedure CreateNewWord;varWordObj: Variant;beginWordObj := CreateOleObject( Word Basic ); {此函数声明于ComObj单元}WordObj AppShow;WordObj FileNew;end; 这段代码将会打开WORD 并自动建立一个新的文档(当然前提是你的机子上安装了WORD) 这看来很有趣 也是一种非常有用的功能 那么如何让我们的程序也拥有类似WORD等的自动化功能并能让其它任何语言开发的程序对我们的程序进行自动化呢用DELPHI来实现非常简单
这篇文章将会以实例形式一步步的来说明如何开发一个简单的自动化服务器
新建一个普通的应用程序 将工程保存为AutoSrv bpr 在主窗体上放一个Edit控件 并保存为MainForm pas 在这里我们打算给这个程序加上对窗口标题 窗体颜色 和Edit控件文本的自动化控制(当然这实现的功能很少 但对于讲解如何开发自动化服务器程序足够了) 在主窗口中加入如下代码:(注意:请自行将这些函数和过程的声明加入TForm 的public区)function TForm GetCaption: string;beginresult := Self Caption;end;
procedure TForm SetCaption(ACaption: string);beginSelf Caption := ACaption;end;
procedure TForm SetColor(AColor: TColor);beginSelf Color := AColor;end;
procedure TForm SetEditText(AText: string);beginSelf Edit Text := AText;end; 然后我们来给这个程序加上自动化的功能 点击New Items按钮 在弹出的New Items窗口中点击ActiveX选项卡 选择Automation Object点击OK按钮 在弹出的Automation Object Wizard窗口中CoClass Name一项中输入MyAutoSrv Delphi就会自动生成一个AutoSrv_TLB pas文件(类库)和实现类库接口类的单元 将这个新的单元保存为AutoSrvClass pas.
现在这个程序已经成为一个自动化服务器了 我们再来为其加上自动化的接口函数: ( )点击View >Type Libray菜单 在Type Library Editor选择IMyAutoSrv接口 点击New Property 选择其属性为Read|Write 并把其命名为Caption Type设定为BSTR ( )点击New Method 将其命名为SetColor 点击右边的Parameters选项卡 点击ADD为新添的接口函数添加一个参数 将参数名设为AColor 参数Type设为OLE_COLOR ( )再次点击New Method 将其命名为SetEditText 以上面的方法为其添加一个参数 将参数名设为AText 参数Type设为BSTR
最后添加上接口函数的实现代码就OK了: 在AutoSrvClass pas的Uses部分添加上MainForm 并将其代码改为如下代码 unit AutoSrvClass;
{$WARN SYMBOL_PLATFORM OFF}
interface
usesComObj ActiveX AutoSrv_TLB StdVcl MainForm;
typeTMyAutoSrv = class(TAutoObject IMyAutoSrv)protectedfunction Get_Caption: WideString; safecall;procedure Set_Caption(const Value: WideString); safecall;procedure SetColor(AColor: OLE_COLOR); safecall;procedure SetEditText(const AText: WideString); safecall;
end;
implementation
uses ComServ;
function TMyAutoSrv Get_Caption: WideString;beginResult := Form GetCaption;end;
procedure TMyAutoSrv Set_Caption(const Value: WideString);beginForm SetCaption(Value);end;
procedure TMyAutoSrv SetColor(AColor: OLE_COLOR);beginForm SetColor(AColor);end;
procedure TMyAutoSrv SetEditText(const AText: WideString);beginForm SetEditText(AText);end;
initializationTAutoObjectFactory Create(ComServer TMyAutoSrv Class_MyAutoSrv ciMultiInstance tmApartment);end 运行这个程序一次 将会自动注册为自动化服务器 可以在注册表中的HKEY_CLASSES_ROOT主键下面找到其相关的注册信息
上面演示了如何开发一个自动化服务器 在这里我们将调用它 新建一个程序 添加一个Button 在其VAR区声明一个Variant变量: AutoSrv: variant再在Button 中添加如下代码 procedure TForm Button Click(Sender: TObject);beginAutoSrv := CreateOleObject( AutoSrv MyAutoSrv ); {这个字符串就是自动化服务器的工程名加上CoClass Name}Self Caption := AutoSrv Caption;AutoSrv Caption := HEHE ;AutoSrv SetColor(CLRed);AutoSrv SetEditText( HAHA );end; 其中的CreateOleObject函数将会返回一个IDispatch类型的接口 正是IDispatch接口让我们的程序可以对自动化服务器接口的调用进行后期连接 比如我们在上面添加一句AutoSrv Hello 程序也能被编释通过 但在执行时就会出错 使用Variant在执行效率上会比直接使用接口声明要慢一些 运行并点击按钮 可以看到自动化服务程序被加载 并按我们的代码设置了窗体色和EDIT 中的字串 呵呵 是不是很简单啊
lishixinzhi/Article/program/Delphi/201311/24993
虚拟化已经成为少数几种彻底改变业务场景的技术之一。值得注意的是,它仅作为一种新的创新技术开始,只有大公司才能使用,但现在它被中小型企业广泛使用。虚拟化带来的主要好处是节省成本并集中管理您的IT运营。
1、虚拟化节省了对IT硬件的投资
在虚拟化中,您将多个物理机转换为虚拟机,并将所有虚拟机转换为托管在单个(或少数)物理机上。这将减少您购买多个硬件资源的需求。通过这种方式,它可以集中您的运营环境,还可以显着节省购买硬件设备的投资成本。
大幅减少运行更大工作负载所需的物理机数量会对数据中心的节省产生连锁反应。更少的硬件意味着更少的持续支持和维护成本。虚拟化可以将硬件和运营成本降低多达50%。
根据一项研究,虚拟化可以将每台服务器的利用率提高80%。通过恰当地利用虚拟化,您可以轻松地将20台服务器的工作量减少到单台或几台服务器。最终,虚拟化可以以10:1甚至更好的比例降低业务的硬件需求。
虚拟化不仅可以节省IT硬件成本,还可以节省存储硬件设备所需的基础架构空间和处理它们所需的人力资源。此外,它还允许公司在较长时间内使用较旧的IT硬件设备。
2、虚拟化可以节省过多的电力成本
使用更大的IT基础架构的公司基本上需要在其电力成本上花费更多。较少的IT硬件显然会节省大量的电力费用。服务器,台式机和存储单元等设备必然会耗费大量电力来保持运行。但如果是虚拟化环境,从长远来看,企业将能够节省大量的能源费用。
此外,服务器和台式机等硬件设备需要大量冷却才能保持平稳运行。如果使用大量服务器和IT硬件,那么维护IT基础架构的必要冷却水平将花费很多。然而,虚拟化环境还节省了大量的冷却费用,并鼓励环境友好的业务。
因此,通过虚拟化,您可以在更少的服务器上运行更多工作负载,从而节省能源和资金。此外,公用事业成本从未降低,因此随着时间的推移,电力和冷却要求的降低将继续得到回报。
3、虚拟化具有更轻松,更具成本效益的维护
虚拟化基础架构可以节省人力和服务器生命周期维护费用。使用较少的物理服务器,手动配置,监视和维护的次数较少。物理服务器数量的减少还会降低硬件维护成本并增加可用的工作空间量。
仅在一台物理机器上运行虚拟处理器环境也会使处理过程变得更加简单和容易。它将大大降低维护成本,否则将需要维护大型基础架构。报告称,资本和运营支出减少了一半,每个虚拟化服务器每年可节省超过1,500美元。
它还可以减少处理多台机器所需的人力。此外,它将导致按优先级顺序快速处理IT操作。这将确保在集中式虚拟环境中实现更轻松,更好的IT操作。总的来说,这将节省大量的维护成本和人力开支。
它还将确保更好的支持,并且升级和补丁将更易于使用,这意味着企业将与最新的IT更新保持一致,减少停机时间,并且肯定会节省更多成本。
4、虚拟化确保更好的可靠性和安全性
安全成本是许多企业在构建IT基础架构时可能不会考虑的一种支出。尽管如此,虚拟化还可以提高整体安全性,因为IT人员拥有的机器数量较少,而且监控和处理的基础设施较小。
虚拟化通过使其更具流动性和上下文感知来提高安全性。使用基于软件的安全解决方案时,与传统的物理安全性相比,安全性变得更加准确,易于管理且部署成本更低。
虚拟化环境还可以节省IT基础架构中安全漏洞期间发生的意外成本,因为IT工作人员拥有的机器较少,而且基础设施较小。这使得解决安全威胁变得更加容易和快捷。
由于虚拟化,还可以将系统与其他系统隔离开来,并阻止安全漏洞从一台机器传播到另一台机器。这样,虚拟化还有助于防止环境的安全性,并且从长远来看还可以节省安全成本。
虚拟化的好处结论
虚拟化正在引发数据中心形成方式的变化。服务器虚拟化正成为整合,节能和降低成本的首选解决方案。它还为基础架构和安全团队带来了新的挑战,能够提供一致的隔离,监控和策略实施级别-类似于当今物理服务器和系统的可用性。
现在,即使是小型企业也可以选择虚拟化,但对于所有企业而言,这对于节省额外的IT成本来说无疑是一块蛋糕。结合虚拟环境起初可能并不容易,但大多数企业都同意这样一个事实,即从长远来看它是非常有利可图的。因此,可以恰当地说,虚拟化不仅有助于节省企业的大量IT成本,而且同时还使企业更灵活,更高效,更高效,从而产生更好的业务成果。
0条评论