王敬彤's profile敬亭山PhotosBlogListsMore Tools Help

Blog


    June 30

    心静自然凉

         27-32度,晴转多云。闷的没有一丝风。看着窗外明晃晃的大太阳,想出去走走的念头立马打消了。
         听着音乐,突然烦躁起来,觉得有点吵,一个字都思考不下去。关掉,继续手头的报告。
         5月8号到现在,快2个月没有出过学校了,没有必要,也没有心情。
        “感觉你最近一段时间心情比较浮躁”“好像过一天是一天似的”。听到师兄这样的询问,先是一愣,然后就是沉默,好像被当场揭穿了什么秘密一样。可能是最近压力比较大,有点情绪化,会莫名的悲伤,莫名的烦躁。对学习,对工作,都是很消极的态度。每天都是在混时间,看一些其实并不是很感兴趣的网页,没有效率的学习......好像在坐等开题的那天,坐等放假回家的那天......和身边奋战的姐妹比起来,我是幸运的,但是很堕落。孙博也说我的劲头明显不如刚来时足了,其实我觉得自己一直是这个样子啊,散漫浮躁,是他们错看了。
          最近经常会看一下朋友的博客、空间之类的,想起大四的那个夏天,每天充裕的时间不知怎么打发,早上就到长安公园去散步,想象着自己穿着隐形衣,疾步穿行在人群中,思绪如天马行空般肆意的游荡,冷眼看身边的人和事。超喜欢这种感觉。难道现在又转到了网络上,想做网络上的一个隐形魂?呵呵。

    人生不能等的三件事(转)

        一个行囊,如果已经装的太满了,就会很沉,很重,很累。 
        一个生命背负太多的行囊,拖着疲惫的身躯走在人生大道上,我们注定要抛弃很多。果断的放弃是面对人生,面对生活的一种清醒的选择,只有学会放弃,生命才会轻装上阵一路高歌;只有学会放弃走出烦恼的困扰,生活才会倍感绚丽富有朝气。 
          生活中值得我们追求的东西很多,如果一味地纠缠在那些毫无意义结果的东西上,拼命地追求本该放弃的,本该苦苦追求的却毫不足惜的放弃,到头来竹篮打水一场空。如果说执着是一种精神,那么放弃是一种勇气和境界。得不到的或不该得的,就该果断放弃。匆匆的生命,有限的人生,不允许我们四面出击分散自己的时间和精力,在大好的时光中茫茫碌碌终无所成。执迷不悟的固执,是一意孤行的固执。不如正视现实,勇敢地放弃那力不从心却又苦撑硬撑的执着。在清醒地选择之后,明白自己意志的支点,一切都变的单纯而明朗般地宁静了。 
          扔掉扰心的烦恼,忘记失败的沮丧,封藏痛苦的记忆,坚定地把许多的过去踩在脚下,留在身后。选择了瞬间的清醒,就等于选择了瞬间的成长。及时调整心态坦然面对失去,正确看待失去学会忍受失去,让胸襟更豁达一些,让眼光更长远一些,为了成就一番事业,为了实现自己的人生目标,经常为自己整整枝,排除那些不必要的留念和顾盼,鞭策鞭策自我,以便集中精力于人生的追求。 
          人生犹如大海,广博深邃而又神秘莫测。我们每个人都像小孩一样在海边跑来跑去寻找着自己美丽的贝壳。有的人,只要是自己喜欢的统统揽在怀里,当他发现无法全部带走时,在取舍之间犹豫不决;有的人,只要找到一个或几个自己喜欢的就心满意足地回去了,今后永远不到海边,因为他已经有了自己的宝贝;有的人,东挑西拣的也没有发现自己最喜欢的美丽贝壳,带着无奈空手而归;有的人,不满足于沙滩上的贝壳,走向大海的深处,不仅拾到了美丽的贝壳,而且还意外的发现了珍珠... 
          回想过去的人生旅途,每个人无时无刻不在面临选择。上帝是公平的,因为他赐予每个人的机会是均等的,同时上帝赋予每个人以至高无上的权利--选择,选择一个怎样的人生取决于你自己,他不会告诉你该怎样选择,只是善意地提醒你人生会因选择的不同而产生不同的结果。   
          生命的价值也许就在于他的一次性,你永远没有后悔的机会。所有的快乐和伤痛,所有的微笑和泪水,只代表过去。选择了生,就放弃了死;选择了希望,就放弃了失望;选择了明天,就别在留恋今天!


         人生三件不能等的事情
        第一:贫穷不能等,因为时间久了,你将习惯贫穷,到时不但无法突破自我,甚至会抹杀了自己的梦想,而庸庸碌碌的过一辈子。  

       第二:梦想不能等,因为人生的阶段不同,会有不同的历练和想法,试想一个问题,如果你二十岁的梦想60岁才实现,那会是什么样的一个情况???  

      第三:家人不能等,或许我们还年轻,未来有很多时间可以让我们摸索、打拼,但是家人呢?他们还有时间等我们成功吗???还有时间等我们挣到钱,让他们过好日子,让他们以我们为荣???  

       树欲静而风不止,子欲养而亲不待……这是很多人的痛,也是很多人一辈子的遗憾。  

       人的上半生,要不犹豫  
       人的下半生,要不后悔  

    June 28

    MFC实现拖放功能(转)


    1.
    对象拖放概念

    对象拖放是指对某一指定的对象,利用鼠标拖动的方法,在不同应用的窗口之间、同一应用的不同窗口之间或同一应用的同一窗口内进行移动、复制(粘贴)等操作的技术。 

    对象拖放是在操作系统的帮助下完成的。 要开始一次拖动, 首先需要指定或生成被拖动的对象,然后指定整个拖放操作过程所使用的数据格式,并按指定的数据格式提供数据,最后启动对象拖放操作;当对象在某一窗口内落下时,拖放过程结束,接收拖放对象的窗口按指定的数据格式提取有关数据,并根据提取的数据生成对象。

    2.MFC
    中用于对象拖放的类

    MFC(Microsoft Foundation ClassLibrary)
    为实现对象拖放提供了如下三个类。为便于后边的
    讨论我们先来熟悉一下这些类。

    2.1.COleDataSource
    。用于启动一次拖放操作,并向系统提供拖放对象的数据。类中的成员
    函数有如下三种:

    a.
    设定提供数据的方式和使用的数据格式。提供数据的方式有两种,一种是即时方式,
    另一种是延迟方式;即时方式需要在拖动开始之前提供数据;延迟方式不需要立即提供数据,当系
    统请求有关数据时,由OnRenderData()等虚函数提供所需的数据。

    可以用CacheGlobalData()等函数指定使用即时方式提供数据,也可以用DelayRenderData
    ()
    等函数指定使用延时方式提供数据。

    b.
    响应请求,提供数据。应当重载OnRenderFileData()或其他相应的虚函数,以提供有关
    数据(后边将详细讨论)。

    c.
    实施拖放操作。调用函数DoDragDrop(),开始实施拖放操作。

    2.2.OleDataTarget
    。用于准备接收拖放对象的目标窗口;一个窗口要想能够接收拖放对象,
    必须包含一个COleDataTarget对象,并注册该对象。类中主要成员函数:

    a.
    注册。函数Register()注册该对象,以便使窗口能够接收拖放对象。

    b.
    响应拖放过程中的动作(虚成员函数) 当鼠标首次进入窗口时系统将调用
    OnDragEnter(),
    当鼠标移出窗口时系统将调用OnDragLeave(), 当鼠标在窗口内移动,
    系统将重复调用调用OnDragOver(),当对象在窗口内落下调用OnDrop() 

    2.3.OleDataObject.
    用于接收拖放对象,类中主要成员函数有两种:

    a.
    确定可以使用的数据格式。IsDataAvailable()等函数确定指定数据格式是否可用;

    b.
    获取数据。GetData()GetFileData()等函数用于按指定数据格式获得数据。

    3.
    利用MFC实现对象拖放

    要实现一次对象拖放,需要做三方面的工作:对象所在的窗口准备拖放对象并启拖动操作,接受对象的窗口响应有关拖放消息并接受落下的对象,以及拖放完成时的后期处理。以下分别予以
    介绍。

    3.1.
    拖动操作的启动。拖放操作一般是从单击鼠标左键开始。在消息WM_LBUTTONDOWN的响应
    函数OnLButtonDown(...)中,首先要判定是否选定了某一对象,如果未选定或选定多个,则不能进
    行拖放操作;如果选定了一个对象,则可以进行拖放操作。

    要启动一次拖放操作,需要先准备一个COleDataSource对象。注意到类COleClientIten和类
    COleServerItem
    都是从类COleDataSource上派生的,如果选定的是COleClientItem对象或者是
    COleServerItem
    对象,则可以直接使用;否则,需要生成一个COleDataSource对象,值得注意的
    是:需要象上文中所说的,应该指定使用的数据格式,并按指定格式提供对象的有关数据。

    下面给出准备数据源的例子:
    class myDataSource: public COleDataSource
    {
    public:
    COLORREF color;
    CString str;
    protected:
    virtual BOOL OnRenderFileData(LPFORMATETC,CFile*); 
    //......
    };

    BOOL myDataSource::OnRenderFileData(LPFORMATETC lpFormatEtc,CFile* pFile)

    if(lpFormatEtc->cfFormat==CF_TEXT)

    pFile.Write("Test DragDrop",13); //Magic String
    pFile.Write(&color,sizeof(COLORREF));

    int len= str.GetLength();
    pFile.Write(&len,sizeof(int));
    pFile.Write(str,len); 
    return TRUE;
    }

    COleDataSource::OnRenderFileData(lpFormatEtc,pFile); 
    return FALSE;
    }

    有了以上数据源之后,就可以在消息WM_LBUTTON的响应函数OnLButtonDown()中,按如下方式,指定使用的数据格式:

    myDataSource* pItemDragDrop=new myDataSource;
    pItemDragDrop->str="This string will dragdrop to another place";
    pItemDragDrop->DelayRenderFileData(CF_TEXT,NULL)


    指定好使用的数据格式之后,调用此对象的成员函数DoDragDrop(...),启动对象拖放操作。需要注意的是,函数DoDragDrop(...)并不立即返回,而是要等到鼠标按钮弹起之后。

    3.2.
    拖放对象的接收。缺省情况下,一般的窗口是不能接收拖放对象的;要使窗口可以接收拖
    放对象,需要在窗口类定义中加入成员对象COleDropTarget,并在生成窗口时调用函数
    COleDataTarget::Register()
    。例如:
    Class myView : public CScrollView
    {
    private:
    COleDropTarget oleTarget;
    protected:
    virtual int OnCreate(LPCREATESTRUCT); 
    //......
    }

    int myView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    //......

    dropTarget.Register(this);
    return 0;
    }

    为实现拖放对象的接收,还应重载CViewCOleDropTarget的虚函数:COnDragMove()
    OnDragEnter()
    OnDrop()等。函数OnDragEnter()OnDragMove()应根据鼠标在窗口中的位置,
    返回以下数值:

    DROPEFFECT_MOVE---
    表明可以把对象复制到现在的窗口、现在的位置;
    DROPEFFECT_COPY---
    表明可以把对象从原来的窗口、原来的位置移到现在的窗口、现在的位置;
    DROPEFFECT_NONE---
    表明不能在该窗口的该位置放下。
    下例只允许移动对象,而不允许复制对象:
    DROPEFFECT myView::OnDragEnter(......) 
    {
    return DROPEFFECT_MOVE; 
    }

    DROPEFFECT myView::OnDragOver(......) 
    {
    return DROPEFFECT_MOVE;
    }


    函数OnDrop()应处理拖动对象放下后的工作。该函数的参数pDataObjec指向一个
    COleDataObject
    对象,利用指针,可以获取有关数据。该函数的一般实现是:

    a.
    检查对象的数据格式: 利用函数COleDataObject::IsDataAvailable()

    b.
    按指定的格式获取数据:利用COleDataObject::GetFileData()等函数;

    c.
    建立对象(可能与原对象相同,也可能不建立对象仅使用对象中的数据):利用以上步骤
    得到的数据建立对象。例如:
    char magic_string[13];
    COLORREF color;
    CString str;
    int len;
    myDataSource* pMyData;

    if(IsDataAvailable(CF_TEXT))
    {
    CFile file=GetFileData(CF_TEXT); 

    file.Read(magic_string,13);
    if(strncmp(magic_string,"Test DragDrop",13)==0)
    {
    file.Read(&color,sizeof(COLORREF));
    file.Read(&len,sizeof(int)); 
    file.Read(str,len); 

    CClientDC dc(this);
    dc.SetTextColor(color);
    dc.SetBkMode(TRANSPARENT);
    dc.TextOut(100,50,str,len); 

    pMyData=new myDataSource;
    pMyData->color=color;
    pMyData->str=str;
    }
    }

    对于COleClientItemCOleServerItem对象,可以按以下方法很容易地重建对象:
    COleClient* pItem=GetDocument()->CreateNewItem()

    pItem->CreateFrom(pDataObject)


    3.3.
    拖放操作的结束函数DoDragDrop()返回时,拖放过程结束。函数DoDragDrop()的返回值,
    表明了对象的拖放结果。
    DROPEFFECT_MOVE
    :对象被放到他处,需删除原对象
    DROPEFFECT_COPY
    :对象被复制到他处,不删除原对象
    DROPEFFECT_NONE
    :未能实现拖放,无需删除原对象

    例如:
    int DragEffect=pItemTracking->DoDragDrop(......);
    switch(DragEffect)
    {
    case DROPEFFECT_MOVE:
    delete pItemTracking;
    GetDocument()->UpdateAllItems(NULL);
    GetDocument()->UpdateAllViews(NULL);
    break;
    case DROPEFFECT_COPY: 
    case DROPEFFECT_NONE:
    default:
    break;



    June 27

    Windows XP的服务分析(转)

    Windows XP的服务分析
    1.Alerter
    简介:通知所选用户和计算机有关系统管理级警报。如果服务停止,使用管理警报的程序将不会受到它们。如果此服务被禁用,任何直接依赖它的服务都将不能启动。一般家用计算机根本不需要传送或接收计算机系统管理来的警示(Administrative Alerts)
    依存关系: 此服务依赖于Workstation
    建议启动类型: 手动
    2.Application Layer Gateway Service
    简介:为 Internet 连接共享和 Internet 连接防火墙提供第三方协议插件的支持,如果不使用因特网联机共享 (ICS) 提供多台计算机的因特网存取和因特网联机防火墙 (ICF) 软件可以关闭该服务
    依存关系: Internt Connection Firewall (ICF) / Internet Connection Sharing (ICS) 依赖于此服务
    建议启动类型: 手动
    3.Application Management
    简介:提供软件安装服务,诸如分派,发行以及删除。
    依存关系: 无
    建议启动类型: 手动
    4.Automatic Updates
    简介:从 Windows Update 启用重要的 Windows 更新,能够让Windows XP自动到Microsoft 官方网站检查和下载补丁程序。如果停用此服务,可以手动从 Windows Update 网站上更新操作系统。
    依存关系: 无
    建议启动类型: 手动(系统的更新是系统管理员和用户应该时刻关注的)
    5.Background Intelligent Transfer Service
    简介:使用空闲的网络带宽传输数据。
    依存关系: 此服务依赖于Remote Procedure Call (RPC) 和 Workstation
    建议启动类型: 手动
    6.ClipBook
    简介:启用“剪贴簿查看器”储存信息并与远程计算机共享。如果此服务终止,“剪贴簿查看器” 将无法与远程计算机共享信息。如果此服务被禁用,任何依赖它的服务将无法启动。通常计算机根本不需要把剪贴簿内的信息和其它计算机共享。
    依存关系: 此服务依赖于Network DDE
    建议启动类型: 手动
    7.COM+ Event System
    简介:支持系统事件通知服务(SENS),此服务为订阅组件对象模型(COM)组件事件提供自动分布功能。如果停止此服务,SENS 将关闭,而且不能提供登录和注销通知。如果禁用此服务,显式依赖此服务的其他服务将无法启动。
    依存关系: 此服务依赖于Remote Procedure Call (RPC),同时System Event Notification依赖于此服务
    建议启动类型: 手动
    8.COM+ System Application
    简介:管理 基于COM+ 组件的配置和跟踪。如果服务停止,大多数基于 COM+ 组件将不能正常工作。如果本服务被禁用,任何明确依赖它的服务都将不能启动。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    9.Computer Browser
    简介:维护网络上计算机的更新列表,并将列表提供给计算机指定浏览。如果服务停止,列表不会被更新或维护。如果服务被禁用,任何直接依赖于此服务的服务将无法启动。一般计算机不需要此服务。
    依存关系: 此服务依赖于Server 和 Workstation
    建议启动类型: 手动
    10.Cryptographic Services
    简介: 提供三种管理服务: 编录数据库服务,它确定 Windows 文件的签字; 受保护的根服务,它从此计算机添加和删除受信根证书机构的证书;和密钥(Key)服务,它帮助注册此计算机获取证书。如果此服务被终止,这些管理服务将无法正常运行。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    11.DHCP Client
    简介:通过注册和更改 IP 地址以及 DNS 名称来管理网络配置。使用 DSL/Cable 、ICS 和 IPSEC 都需要这个来指定动态 IP。
    依存关系: 此服务依赖于AFD 网络支持环境、NetBT和TCP/IP Protocol Driver
    建议启动类型: 手动
    12.Distributed Link Tracking Client
    简介:在计算机内 NTFS 文件之间保持链接或在网络域中的计算机之间保持链接。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    13.Distributed Transaction Coordinator
    简介:协调跨多个数据库、消息队列、文件系统等资源管理器的事务。如果停止此服务,则不会发生这些事务。如果禁用此服务,显式依赖此服务的其他服务将无法启动。除非启用Message Queuing,一般用不到此服务。
    依存关系: 此服务依赖于Remote Procedure Call (RPC) 和 Security Accounts Manager
    建议启动类型: 手动
    14.DNS Client
    简介:为此计算机解析和缓冲域名系统 (DNS) 名称。
    依存关系: 此服务依赖于TCP/IP Protocol Driver
    建议启动类型: 手动
    15.Error Reporting Service
    简介:服务和应用程序在非标准环境下运行时允许错误报告。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    16.Event Log
    简介:启用在事件查看器查看基于 Windows 的程序和组件颁发的事件日志消息。无法终止此服务。
    依存关系: Windows Management Instrumentation 依赖于此服务
    建议启动类型: 自动
    17.Fast User Switching Compatibility
    简介:为在多用户下需要协助的应用程序提供管理。
    依存关系: 此服务依赖于Terminal Services
    建议启动类型: 手动
    18.Help and Support
    简介:启用在此计算机上运行帮助和支持中心。如果停止服务,帮助和支持中心将不可用。如果禁用服务,任何直接依赖于此服务的服务将无法启动。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    19.Human Interface Device Access
    简介:启用对智能界面设备 (HID)的通用输入访问,它激活并保存键盘、远程控制和其它多媒体设备上的预先定义的热按钮。如果此服务被终止,由此服务控制的热按钮将不再运行。 如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    20.IMAPI CD-Burning COM Service
    简介:用 Image Mastering Applications Programming Interface (IMAPI) 管理 CD 录制。如果停止该服务,这台计算机将无法录制  CD。如果该服务被停用,任何依靠它的服务都无法启动。Windows XP 整合的 CD-R 和 CD-RW 光驱上拖放的刻录功能,比不上专业的刻录软件,例如Nero,关掉此服务可以加快其他刻录软件的开启速度。
    依存关系:无
    建议启动类型: 已禁用
    21.Indexing Service
    简介:本地和远程计算机上文件的索引内容和属性;通过灵活查询语言提供文件快速访问。 
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 已禁用
    22.Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS)
    简介:为家庭或小型办公网络提供网络地址转换,定址以及名称解析和/或防止入侵服务。 如果不使用因特网联机共享(ICS)或是 Windows XP 内含的因特网联机防火墙(ICF)该服务可以关闭。
    依存关系: 此服务依赖于Application Layer Gateway Service、Network Connections、Network Location Awareness(NLA)、Remote Access Connection Manager
    建议启动类型: 手动
    23.IPSEC Services
    简介:管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序IPSec保护经由网络传送的数据,为虚拟私人网络 (VPN)提供安全性,使VPN 能够经由因特网安全地传输数据。在某些网络中需要,但是一般使用者是不需要该服务的。
    依存关系: 此服务依赖于IPSEC driver、Remote Procedure Call (RPC)、TCP/IP Protocol Driver
    建议启动类型: 手动
    24.Logical Disk Manager
    简介:监测和监视新硬盘驱动器并向逻辑磁盘管理器管理服务发送卷的信息以便配置。如果此服务被终止,动态磁盘状态和配置信息会过时。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于Plug and Play和Remote Procedure Call (RPC),同时Logical Disk Manager Administrative Service 依赖于此服务
    建议启动类型: 手动
    25.Logical Disk Manager Administrative Service
    简介:配置硬盘驱动器和卷。此服务只为配置处理运行,然后终止,只有使用 Microsoft Management Console(MMC)主控台的功能时才会用到。
    依存关系: 此服务依赖于Plug and Play、Remote Procedure Call (RPC)、Logical Disk Manager
    建议启动类型: 手动
    26.Messenger
    简介:传输客户端和服务器之间的 NET SEND 和 Alerter 服务消息。此服务与 Windows Messenger 无关。如果服务停止,Alerter 消息不会被传输。如果服务被禁用,任何直接依赖于此服务的服务将无法启动。此服务允许网络之间互相传送提示信息,如利用net send发送信息。
    依存关系: 此服务依赖于NetBIOS Interface、Plug and Play、Remote Procedure Call (RPC)、Workstation
    建议启动类型: 已禁用
    27.MS Software Shadow Copy Provider
    简介:管理卷影复制服务拍摄的软件卷影复制。如果该服务被停止,软件卷影复制将无法管理。如果该服务被停用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    28.Net Logon
    简介:支持网络上计算机 pass-through 帐户登录身份验证事件。
    依存关系: 此服务依赖于Workstation
    建议启动类型: 已停用
    29.NetMeeting Remote Desktop Sharing
    简介:允许经过授权的用户用 NetMeeting 在公司 intranet 上远程访问这台计算机,让使用者可以将计算机的控制权分享予网络上或因特网上的其它使用者,从安全的角度,此服务一定得关闭。如果服务被停止,远程桌面共享将不可用。如果服务被禁用,依赖这个服务的任何服务都会无法启动。
    依存关系:无
    建议启动类型: 已禁用
    30.Network Connections
    简介:管理“网络和拨号连接”文件夹中对象,在其中您可以查看局域网和远程连接。
    依存关系: 此服务依赖于Remote Procedure Call (RPC),同时Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS) 依赖于此服务
    建议启动类型: 手动
    31.Network DDE
    简介:为在同一台计算机或不同计算机上运行的程序提供动态数据交换 (DDE) 的网络传输和安全。如果此服务被终止, DDE 传输和安全将不可用。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于Network DDE DSDM,同时ClipBook依赖于此服务
    建议启动类型: 手动
    32.Network DDE DSDM
    简介:管理动态数据交换 (DDE) 网络共享。如果此服务终止,DDE 网络共享将不可用。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: Network DDE 依赖于此服务
    建议启动类型: 手动
    33.Network Location Awareness (NLA)
    简介:收集并保存网络配置和位置信息,并在信息改动时通知应用程序。
    依存关系: 此服务依赖于AFD网络支持环境、TCP/IP Procotol Driver,同时Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS) 依赖于此服务
    建议启动类型: 手动
    34.NT LM Security Support Provider
    简介:为使用传输协议而不是命名管道的远程过程调用(RPC)程序提供安全机制。如果不使用 Message Queuing 或Telnet Server可以关闭此服务。
    依存关系: Telnet依赖于此服务
    建议启动类型: 手动
    35.Performance Logs and Alerts
    简介:收集本地或远程计算机基于预先配置的日程参数的性能数据,然后将此数据写入日志或触发警报。如果此服务被终止,将不会收集性能信息。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系:无
    建议启动类型: 手动
    36.Plug and Play
    简介:并适应硬件的更改。终止或禁用此服务会造成系统不稳定。
    依存关系: Logical Disk Manager、Logical Disk Manager Administrative Service、Messenger、Smart Card、Telephony、Windows Audio依赖于此服务。
    建议启动类型: 自动
    37.Portable Media Serial Number
    简介:获取连接到本机的音乐播放器的序列号
    依存关系:无
    建议启动类型: 已禁用
    38.Print Spooler
    简介:将文件加载到内存中以便迟后打印,如果没有打印机,关闭此服务。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 无打印机则选择手动,有打印机或使用网络打印机则选择自动
    39.Protected Storage
    简介:提供对敏感数据(如私钥)的保护性存储,以便防止未授权的服务,过程或用户对其的非法访问。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 自动
    40.QoS RSVP
    简介:为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和本地通信控制安装功能。
    依存关系: 此服务依赖于AFD网络支持环境、TCP/IP Procotol Driver和Remote Procedure Call (RPC)
    建议启动类型: 手动
    41.Remote Access Auto Connection Manager
    简介:无论什么时候当某个程序引用一个远程 DNS 或 NetBIOS 名或者地址就创建一个到远程网络的连接。有些 DSL/Cable 提供者,可能需要用此来处理登入程序。
    依存关系: 此服务依赖于Remote Access Connection Manager、Telephony
    建议启动类型: 手动
    42.Remote Access Connection Manager
    简介:创建网络连接。
    依存关系: 此服务依赖于Telephony,同时Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS)和Remote Access Auto Connection Manager依赖于此服务
    建议启动类型: 手动
    43.Remote Desktop Help Session Manager
    简介:管理并控制远程协助。如果此服务被终止,远程协助将不可用。终止此服务前,请参见“属性”对话框上的“依存”选项卡。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    44.Remote Procedure Call (RPC)
    简介:提供终结点映射程序 (endpoint mapper) 以及其它 RPC 服务。
    依存关系: 有38个服务依赖于此服务
    建议启动类型: 自动
    45.Remote Procedure Call (RPC) Locator
    简介:管理 RPC 名称服务数据库。
    依存关系: 此服务依赖于Workstation
    建议启动类型: 手动
    46.Remote Registry
    简介:使远程用户能修改此计算机上的注册表设置。如果此服务被终止,只有此计算机上的用户才能修改注册表。如果此服务被禁用,任何依赖它的服务将无法启动。基于安全性考虑,除非必须要远程修改注册表,确保关闭此服务。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 已禁用
    47.Removable Storage
    简介:移动设备使用, 除非有 Zip 磁盘驱动器或是 USB 之类移动存储硬件或是 Tape 备份装置,关闭此服务
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    48.Routing and Remote Access
    简介:在局域网以及广域网环境中为企业提供路由服务。
    依存关系: 此服务依赖于NetBIOSGroup 和Remote Procedure Call (RPC)
    建议启动类型: 已禁用
    49.Secondary Logon
    简介:启用替换凭据下的启用进程。如果此服务被终止,此类型登录访问将不可用。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系:无
    建议启动类型: 自动
    50.Security Accounts Manager 
    简介:存储本地用户帐户的安全信息。
    依存关系: 此服务依赖于Remote Procedure Call (RPC),同时Distributed Transaction Coordinator 依赖于此服务
    建议启动类型: 自动
    51.Server 
    简介:支持此计算机通过网络的文件、打印、和命名管道共享。如果服务停止,这些功能不可用。如果服务被禁用,任何直接依赖于此服务的服务将无法启动。
    依存关系: Computer Browser 依赖于此服务
    建议启动类型: 手动,如果需要使用Windows的文件/打印共享功能,启动类型选择自动
    52.Shell Hardware Detection
    简介:为自动播放硬件事件提供通知,一般使用在记忆卡或是CD、DVD设备上。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    53.Smart Card
    简介:管理此计算机对智能卡的取读访问。如果此服务被终止,此计算机将无法取读智能卡。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于Plug and Play
    建议启动类型: 手动,如果有智能卡则选择自动
    54.Smart Card Helper
    简介:启用对此计算机使用的旧式(legacy)非即插即用智能卡读取器的支持。如果此服务被终止,此计算机将无法支持旧式取读器。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系:无
    建议启动类型:手动,如果有智能卡则选择自动
    55.SSDP Discovery Service
    简介:自动发现网络上的 UPnP(Universal Plug and Play) 设备服务。UPnP 让计算机可以找到并使用网络上的设备,经 TCP/IP 来搜索设备,如数字相机或打印机。
    依存关系: Universal Plug and Play Device Host 依赖于此服务
    建议启动类型: 手动
    56.System Event Notification
    简介:跟踪系统事件,如登录 Windows,网络以及电源事件等。将这些事件通知给 COM+ 事件系统 “订阅者(subscriber)”。
    依存关系: 此服务依赖于COM+ Event System
    建议启动类型: 自动
    57.System Restore Service
    简介:执行系统还原功能。 要停止服务,请从“我的电脑”的属性中的系统还原选项卡关闭系统还原。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    58.Task Scheduler
    简介:使用户能在此计算机上配置和制定自动任务的日程。如果此服务被终止,这些任务将无法在日程时间里运行。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 如果没有需要定时运行的程序,则选择手动,如果有,则选择自动
    59.TCP/IP NetBIOS Helper
    简介:允许对“TCP/IP 上 NetBIOS (NetBT)”服务以及 NetBIOS 名称解析的支持。
    依存关系: 此服务依赖于AFD 网络支持环境和NetBT
    建议启动类型: 自动
    60.Telephony
    简介:提供 TAPI 的支持,以便程序控制本地计算机,服务器以及 LAN 上的电话设备和基于 IP 的语音连接。一般的拨号调制解调器或是一些 DSL/Cable 可能用到。
    依存关系: 此服务依赖于Plug and Play和Remote Procedure Call (RPC),同时Remote Access Connection Manager和Remote Access Auto Connection Manager依赖于此服务
    建议启动类型: 手动
    61.Telnet
    简介:持多种 TCP/IP Telnet 客户,包括基于 UNIX 和 Windows 的计算机。如果此服务停止,远程用户就不能访问程序,任何直接依靠它的服务将会启动失败。基于安全方面的考虑,关闭此服务。
    依存关系: 此服务依赖于NT LM Security Support Provider、Remote Procedure Call (RPC)、TCP/IP Protocol Driver
    建议启动类型: 已禁用
    62.Terminal Services
    简介:允许多位用户连接并控制一台机器,并且在远程计算机上显示桌面和应用程序。这是远程桌面(包括管理员的远程桌面)、快速用户转换、远程协助和终端服务器的基础结构。
    依存关系: 此服务依赖于Remote Procedure Call (RPC),同时Fast User Switching Compatibility依赖于此服务
    建议启动类型: 已禁用
    63.Themes
    简介:为用户提供使用主题管理的经验。
    依存关系:无
    建议启动类型: 手动
    64.Uninterruptible Power Supply
    简介:管理连接到计算机的不间断电源(UPS)。
    依存关系:无
    建议启动类型: 如果有UPS则选择自动,如果没有则选择手动
    65.Universal Plug and Play Device Host
    简介: 提供对主机通用随插即用设备的支持,用来侦测安装通用随插即用设备,例如数码相机或打印机
    依存关系: 此服务依赖于SSDP Discovery Service
    建议启动类型: 手动
    66.Volume Shadow Copy
    简介:管理并执行用于备份和其它目的的卷影复制。如果此服务被终止,备份将没有卷影复制,并且备份会失败。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    67.WebClient
    简介:使基于 Windows 的程序能创建、访问和修改基于 Internet 的文件,使用 WebDAV 将档案或数据夹上载到所有的 Web 服务。如果此服务被终止,将会失去这些功能。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于WebDav Client Redirector
    建议启动类型: 手动
    68.Windows Audio
    简介:管理基于 Windows 的程序的音频设备。如果此服务被终止,音频设备及其音效将不能正常工作。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于Plug and Play和Remote Procedure Call (RPC)
    建议启动类型: 自动
    69.Windows Image Acquisition (WIA)
    简介:为扫描仪和照相机提供图像捕获。如果扫描仪和数码相机内部支持WIA功能的话,就可以直接看到图档,不需要其它的驱动程序。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    70.Windows Installer
    简介:根据包含在 .MSI 文件中的指示来安装、修复或删除软件,协助使用者正确地安装、设定、追踪、升级和移除软件程序,该服务可管理应用程序建立和安装的标准格式,并且追踪例如程序组、登录项目及快捷方式等组件。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    71.Windows Management Instrumentation (WMI)
    简介:提供共同的界面和对象模式以便访问有关操作系统、设备、应用程序和服务的管理信息。如果此服务被终止,多数基于 Windows 的软件将无法正常运行。如果此服务被禁用,任何依赖它的服务将无法启动。
    依存关系: 此服务依赖于Event Log和Remote Procedure Call (RPC)
    建议启动类型: 自动
    72.Windows Management Instrumentation Driver Extensions
    简介:与驱动程序间交换系统管理信息。
    依存关系:无
    建议启动类型: 手动
    73.Windows Time
    简介:维护在网络上的所有客户端和服务器的时间和日期同步。如果此服务被停止,时间和日期的同步将不可用。如果此服务被禁用,任何明确依赖它的服务都将不能启动。
    依存关系:无
    建议启动类型: 手动
    74.Wireless Zero Configuration
    简介:为802.11 无线网络适配器提供自动配置
    依存关系: 此服务依赖于NDIS用户模式I/O协议和Remote Procedure Call (RPC)
    建议启动类型: 手动
    75.WMI Performance Adapter
    简介:从 WMI HiPerf  提供程序提供性能库信息。
    依存关系: 此服务依赖于Remote Procedure Call (RPC)
    建议启动类型: 手动
    76.Workstation
    简介:创建和维护到远程服务的客户端网络连接。如果服务停止,这些连接将不可用。如果服务被禁用,任何直接依赖于此服务的服务将无法启动。
    依存关系: Alerter、Background Intelligent Transfer Service、Computer Browser、Messenger、Net Logon、Remote Procedure Call (RPC) Locator 依赖于此服务
    建议启动类型: 自动
    June 26

    熬到那一天

          最近实验室搞的人心惶惶。临近开题,可很多人都要换方向,甚至有的同学题目还没有定下来。一个973,就需要我们这样义无反顾的献身吗?真的很崩溃。我对虚拟化没有什么兴趣,而且不希望自己这半年的努力付诸流水。加油。虽然难熬,也要挺过去。
         
     
    June 20

    转:蓝颜知己会不会变成“绿帽情敌”?

    转两篇文章,不加评论。(一)文/曾子航 http://user.qzone.qq.com/622005378/blog/10(二)hebeianguo的文集

         曾子酷贫:红颜知己也好,蓝颜知己也罢,那都是配偶和情人之间的润滑剂,是男女感情之间的“灰色收入”,所以一定要适可而止,量力而行,一旦“收入”泛滥,就会犯“巨额情感来源不明罪”,“道德法庭”就会找上您,小心啊,“蓝颜知己”可别发展下去“变了色儿”成了“绿帽情敌”! 
          那天被李静、戴军主持的电视栏目《情感方程式》请去作嘉宾,谈的话题是《如果你的女朋友有个“蓝颜知己”,你能接受吗?》
        “蓝颜知己”,这词儿听得新鲜,一开始还没反应过来,因为从小看戏曲、听评书,耳闻目睹最多的乃“红颜知己”。比如杨贵妃就是唐明皇的“红颜知己”,一个“回眸一笑百媚生”,另一个就“从此君王不早朝”,把好端端的一代明君愣给调教成了“六宫粉黛无颜色”的头号“玉米”,(杨贵妃原名杨玉环,在红颜知己面前,唐明皇彻底堕落成中国历史上第一个“玉米”,比围绕超女李宇春小姐身边的诸多“玉米”足足早了1000多年,最后“渔阳鼙鼓动地来,惊破霓裳羽衣曲”,葬送了大好江山不说,红颜知己也“宛转蛾眉马前死”!这位年近花甲的“老玉米”长期沉迷自己的偶像,结果呢,真是赔了红颜又折兵啊!唐明皇,这个中国历史上最有名的“追星族”的悲剧提醒现今诸多“玉米”,偶像崇拜要适可而止啊)北宋最后一个皇帝宋徽宗,不是一个合格的“国家主席”,却可以当一位称职的“文联主席”,大凡诗词歌赋、书法绘画,那是无一不精,害得当时红得发紫的演艺明星李师师小姐心甘情愿地给他当起了红颜知己。宋徽宗每天都要坐“地铁”去跟她幽会,两人在一起就是琴棋书画、吟风弄月,那真是风流快活啊!《桃花扇》里的名妓李香君,本与知书识礼、一表人才的富家公子侯方域不离不弃、生死相许,后来看到侯方域“叛变革命”,甘当“清廷鹰犬”,面对民族大义,遂舍儿女情长与之恩断义绝,堪称“红颜知己”的楷模。《红楼梦》中的贾宝玉、林黛玉,一个是阆苑仙芭,一个是美玉无暇,虽说宝哥哥有“见一个爱一个”的“花痴”之嫌,但在他心中,林妹妹始终是唯一可以“将心比心”的红颜知己。
          长大了以后,终于明白,现代人所说的“红颜知己”跟古人心中的“红颜知己”还不完全是一个概念,古时候的“红颜知己”,身上一般“装载”了两种功能:既是知己,又是情人,尤其是像李师师、李香君、陈圆圆、柳如是、赛金花这些名妓,都是“买一送一”型的,在自己喜欢的帝王将相、文人雅士面前,都是将“三陪”事业进行到底的,所以按照现代人的眼光,她们应该称作“情人知己”更妥当一些。至于我们时常挂在嘴边的所谓“红颜知己”,是指思想上“亲密无间”,可又绝不掺杂任何男女私情的异性朋友,她不是妻子,也不是情人,但比一般的异性朋友要走得近,可以“共看篝火”,但不能“相互取暖”,可以“心动”,但不会“行动”,它是男女之间的“第四种”感情。 
          曾子认为,在这个忙忙碌碌竞争激烈的现代社会,身心疲惫的男人们与其需要一个纠缠不清、麻烦不断的情人,毋宁说更渴望一个“读你千遍也不厌倦,读你的感觉像三月”的红颜知己。所谓妻子是家,情人是性,红颜知己是情,什么意思?确切的讲,妻子给男人家的温暖,情人满足男人性的需要,红颜知己则是男人“情的港湾”。
          有人说老婆是太阳,情人是月亮,那么红颜知己则是星星,太阳月亮有疲倦的时候,星星却没有,它闪闪烁烁若即若离,甘于寂寞却又灿烂而长久。曾子总结,老婆会在平淡如水的婚姻生活中慢慢缩小成餐桌上残留的一颗饭粒儿,情人有时候也会成为男人摆脱不了的“沉重肉身”,只有红颜知己则是时时刻刻给男人带来温暖的“心灵鸡汤”。所以,通常情况下,老婆占有男人,情人消耗男人,而红颜知己则是塑造男人。从某种程度上,红颜知己好比是男人的精神“伟哥”! 
          如今,男女平等的口号早已喊得震天响,男人有红颜知己,为何女人不能有异性知己?于是“蓝颜知己”大行其道,在《情感方程式》节目的演播室里,两个如花似玉的女孩子振振有词:因为有难言之隐,有些心事不方便和男朋友说,于是“蓝颜知己”应运而生。据说现在很多女孩子都以拥有“蓝颜知己”为荣,上自春风得意的影视红星,下自情窦初开的女中学生,都“蓝颜知己”无数,连千万点击率的徐博客都把同样千万的韩博客奉为“知己”。“蓝颜知己”俨然成了女人情感世界里的“私房钱”,不仅身边亲人无从过问,连老公男友都不得要领。前不久跟一个刚刚新婚的妙龄女士聊天,她说虽然老公疼她爱她,但还是不满足,因为她渴望一个知她懂她的蓝颜知己,显然这是百依百顺俗不堪耐的丈夫难以替代的,问她对蓝颜知己有什么具体要求,小女子不说不知道,一说吓一跳,罗嗦半天,总结出了四句诗:“他要思想深刻成熟睿智像萨特,他要风度翩翩风趣幽默似派克;他又要只求奉献不求回报像雷锋;他还要心如止水坐怀不乱似唐僧!”我的妈呀,这哪里是找“蓝颜知己”,这分明是在找“玉皇大帝”嘛! 
         不管怎么说,红颜知己也好,蓝颜知己也罢,曾子觉得,那都是配偶和情人之间的润滑剂,是男女感情之间的“灰色收入”,所以一定要适可而止,量力而行,一旦“收入”泛滥,就会犯“巨额情感来源不明罪”,“道德法庭”就会找上您,弄不好将不可收拾。那天在演播室现场,一个女孩子正大快朵颐地称颂着身边一位“蓝颜知己”的种种好处时,我就分明注意到坐在旁边貌不出众的“眼镜男友”的脸上始终是“阴晴不定”,人家心里肯定是不痛快,脸上自然也就不愉快,小心啊,“蓝颜知己”可别发展下去“变了色儿”成了“绿帽情敌”!

    这是我男朋友写的。---《男女间有纯洁的友谊=有鬼》

          通常我们一听到别人问男女之间有没有纯洁的友谊,脑袋里往往一片迷糊,张嘴想说可是又不知道该说什么,想了一会儿后只能带着不确定的语气说我相信是有的或没有,但却不能给予解释,回答有的会举出一些想不明白的例子来说明,回答没有的让他说说,他也道不出所以然来,反正就那么认为。其实问题的关键不在于有或者没有,而在于什么是纯洁的友谊,要是我们能给纯洁的友谊一个明确的定义,那回到这个问题也就容易了。就像别人问世上有没有鬼,不管你回答有或没有,你都很难给予解释,回答有的也会举出一些想不通的例子,那些回答没有的让他说说为什么,顶多再冒一句:“你傻呀,这世上哪有鬼”,反正就那么认为。
        鬼有时候是我们对想不明白的一些事物的代名词,是一种托词,一种借口,鬼的诞生使我们对很多事情释怀,感到坦然,不用再绞尽脑汁费尽心神,一个“有鬼”便解决一切,答案就是那是鬼做的,于是安然入睡,以后该怎么做还怎么做,谁让有鬼呢。同样,纯洁的友谊也是一些想不明白事情的代名词,一种托词,一种借口,当你和别人无所不谈,无所不玩的时候,深夜里便绞尽脑汁费尽心神地想自己和他到底是什么关系,是自己喜欢他吗,不确定,好像没有这种感觉,但就是喜欢和他说话和他玩,于是乎一拍脑袋:哈,我们是纯洁的友谊关系。呼呼大睡过去,明天可以安心和他玩去喽,谁让我们之间是纯洁的友谊关系呢。
        鬼有时候暗含着一种恐惧,一种担忧。当你和朋友在乌黑寂静地夜里听到一栋无人居住的破屋里传来‘呜呜’的哭声时,你宁愿希望你朋友说那是一个女的摔断了腿疼的在里面哭,或是被色狼抓到那强奸了,反正不管有多惨,你也不希望朋友突然一声大喊:有鬼呀!同样,你女友(男友)和异性有说有笑,无所不谈,能整天跑出去和人家玩去,你宁愿你女友(男友)说我们以前是亲戚,是同桌,或是死党都行,你也不希望你女友(男友)来一句:我们是纯洁的友谊关系。
        有鬼意味着有蹊跷,同样有纯洁的友谊关系也意味着有蹊跷。男女同学之间关系再好不会没事干说我们之间是纯洁的友谊关系,说了无疑是掩耳盗铃。有的女生说我深爱着自己的男友,但我有什么事照样会和另一个异性朋友说,平常也会和他一起出去玩,感觉没什么的,他也是这样,双方应该就是纯洁的友谊关系吧,这时你还得相信有鬼,不是你有鬼,而是对方有鬼。如果对方知道你有男友,这时往往包含着对方的无奈,些许祝福,希望你能够快乐幸福,他是一只善鬼;但有的很有可能是处心积虑,随时希望能打动你的心,取而代之,只是单纯的你还不知道而已,这时他就会是只恶鬼。女生要相信,男生做事都会有很强的目的性。如果双方都没有男女朋友,却能够一起无话不说,没了对方好像会少了些什么,有两种可能,一种是你这根骨头还埋在土里,和空气被土壤隔开了,双方相距太远,无法自燃;还有就是你已经露在空气中了,但温度还不够高,只要一直接触下去,总有一天会达到自燃的温度,燃起鬼火,点燃你们相互之间的爱情火焰。
        我不知道男女之间有没有纯洁的友谊,就像我不知道世上有没有鬼一样,但你要是敢斩钉截铁、无比sure地说:男女之间存在着纯洁的友谊关系,那么这世界上就一定有鬼。

    June 18

    windows 中ActiveX控件注册方法

     
         自从Microsoft公司于1996年推出ActiveX技术以来,ActiveX技术已得到了许多软件公司的支持和响应,并纷纷在其产品中融入ActiveX技术。而作为ActiveX技术之一的ActiveX控件也得到了迅猛的发展,不但各大软件公司推出了不少ActiveX 控件,ActiveX控件更是得到一般开发者的喜爱。那么,什么是ActiveX控件呢?ActiveX控件是一个动态链接库,是作为基于COM服务器进行操作的,并且可以嵌入在包容器宿主应用程序中,ActiveX控件的前身就是OLE控件。由于ActiveX控件与开发平台无关,因此,在一种编程语言上开发的ActiveX控件可以无须任何修改,即可在另一种编程语言中使用,其效果如同使用Windows通用控件一样。如:在VC 中开发的ActiveX控件,不作任何修改即可应用于VB中。由此可见,通过使用ActiveX控件即可实现快速小型的组件重用、实现代码共享,从而提高编程效率。从上面亦可看出为何ActiveX控件如此广泛地受到开发者的欢迎。

       因为ActiveX控件的可重用性,加上Internet的普及,ActiveX控件得到了极大的发展,目前,从Internet上可以得到相当多的ActiveX控件,而且品种繁多,所完成的任务几乎无所不包。对普通开发者来说,只要有耐心,都能从Internet上找到符合自己要求的ActiveX控件。

       从Internet下载的ActiveX控件,或从其他途径得到的ActiveX控件,用户应该怎样做才能正确使用ActiveX控件或将其应用于自己的程序中呢?一般来说,一个外来ActiveX控件要在Windows中被正确使用,首先必须将控件文件(*.OCX)复制到硬盘中,然后将其在Windows中注册,未在Windows中注册过的ActiveX控件是不能使用的。注册ActiveX控件一般来说有三种途径:

       1. 使用Regsvr32.exe程序对ActiveX控件进行注册;

       2. 使用安装程序制作软件:InstallShield;

       3. 在应用程序中加入注册代码。

       上述方法适用范围不同,各有各的优点,下面分别讨论。

       一、 使用Regsvr32.exe程序对ActiveX控件进行注册

       对于未注册过的ActiveX控件可使用此软件对其进行注册,外来ActiveX控件要应用到自己的程序中也必须进行注册。该文件位于Windows目录的system子目录下。使用方法如下:点击“开始”→“运行”;在运行对话框中输入以下命令:

    regsvr32 < 文件名 > 注册一个ActiveX控件
    regsvr32 /u < 文件名 > 解除某ActiveX控件的注册
       我们使用一些带ActiveX控件的应用程序时,有时会出现不能运行的情况,这有可能是其自带ActiveX控件未注册所至,这时不妨使用上述命令一试。另外,VC 使用者若对regsvr32.exe的编码感兴趣的话,可在VC 的联机帮助中找到其源代码。若使用VC 6.0,则在MSDN光盘的sampleVC98MFCcontrols egsvr中。
       二、 使用安装程序制作软件:InstallShield

       使用regsvr32.exe来注册ActiveX控件虽然简单,但需要用户手工注册,在不用时还得手工解除注册,因此,这对一个应用程序来说并非好的解决方案。大型应用软件一般都有一个安装程序,在安装程序中解决ActiveX控件注册是较为理想的一种方案。使用InstallShield可以制作出专业级的Setup,还可注册其中的ActiveX控件;而且,在以后携载软件时,自动注销掉以前注册的ActiveX控件。方法如下:

       1. 启动InstallShield,使用Project Wizard建立一个新的项目;

       2. 新建一个“File Group”,将需要注册的ActiveX控件文件放入此“File Group”中;

       3. 将上述“File Group”的“Self-Registered”属性设置成“Yes”。

       上述步骤仅为制作Setup中设置自动注册ActiveX控件几步,至于使用InstallShield怎样制作一个完整的Setup不在本文讨论范围之中,请读者自己参看有关书籍。

       三、 在应用程序中加入注册代码

       对于小型程序不宜采取第二种方法,较好的方法是在程序中嵌入注册代码,实现应用程序自注册。其编程方法是:

       1. 使用Windows API函数LoadLibrary载入ActiveX控件;

       2. 使用GetProcAddress函数获取ActiveX控件中注册函数DllRegisterServer(注销函数为DllUnregisterServer)指针;

       3. 调用注册函数DllRegisterServer(或注销函数DllUnregisterServer)。

       下面以VC 6.0编写的RegActivex程序为例,介绍怎样在程序中自动注册(注销)ActiveX控件。RegActivex的主体框架由VC 6.0的AppWizard自动产生,在其基础上增加两个菜单项:“注册ActiveX控件”、“注销ActiveX控件”。当选择“注册ActiveX控件”菜单时,将对控件toweratl.ocx(一个汉诺游戏)进行注册;当选择“注销ActiveX控件”菜单时,将解除控件toweratl.ocx的注册。

       1. 使用VC 6.0建立一个单文档的应用程序RegActivex,其他项目接受默认设置;

       2. 给应用程序增加两个菜单项:“注册ActiveX控件”、“注销ActiveX控件”,步骤如下:

       ① 单击VC 6.0左边窗口的“ResoureView”,双击MENU项目下的IDR_MAINFRAME以打开菜单编辑器;

       ② 在菜单编辑器中,加入一个主菜单“注册”,在“注册”主菜单下加入两个菜单项:“注册ActiveX控件”、“注销ActiveX控件”;

       3. 给新建的菜单项 “注册ActiveX控件” 和“注销ActiveX控件”增加响应函数:

       ① 在资源编辑其中,双击MENU中的IDR_MAINFRAME打开菜单编辑器,单击“注册ActiveX控件”,按Ctrl W打开MFC Class Wizard;

       ② 双击Messages框中的COMMAND,给“注册ActiveX控件”菜单项增加响应函数OnRegisterReg(),单击右边“Edit”按钮给OnRegisterReg()函数增加如下代码:

    void CMainFrame::OnRegisterReg()
    {
    //ActiveX控件的路径及文件名
    LPCTSTR pszDllName="toweratl.ocx";
    //装载ActiveX控件
    HINSTANCE hLib = LoadLibrary(pszDllName);
    if (hLib < (HINSTANCE)HINSTANCE_ERROR)
    {
    MessageBox("不能载入Dll文件!","结果",MB_OK);
    return;
    }
    //获取注册函数DllRegisterServer地址
    FARPROC lpDllEntryPoint;
    lpDllEntryPoint = GetProcAddress
    (hLib,_T("DllRegisterServer"));
    //调用注册函数DllRegisterServer
    if(lpDllEntryPoint!=NULL)
    {
    if(FAILED((*lpDllEntryPoint)()))
    {
    MessageBox("调用DllRegisterServer
    失败!","结果",MB_OK);
    FreeLibrary(hLib);
    return;
    };
    MessageBox("注册成功","结果",MB_OK);
    }
    else
    MessageBox("调用DllRegisterServer失败!"
    ,"结果",MB_OK);
    }
       ③ “注销ActiveX控件”菜单项响应函数的编写方法同上,代码也相似,只是将
    “lpDllEntryPoint=GetProcAddress
    (hLib,_T("DllRegisterServer"));”改成:
    lpDllEntryPoint = GetProcAddress
    (hLib,_T("DllUnregisterServer"))。
       4. 编译联接上述程序,即可得一个可执行文件。另需注意的是:应将ActiveX控件文件toweratl.ocx复制到Windows的system目录下。控件文件toweratl.ocx在微软出版的《Visual C 6.0程序员指南》所附光盘中可以找到。
       5. 测试上述程序:运行《Visual C 6.0程序员指南》所附光盘中的game2程序,若使用RegActivex注册了toweratl.ocx控件,则该程序可以正常运行;若使用RegActivex注销了toweratl.ocx控件则game2不能运行
    June 14

    明天,一个新的开始

        在识别机上确认了一下自己的指纹,明天就要开始打卡喽。用师兄的话说,以前还算是义工,以后就正式成为民工了。
        只是句玩笑话,但过去的一年里,不管风吹日晒都要坚持到实验室,不能迟到早退的生活,对于他们来说应该是个难忘的过去时。
        不能再熬夜了,早睡早起,明天,一个充实的开始。

    C++中的二维数组

    本科学C++时就没有认真学习过这部分,都是一知半解,用的时候也很混乱。
    趁着现在建模中要用到,就踏实的复习一下,总结一些东西。

    常用数据类型转换

    先定义一些常见类型变量借以说明
    int i = 100;
    long l = 2001;
    float f=300.2;
    double d=12345.119;
    char username[]="苟苟";
    char temp[200];
    char *buf;
    CString str;
    _variant_t v1;
    _bstr_t v2;
    一、其它数据类型转换为字符串
    短整型(int)
    itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制
    itoa(i,temp,2); ///按二进制方式转换
    长整型(long)
    ltoa(l,temp,10);
    二、从其它包含字符串的变量中获取指向该字符串的指针
    CString变量
    str = "2008北京奥运";
    buf = (LPSTR)(LPCTSTR)str;
    BSTR类型的_variant_t变量
    v1 = (_bstr_t)"程序员";
    buf = _com_util::ConvertBSTRToString((_bstr_t)v1);
    三、字符串转换为其它数据类型
    strcpy(temp,"123";
    短整型(int)
    i = atoi(temp);
    长整型(long)
    l = atol(temp);
    浮点(double)
    d = atof(temp);
    四、其它数据类型转换到CString
    使用CString的成员函数Format来转换,例如:
    整数(int)
    str.Format("%d",i);
    浮点数(float)
    str.Format("%f",i);
    字符串指针(char *)等已经被CString构造函数支持的数据类型可以直接赋值
    str = username;
    五、BSTR、_bstr_t与CComBSTR
    CComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的32位指针。
    char *转换到BSTR可以这样: BSTR b=_com_util::ConvertStringToBSTR("数据";///使用前需要加上头文件comutil.h
    反之可以使用char *p=_com_util::ConvertBSTRToString(b);
    六、VARIANT 、_variant_t 与 COleVariant
    VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义。
    对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,举个例子:
    VARIANT va;
    int a=2001;
    va.vt=VT_I4;///指明整型数据
    va.lVal=a; ///赋值
    对于不马上赋值的VARIANT,最好先用Void VariantInit(VARIANTARG FAR* pvarg);进行初始化,其本质是将vt设置为VT_EMPTY,下表我们列举vt与常用数据的对应关系:
    unsigned char bVal; VT_UI1
    short iVal; VT_I2
    long lVal; VT_I4
    float fltVal; VT_R4
    double dblVal; VT_R8
    VARIANT_BOOL boolVal; VT_BOOL
    SCODE scode; VT_ERROR
    CY cyVal; VT_CY
    DATE date; VT_DATE
    BSTR bstrVal; VT_BSTR
    IUnknown FAR* punkVal; VT_UNKNOWN
    IDispatch FAR* pdispVal; VT_DISPATCH
    SAFEARRAY FAR* parray; VT_ARRAY|*
    unsigned char FAR* pbVal; VT_BYREF|VT_UI1
    short FAR* piVal; VT_BYREF|VT_I2
    long FAR* plVal; VT_BYREF|VT_I4
    float FAR* pfltVal; VT_BYREF|VT_R4
    double FAR* pdblVal; VT_BYREF|VT_R8
    VARIANT_BOOL FAR* pboolVal; VT_BYREF|VT_BOOL
    SCODE FAR* pscode; VT_BYREF|VT_ERROR
    CY FAR* pcyVal; VT_BYREF|VT_CY
    DATE FAR* pdate; VT_BYREF|VT_DATE
    BSTR FAR* pbstrVal; VT_BYREF|VT_BSTR
    IUnknown FAR* FAR* ppunkVal; VT_BYREF|VT_UNKNOWN
    IDispatch FAR* FAR* ppdispVal; VT_BYREF|VT_DISPATCH
    SAFEARRAY FAR* FAR* pparray; VT_ARRAY|*
    VARIANT FAR* pvarVal; VT_BYREF|VT_VARIANT
    void FAR* byref; VT_BYREF
    _variant_t是VARIANT的封装类,其赋值可以使用强制类型转换,其构造函数会自动处理这些数据类型。
    例如:
    long l=222;
    ing i=100;
    _variant_t lVal(l);
    lVal = (long)i;
    COleVariant的使用与_variant_t的方法基本一样,请参考如下例子:
    COleVariant v3 = "字符串", v4 = (long)1999;
    CString str =(BSTR)v3.pbstrVal;
    long i = v4.lVal;
     
    CString转int、long、float
    int InnerProid = atoi((char *)(LPCSTR)InnerPro);
    如果数据库字段是int型
    浮点转换成variant
    COleVariant((float)alength)
    整型转换成variant
    COleVariant((long)OuterInsulid,VT_I4)
    CString如何转换成char *
    (char*)(LPCSTR)strYear
    COleVariant如何转变成CString
    COleVariant var;
    CString smid;
    var = GetFieldValue(COleVariant("smid");
    var.ChangeType(VT_BSTR);
    smid = var.bstrVal
    CString如何转变成COleVariant
    CString ttt;
    COleVariant var;
    var.SetString((LPCSTR)ttt, VT_BSTR)

    七、其它
    对消息的处理中我们经常需要将WPARAM或LPARAM等32位数据(DWORD)分解成两个16位数据(WORD),例如:
    LPARAM lParam;
    WORD loValue = LOWORD(lParam);///取低16位
    WORD hiValue = HIWORD(lParam);///取高16位
    对于16位的数据(WORD)我们可以用同样的方法分解成高低两个8位数据(BYTE),例如:
    WORD wValue;
    BYTE loValue = LOBYTE(wValue);///取低8位
    BYTE hiValue = HIBYTE(wValue);///取高8位

    CString str;int i;float f;
    //将字符串转换为整型
    str="123";
    i=atoi(str);
    //将字符串转换为单精度型
    str="123.123";
    f=atof(str);
    //将整型和单精度型转换为字符串。
    i=123;
    f=123.123;
     

    VC中的文件操作

    收藏在下边,省了每次查MSDN之苦。第一篇文章利用的CFile类,第二篇文章利用的fstream
     
    (一)
    各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。本文将对Visual C++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。
      1.文件的查找
      当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。下面这段代码演示了这个类的最基本使用方法。
      CString strFileTitle;
      CFileFind finder;
      BOOL bWorking = finder.FindFile("C:\\windows\\sysbkup\\*.cab");
      while(bWorking)
      {
      bWorking=finder.FindNextFile();
      strFileTitle=finder.GetFileTitle();
      }
      2.文件的打开/保存对话框
      让用户选择文件进行打开和存储操作时,就要用到文件打开/保存对话框。MFC的类CFileDialog用于实现这种功能。使用CFileDialog声明一个对象时,第一个BOOL型参数用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框,为FALSE时构造一个文件保存对话框。
      在构造CFileDialog对象时,如果在参数中指定了OFN_ALLOWMULTISELECT风格,则在此对话框中可以进行多选操作。此时要重点注意为此CFileDialog对象的m_ofn.lpstrFile分配一块内存,用于存储多选操作所返回的所有文件路径名,如果不进行分配或分配的内存过小就会导致操作失败。下面这段程序演示了文件打开对话框的使用方法。
      CFileDialog mFileDlg(TRUE,NULL,NULL,
      OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,
      "All Files (*.*)|*.*||",AfxGetMainWnd());
      CString str(" ",10000);
      mFileDlg.m_ofn.lpstrFile=str.GetBuffer(10000);
      str.ReleaseBuffer();
      POSITION mPos=mFileDlg.GetStartPosition();
      CString pathName(" ",128);
      CFileStatus status;
      while(mPos!=NULL)
      {
      pathName=mFileDlg.GetNextPathName(mPos);
      CFile::GetStatus( pathName, status );
      }
      3.文件的读写
      文件的读写非常重要,下面将重点进行介绍。文件读写的最普通的方法是直接使用CFile进行,如文件的读写可以使用下面的方法:
        //对文件进行读操作
        char sRead[2];
        CFile mFile(_T("user.txt"),CFile::modeRead);
        if(mFile.GetLength()<2)
        return;
        mFile.Read(sRead,2);
        mFile.Close();
        //对文件进行写操作
        CFile mFile(_T("user.txt "), CFile::modeWrite|CFile::modeCreate);
        mFile.Write(sRead,2);
        mFile.Flush();
        mFile.Close();
        虽然这种方法最为基本,但是它的使用繁琐,而且功能非常简单。我向你推荐的是使用CArchive,它的使用方法简单且功能十分强大。首先还是用CFile声明一个对象,然后用这个对象的指针做参数声明一个CArchive对象,你就可以非常方便地存储各种复杂的数据类型了。它的使用方法见下例。
        //对文件进行写操作
        CString strTemp;
        CFile mFile;
        mFile.Open("d:\\dd\\try.TRY",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);
        CArchive ar(&mFile,CArchive::store);
        ar<<  ar.Close();
        mFile.Close();
        //对文件进行读操作
        CFile mFile;
        if(mFile.Open("d:\\dd\\try.TRY",CFile::modeRead)==0)
        return;
        CArchive ar(&mFile,CArchive::load);
         ar>>strTemp;
          ar.Close();
        mFile.Close();
        CArchive的 << 和>> 操作符用于简单数据类型的读写,对于CObject派生类的对象的存取要使用ReadObject()和WriteObject()。使用CArchive的ReadClass()和WriteClass()还可以进行类的读写,如:
        //存储CAboutDlg类
        ar.WriteClass(RUNTIME_CLASS(CAboutDlg));
        //读取CAboutDlg类
        CRuntimeClass* mRunClass=ar.ReadClass();
        //使用CAboutDlg类
       CObject* pObject=mRunClass->CreateObject();
         ((CDialog* )pObject)->DoModal();
        虽然VC提供的文档/视结构中的文档也可进行这些操作,但是不容易理解、使用和管理,因此虽然很多VC入门的书上花费大量篇幅讲述文档/视结构,但我建议你最好不要使用它的文档。关于如何进行文档/视的分离有很多书介绍,包括非常著名的《Visual C++ 技术内幕》。
        如果你要进行的文件操作只是简单的读写整行的字符串,我建议你使用CStdioFile,用它来进行此类操作非常方便,如下例。
        CStdioFile mFile;
        CFileException mExcept;
        mFile.Open( "d:\\temp\\aa.bat", CFile::modeWrite, &mExcept);
        CString string="I am a string.";
        mFile.WriteString(string);
       mFile.Close();
       4.临时文件的使用
     
      正规软件经常用到临时文件,你经常可以会看到C:\Windows\Temp目录下有大量的扩展名为tmp的文件,这些就是程序运行是建立的临时文件。临时文件的使用方法基本与常规文件一样,只是文件名应该调用函数GetTempFileName()获得。它的第一个参数是建立此临时文件的路径,第二个参数是建立临时文件名的前缀,第四个参数用于得到建立的临时文件名。得到此临时文件名以后,你就可以用它来建立并操作文件了,如:
        char szTempPath[_MAX_PATH],szTempfile[_MAX_PATH];
        GetTempPath(_MAX_PATH, szTempPath);
        GetTempFileName(szTempPath,_T ("my_"),0,szTempfile);
        CFile m_tempFile(szTempfile,CFile:: modeCreate|CFile:: modeWrite);
        char m_char='a';
        m_tempFile.Write(&m_char,2);
        m_tempFile.Close();
        5.文件的复制、删除等
        MFC中没有提供直接进行这些操作的功能,因而要使用SDK。SDK中的文件相关函数常用的有CopyFile()、CreateDirectory()、DeleteFile()、MoveFile()。
    (二)
    在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:
    1、插入器(<<)
      向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\n';就表示把字符串"Write Stdout"和换行字符('\n')输出到标准输出流。
    2、析取器(>>)
      从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。
      在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。
    一、打开文件
      在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是:
    void open(const char* filename,int mode,int access);
    参数:
    filename:  要打开的文件名
    mode:    要打开文件的方式
    access:   打开文件的属性
    打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:
    ios::app:   以追加的方式打开文件
    ios::ate:   文件打开后定位到文件尾,ios:app就包含有此属性
    ios::binary:  以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
    ios::in:    文件以输入方式打开
    ios::out:   文件以输出方式打开
    ios::nocreate: 不建立文件,所以文件不存在时打开失败 
    ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
    ios::trunc:  如果文件存在,把文件长度设为0
      可以用“或”把以上属性连接起来,如ios::out|ios::binary
      打开文件的属性取值是:
    0:普通文件,打开访问
    1:只读文件
    2:隐含文件
    4:系统文件
      可以用“或”或者“+”把以上属性连接起来 ,如3或1|2就是以只读和隐含属性打开文件。
      例如:以二进制输入方式打开文件c:\config.sys
      fstream file1;
      file1.open("c:\\config.sys",ios::binary|ios::in,0);
      如果open函数只有文件名一个参数,则是以读/写普通文件打开,即:
      file1.open("c:\\config.sys");<=>file1.open("c:\\config.sys",ios::in|ios::out,0);
      另外,fstream还有和open()一样的构造函数,对于上例,在定义的时侯就可以打开文件了:
      fstream file1("c:\\config.sys");
      特别提出的是,fstream有两个子类:ifstream(input file stream)和ofstream(outpu file stream),ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。
      ifstream file2("c:\\pdos.def");//以输入方式打开文件
      ofstream file3("c:\\x.123");//以输出方式打开文件
      所以,在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定义。
    二、关闭文件
      打开的文件使用完成后一定要关闭,fstream提供了成员函数close()来完成此操作,如:file1.close();就把file1相连的文件关闭。
    三、读写文件
      读写文件分为文本文件和二进制文件的读取,对于文本文件的读取比较简单,用插入器和析取器就可以了;而对于二进制的读取就要复杂些,下要就详细的介绍这两种方式
      1、文本文件的读写
      文本文件的读写很简单:用插入器(<<)向文件输出;用析取器(>>)从文件输入。假设file1是以输入方式打开,file2以输出打开。示例如下:
      file2<<"I Love You";//向文件写入字符串"I Love You"
      int i;
      file1>>i;//从文件输入一个整数值。
      这种方式还有一种简单的格式化能力,比如可以指定输出为16进制等等,具体的格式有以下一些
    操纵符 功能 输入/输出
    dec 格式化为十进制数值数据 输入和输出
    endl 输出一个换行符并刷新此流 输出
    ends 输出一个空字符 输出
    hex 格式化为十六进制数值数据 输入和输出
    oct 格式化为八进制数值数据 输入和输出
    setpxecision(int p) 设置浮点数的精度位数 输出
      比如要把123当作十六进制输出:file1<<hex<<123;要把3.1415926以5位精度输出:file1<<setpxecision(5)<<3.1415926。
      2、二进制文件的读写
    ①put()
      put()函数向流写入一个字符,其原型是ofstream &put(char ch),使用也比较简单,如file1.put('c');就是向流写一个字符'c'。
    ②get()
      get()函数比较灵活,有3种常用的重载形式:
      一种就是和put()对应的形式:ifstream &get(char &ch);功能是从流中读取一个字符,结果保存在引用ch中,如果到文件尾,返回空字符。如file2.get(x);表示从文件中读取一个字符,并把读取的字符保存在x中。
      另一种重载形式的原型是: int get();这种形式是从流中返回一个字符,如果到达文件尾,返回EOF,如x=file2.get();和上例功能是一样的。
      还有一种形式的原型是:ifstream &get(char *buf,int num,char delim='\n');这种形式把字符读入由 buf 指向的数组,直到读入了 num 个字符或遇到了由 delim 指定的字符,如果没使用 delim 这个参数,将使用缺省值换行符'\n'。例如:
      file2.get(str1,127,'A');//从文件中读取字符到字符串str1,当遇到字符'A'或读取了127个字符时终止。
    ③读写数据块
      要读写二进制数据块,使用成员函数read()和write()成员函数,它们原型如下:
        read(unsigned char *buf,int num);
        write(const unsigned char *buf,int num);
      read()从文件中读取 num 个字符到 buf 指向的缓存中,如果在还未读入 num 个字符时就到了文件尾,可以用成员函数 int gcount();来取得实际读取的字符数;而 write() 从buf 指向的缓存写 num 个字符到文件中,值得注意的是缓存的类型是 unsigned char *,有时可能需要类型转换。
    例:  unsigned char str1[]="I Love You";
        int n[5];
        ifstream in("xxx.xxx");
        ofstream out("yyy.yyy");
        out.write(str1,strlen(str1));//把字符串str1全部写到yyy.yyy中
        in.read((unsigned char*)n,sizeof(n));//从xxx.xxx中读取指定个整数,注意类型转换
        in.close();out.close();
    四、检测EOF
      成员函数eof()用来检测是否到达文件尾,如果到达文件尾返回非0值,否则返回0。原型是int eof();
    例:  if(in.eof())ShowMessage("已经到达文件尾!");
    五、文件定位
      和C的文件操作方式不同的是,C++ I/O系统管理两个与一个文件相联系的指针。一个是读指针,它说明输入操作在文件中的位置;另一个是写指针,它下次写操作的位置。每次执行输入或输出时,相应的指针自动变化。所以,C++的文件定位分为读位置和写位置的定位,对应的成员函数是 seekg()和 seekp(),seekg()是设置读位置,seekp是设置写位置。它们最通用的形式如下:
        istream &seekg(streamoff offset,seek_dir origin);
        ostream &seekp(streamoff offset,seek_dir origin);
        streamoff定义于 iostream.h 中,定义有偏移量 offset 所能取得的最大值,seek_dir 表示移动的基准位置,是一个有以下值的枚举:
    ios::beg:  文件开头
    ios::cur:  文件当前位置
    ios::end:  文件结尾
      这两个函数一般用于二进制文件,因为文本文件会因为系统对字符的解释而可能与预想的值不同。
    例:
         file1.seekg(1234,ios::cur);//把文件的读指针从当前位置向后移1234个字节
         file2.seekp(1234,ios::beg);//把文件的写指针从文件开头向后移1234个字节
    C中最简单的文件操作
    头文件中加入<stdio.h>
    FILE * fin,* fout;
    fin=fopen("in.txt","r");
    fout=fopen("out.txt","w");
    float temp;
    float result[1000];
    int i=0;
    while(!feof(fin))
    {fscanf(fin,"%f",&temp);
     result[i]=temp;
     i++;
    cout<<result[i]<<endl;
    fprintf( fout, "%f\n", temp);
    }
    fclose( fout ); 
    fclose(fin); 
     
    June 10

    转:有影响力的数据挖掘软件列表

    以下介绍分别按:公司、数据挖掘工具及其特点、应用行业案例 三个方面。


    1、ANGOSS软件公司
    http://www.angoss.com/
    KnowledgeSTUDIO
    平台:NT , Windows 9X
    功能:CHAID算法,支持PMML,留有与SAS、S-Plus的接口,能够灵活地导入外部模型和产生规则,包含神经网络建模的能力
    优点:响应快,模型、文档易于理解,决策树分析直观/性能良好,SDK中容易加入新的算法
    缺点:决策树不能编辑打印,SDK缺乏数据预处理阶段的函数,没有示例代码,不支持AIX
    应用行业案例
    1. Frost National银行CRM收益率、客户满意度、产品功效
    2. SASI公司利用SDK开发行业数据挖掘应用软件(零售行业)
    3. Montreal银行客户分片、越区销售模型、市场站的准备、抵押支付的预测、信用风险的分析


    2、Business Objects
    http://www.businessobjects.com/
    BusinessMiner 4.1
    平台:Windows 平台,支持多数据源
    功能:直观的决策树技术, 提供所有的分类数据挖掘功能,包括:建模、发现、可视化、假设分析和分片。支持RDB、DW、OLAP、文件。
    优点:易于使用,价格便宜$495,文档齐全
    缺点:只具有决策树功能
    应用行业案例:
    D&J WADE ASSOCIATES是一个数据仓库和商业智能咨询公司,利用BO公司的产品做商业智能解决方案
    国际上大约有7000多公司在使用Business Objects


    3、Cognos 公司
    http://www.cognos.com/
    Cognos Scenario
    平台:Windows 平台
    功能:Scenario是基于树的高度视图化的数据挖掘工具,决策树的基本功能是创立一系列标准,预测记录中目标市场的价值。Scenario的分类树分阶展现各种因素;最终用户通过挖掘或展开树的分支来探察数据。
    特点:Scenario的抽样技术可以用最少的处理开销和最短的响应
    应用行业案例:
    企业经理们可以利用Scenario的统计方法,深入挖掘影响商务趋势的因素的潜在含义,根据风险特性将个体与群体客户归类;将商务因素分门别类,辨清商务目标所受的主要影响;探察与通常数据模式不符的异常情况等。
    Northwood公司利用该产品发现影响树木死亡率的模式和因素。
    时间得出最精确的结果。给各种因素定级。


    4、Comshare, Inc.
    http://www.comshare.com/
    Comshare Decision and Decision Web
    Commander FDC/EIS Decision
    平台:LAN-客户端Windows 9X,服务器NT,Internet-Web服务器
    功能:具有强大的分析能力,包括: grids, 钻入, 旋转, 图表, 映射, 特殊计算,等。内置引导分析功能,交互式分析多维数据。
    优点:易于使用,安装简单
    缺点:ICE (智能组件扩充)按钮在DecisionWeb 中不可用,文档不全面
    应用行业案例:
    VDK 冷冻食品公司利用 COMSHARE DECISION AND DECISION WEB进行决策分析
    Welch Allyn公司利用FDC/EIS Decision进行金融决策分析


    5、DataMind Corporation
    http://www.datamind.com/
    DataCruncher
    平台:Pentium PC
    功能:特殊的报表
    优点:响应时间快,能将数据挖掘报表转化成HTML格式。
    缺点:图形界面不友好,难操作
    应用行业案例:ADP集团利用Data Cruncher分析客户定单及交易数据,提高客户满意程度。


    6、DBStar
    http://www.dbstar.com/
    DBStar Migration Architect
    平台:Sun Sparc 20/Solaris,HP/UX IBM/AIX
    功能:数据分析工具,发现数据质量问题以及数据元素和其它内在的数据驱动的商业规则之间互相依赖的关系。在多个源数据与统一的目标数据之间建立映射。(数据仓库的数据抽取和转化功能)
    优点:可靠地决定数据质量,实时跟踪数据的改变并维持数据的一致性。不是使用元数据,而是利用实际数据进行细节数据分析。
    缺点:Motif用户界面使用不直观
    应用行业案例:某零售、投资、以及代理服务的金融服务公司利用DBStar的Migration Architect进行数据仓库项目的开发


    7、Group 1 Software
    http://www.group1software.com/
    MODEL 1
    平台:Windows NT,Windows 9X
    Indiana大学的Kelley 商学院使用MODEL1作为MBA数据挖掘教学软件。教学生如何分析客户数据库得出新的建议、保留老客户、最
    功能:灵活的数据抽取能力,数据编辑器能够创建新的数据变量,扫描无效数据。产生基本的线图、柱状图、稀疏图表、均值、和频率分布、以及lift图表。具有客户分片模型、响应模型、交叉销售分析和客户评估。适合多种预言模型包括:RFM, Bayes, 线性和logistic回归, 神经网络, CHAID and CART 模型。
    优点:易于使用,广泛的模型。具有友好的wizard建模过程询问数据的格式和希望分析的层次。可以定制建模过程。非常适合直接市场应用。
    缺点:不适合纵向数据的时序分析,不能创建Script自动执行用户经常使用的一系列命令,价格昂贵,用户不能直接编辑报表,数据转化复杂,用户必须将外部数据转换为固定格式的文本文件才能进行挖掘
    应用行业案例:
    大化客户的生命周期价值,从而作出一对一的市场。学生分析人口统计数据、POS交易数据、商品目录和经常购买的数据。利用MODEL1做客户分片,分析过去推销的商品的有效性,定位将来的市场,增加交叉销售,标记最有价值的客户。
    Fort Worth Star-Telegram是新闻单位,利用MODEL1进行数据库营销
    DRG集团是出版公司,利用MODEL1进行MAIL战略


    8、Hitachi Data Systems (HDS)
    http://www.hds.com/
    HDS 5780 Nucleus Exploration Series
    平台:64-bit UNIX, 32-bit Windows NT,个人版本-Windows 9X
    功能:数据仓库建模
    优点:简化了数据仓库的逻辑和服务模型设置,性能高,能够查询压缩数据
    缺点:1小时装载1.5G数据,速率慢,可能由于压缩的原因
    First Citizens Bank利用该产品建设数据仓库
    应用行业案例:Canadian National Railway (CN)加拿大国家铁路局利用该软件产品构建数据仓库
    H

    9、NC Software, Inc.
    http://www.hnc.com/
    Falcon Retail
    平台:IBM mainframe或 UNIX
    功能:神经网络
    优点: 减少人工分析的劳动力
    缺点: 分析过程难以理解
    应用行业案例:Sears, Roebuck and Co.公司是大的服饰、家庭和汽车零售商,利用该产品分析其忠诚卡交易的欺诈行为


    10、IBM
    http://www.software.ibm.com/data/
    Intelligent Miner
    平台:AIX,Window NT ,OS/390 ,Sun Solaris
    功能:自动实现数据选择、数据转换、数据发掘和结果呈现这一整套数据挖掘操作。具体算法包括:典型数据集自动生成、概念性分类、聚集(人口统计分析demographic、神经网络)、分类(树归纳和神经归纳)、估值、关联规
    Decision Edge for Finance——专门为金融行业设计的综合解决方案。Decision Edge for Finance不仅仅是简单的报告工具,它提供了行销经理所需的全部技术,以制定战略业务决策并开展行销活动。
    Decision Edge for Insurance——端到端的解决方案,包括硬件、软件、顾问和服务,其设计目的是帮助保险业行销经理制定战略业务决策并开展行销活动。
    则、序列模式、预言模型,以及结果可视化呈现。
    优点:Intelligent Miner for Text可以提供一定程度的定制,具有可扩展性,索引的速度很快,具有先进的语言分析能力、聚集和过滤能力。Intelligent Miner有强大的API函数库,可以创建定制的模型。能够处理巨大的数据量,同时支持并行处理,查询速度很快。
    缺点:Intelligent Miner for Text图形界面GUI不友好,spider和indexing管理需要对UNIX非常熟悉。对一个挖掘对象将多个挖掘操作一起执行(批处理)比较困难。元数据不开放,结构复杂。文档缺乏错误代码的详细解释。没有对算法的详细说明。
    IBM Discovery Series for Banking——为满足“客户至上”的银行业需求而设计的应用程序套件。
    IBM Discovery for telecommunications——为电信行业提供完美的客户服务的应用程序套件。
    Business Analysis Suite for SAP——适用于下列公司:已经安装SAP事务处理系统,并需要建立数据仓库,以充分利用日常运作中收集的所有事务数据。
    Surf-Aid——数据采集应用程序,用于分析Web站点利用率。
    Info Print Business Intelligence Solution——允许企业将自定义消息、姓名及地址同图形和条形码相结合,向客户提供有独特个性的行销资料。
    Global Services BI Offering——包含不同角度(行业、业务功能、技术)的战略和规划功能,以及帮助客户理解和解决业务困难、管理数据仓库项目、开发和实现先进分析功能的方法。
    Insurance Underwriting Profitability Analysis-将数据仓库和数据采集技术相结合,帮助保险业执行人员处理保险业过程。


    11、Information Discovery, Inc.
    http://www.patternwarehouse.com/
    http://www.datamining.com/
    PatternWarehouse
    Retail Sales Forecasting System
    平台:Solaris,Retail Sales Forecasting System运行在Intranet的Web服务器上
    功能:PatternWarehouse 提供商业用户迅速访问已经获得的模式:客户行为,product usage affinities,生命周期, 等等。PatternWarehouse 提供PQL-模式查询语言,查询模式,就象用SQL语言查询数据一样。操作循环如下:数据挖掘在每周/月定时执行,发现的模式存储在模式库中,模式周期性增加组合和趋势分析,用户查询已经挖掘的模式库,而不是关系数据库。基于Java技术,在、查询通过Intranet的Web浏览器接口。
    优点:模式存储起来,对于紧迫的问题不需重新计算。数据挖掘是对整个数据库,不是抽样或抽取部分数据。模式存储在一个中心仓库,确保了统一的视图。报表用浅显的语言和图形自动产生。
    缺点:较难向用户解释PatternWarehouse和数据仓库框架的区别,在从事数据挖掘项目没有一个好的顶层的体系结构。
    应用行业案例:E*TRADE 是一个网上投资服务公司,随着基于Web的金融服务竞争的加剧,数据挖掘技术构成了制胜的资本,E*TRADE利用patternwarehouse数据发现系统对客户行为进行分析,制定合适的市场策略。
    Deere & Company是农业工具零售公司,利用Retail Sales Forecasting System成功地预测了其拖拉机产品的第二年的销售。


    12、John Galt Solutions, Inc.
    http://www.johngalt.com/
    ForecastX Wizard
    平台:Windows,UNIX,可以和Microsoft Web solutions, Windows 95, Windows NT and Arbor Essbase, SQL Server, Oracle等集成,开发工具: VB, Java.
    功能:ForecastX包括核心的预测技术和统计分析。有广泛的应用:金融计划、风险分析、销售预测、需求计划、生产计划,以及统计建模。ForecastX是一个分布式对象,可以和运行在UNIX或Windows上的应用程序集成。具有强大的预测引擎,包括30多个统计功能。
    优点:没有数据量的限制,量的大小处决于运行的计算机。即使没有统计知识也能进行复杂的分析。对象模型易于导航,性能显著。
    缺点:产品文献只有HTML格式, 没有易于操作的帮助。对于同一个问题有多种解决方法,很难判断哪一种解决方法好。
    应用行业案例:HITechnologies公司是一个市场咨询公司,利用ForecastX的预测控件组件(ActiveX)开发HITools Enterprise Suite, 该软件提供供需链管理,制定供需计划,增加管理one-to-one 市场的能力。
    :GTE是一个电信公司,整个市场分为四个部分:无线、ISP、长途和本地电话, GTE利用ForecastX预测各项产品和服务的增长和收入。


    13、Magnify.com
    http://www.magnify.com/
    PATTERN
    平台:Windows NT/9X
    功能:软件包括:数据预处理、预言建模、以及模型配置和打分。建模组件能够分析T级别的数据和支持多种数据挖掘算法。pattern能够将许多不同的模型的最好的因素连接成一个全体的模型。有特定行业的模型模板。模型配置和打分组件能够对模型进行修改,同时也能配置SAS和其他流行的建模工具构造的模型。
    优点:精确性高,能处理T级别的数据。
    缺点: GUI不友好,命令行接口比GUI容易使用。目前版本只支持Windows,今后会支持Unix。
    应用行业案例:Polk是一个多媒体智能信息解决方案提供商。有超过111 million个家庭的人口统计和生活方式的数据库,利用pattern预言对一个直接MAIL营销的响应。


    14、MapInfo Corporation
    http://www.mapinfo.com/
    TargetPro
    平台: Windows NT,Windows 9X
    功能:将人口统计(demographic)数据按照地图的格式可视化,
    Meineke是一个汽车销售和修理的连锁公司,利用TargetPro分析demographic数据,作市场决策。
    能够创建高质量的地图,帮助决策制定和增强报表和表达方式。
    优点:能够分析超过600个变量,响应速度很快。
    缺点:操作手册不详细。


    15、Market Miner (Formerly AbTech Corp.)
    http://www.marketminer.com/
    ModelQuest Expert
    平台:Windows NT.
    功能: 用C语言表达预言方程(equation),这些方程能够和数据仓库集成,用于计算预言值,然后用这些预言值来作为数据仓库选择数据的条件。
    优点:预言功能可靠性高,模型开发的速度快。
    缺点:预言变量类型的转换对用户是非常麻烦的。
    应用行业案例:ASC公司为客户提供数据库营销服务。开发和实现客户的预言模型,以提高其营销的效率。ASC公司需要一种快速有效的方式构建预言模型,并且已经运行神经网络很多年,在对ModelQuest Expert测试后,发现它缩短了预言模型开发的速度,并且其有效性在实际的营销策略得到了验证。


    16、MathSoft, Inc.
    http://www.mathsoft.com/
    StatServer
    S-PLUS 4.5 Professional for Windows
    S-Plus for Unix 5.1
    平台:StatServer 只能运行在Windows NT,其它产品能够运行在UNIX、Windows NT/9X
    功能:StatServer是一个数据挖掘引擎和事务服务器,用户能够通过多种客户端(浏览器,MS Excel等等)进行统计分析和信息可视化。 对于StatServer 而言,客户统计模型和数据挖掘程序固定在S-PLUS语言内,存储在中心服务器上。分析通过S-PLUS引擎运行在服务器端,结果返回给客户端。StatServer能够通过多个数据源抽取数据,也能通过客户端上载数据。StatServer能够让组织开发、维护、配置定制统计分析和可视化方法。StatServer 适合NT体系结构,提供了一个强壮的报表环境和MS ASP引擎相互补充。服务器端工具的组合 (MS IIS, MS ASP, COM business objects, MS Transaction Server, StatServer,以及关系数据库,比如: MS SQL Server、 Oracle) 和简单的客户端构成了一个灵活的、强壮的、可扩展的远程数据挖掘和图形报表系统。
    S-PLUS 是一个包括S语言、SQL和统计包混合的系统,能够用可视化的方式勘探数据。具有import/export的功
    Waratah公司提供统计、数据挖掘、数据仓库、以及软件开发服务。在为一个健康中心开发应用的时候,利用StatServer 开发定制的基于浏览器的客户端应用,以分析和可视化病人的数据。另外也为一个制药公司分析其实验数据。Waratah主要利用StatServer 进行二次开发,因为其客户端是浏览器或者MS Excel,用户能够方便地使用。
    Federal Communications Commission为了利用信息进行决策分析,该单位的经济学家利用S-Plus解决统计和经济分析问题。
    Maple Partners Financial Products 利用S-PLUS 创建和测试定量的贸易模型。
    应用行业案例:Cereals是一个食品公司,其基因研究利用S-PLUS软件的数据挖掘功能分析大米基因数据。使用了mapping和 sequencing 技术。
    Pillsbury是一个食品公司,利用StatServer和S-PLUS创建基于Web的数据分析环境。
    能。S-PLUS既具有基于Windows的图形接口,又有命令行接口。支持多种数据库的数据格式。S语言专门用于向量编程和分析,已经和Windows风格的界面集成。强大的图形功能包括:画刷brushing, 旋转spinning, plotting a matrix of pairs, contour maps, heat maps 、 interpolated surfaces
    优点:StatServer COM对象模型是一个很好的编程接口。S-Plus非常精确。图形、数据对象、分析结果都能和微软的程序集成,比如:PowerPoint、Word、Excel。Import/export的功能缩短了数据移动的时间和开销。
    缺点:StatServer需要充分的资源和一台专门的服务器。StatServer不是一个service,需要登录进入StatServer这台计算机启动程序,有时会象NT一样出现问题,需要重新启动。
    S语言的灵活性使得有时很难指出如何写一个特定的程序。整个系统过于复杂,目前不支持Linux。


    17、Maximal Innovative Intelligence Ltd.
    http://www.maxsw.com/
    Max
    平台:Microsoft NT,Microsoft SQL Server 7.0 OLAP Services.
    功能:可视化的多维分析功能。具有友好的wizards 导航。
    优点:Max自动地汇总数据,易于使用。"Find Similar" 分析特别有用,因为它能迅速地发现异常情况。
    缺点:MAX是一个客户端程序,客户端开销很大。报表能力应该被提高,2000年的产品和MS Office能够集成。
    应用行业案例:Afek Information System Engineering Ltd是一个计算机咨询公司。提供多方面的解决方案,包括:计算机系统分析,信息系统开发,ERP系统实施,以及物流项目管理和实施。利用Max进行图形化的多维分析,而不需要分析专家 。
    Spiritus Trading Ltd.是PC机及外围设备贸易公司。利用Max分析客户和供应商的数据。


    18、Megaputer Intelligence, Inc
    http://www.megaputer.com/
    PolyAnalyst Pro
    TextAnalyst
    平台:Windows NT
    功能:PolyAnalyst提供下列功能:数据访问、数据操纵和清洗、机器学习、可视化和报表。直接访问与ODBC兼容的各种数据源,数据和挖掘结果能够与MS Excel集成。提供构造数据子集和变量转换的功能。数据分析自学习引擎包括: PolyNet预言器, GMDH (Group Method Data Handling) 和神经网络混合的方法,基于演化编程技术-
    Wisconsin-Madison大学UW Medical School 和School of Nursing的Research Design and Statistics Unit (RDSU) 为生物医药研究提供高层的统计和设计支持。典型的生物统计技术过于复杂,神经网络难于理解,所以利用PolyAnalyst Pro基于符号知识技术发现规则和结构。目前该软件在肾脏学nephrology,小儿科 pediatrics以及phonology/ communicative disorders运行的非常成功。
    Boeing公司是世界最大的航空公司。将多个复杂的系统集成在一起是其成功的基础之一,工程组希望找到一种工具,能够迅速地构建非线性过程的模型作为内置实时系统的一部分。传统的曲线配置curve
    发现规律,发现依赖关系的勘探引擎,分类引擎,聚集引擎,以及多参数线性回归以发现数据中的线性关系。PolyAnalyst具有集成的GUI环境。发现规律引擎,利用了符号知识获取技术 (SKAT), 自动化地发现数据中的依赖关系和规则,并且用清晰的数学语言表达。PolyAnalyst是一个多策略的数据挖掘解决方案。能够处理数字、种类、布尔型变量。任何一个引擎都能作为一个单独的COM组件,COM组件能够和其他软件集成。
    TextAnalyst在一个知识库上使用,包括问题的文本描述,内容分析、创建语义网络。
    优点:图形接口友好,各种建模技术易于掌握。发现的规则用一种标准符号表达,适合在其他平台编程,增加了产品的可用性。
    缺点:PolyAnalystPro 3.5缺乏将表达式剪切并且粘贴在其他软件中的能力。打印不方便、不灵活,需要增加数据和模型的编辑以及清洗的功能。基本的统计功能不够强大。TextAnalyst不能和其他软件集成。
    fitting和神经网络技术开发需要很多时间,并且代价昂贵。PolyAnalyst的符号知识获取技术发现规律算法提供了一种很好的性能和复杂性的平衡。
    LLC 公司的仙人掌策略Cactus Strategies是一个咨询解决方案,该方案集中在创建启发式预言商业工具和模型、商业开发和电子商务解决方案和应用。Cactus Strategies 提供的商业工具最关键的一个特点是能够从通常的人口信息和合同信息以及客户描述信息中精确地选择最有可能响应的客户。PolyAnalyst 是工具启发能力的核心,它能周期性地从数据中建模和给记录打分。
    应用行业案例:
    BioVisioN是一个生物研发公司,目标是使药物发现和诊断方面的技术商业化,对标识peptides缩氨酸和蛋白质proteins有很高的技术,由研发产生了大量数据。BioVisioN利用PolyAnalyst分析各种疾病在人体血液和尿液中的模型发现疾病的关联,以寻找诊断方法。

    19、MIS America (formerly MIS AG)
    http://www.mis-ag.com/
    MIS Alea and MIS DeltaMiner
    平台:Windows
    功能:DeltaMiner是一个激活的搜索代理,专门用于异常报告、控制和分析。MIS Alea 是一个多维应用/服务,在Microsoft Excel 的环境内处理商业模型。
    优点:维度非常灵活,具有定制的功能。wizard和 menu驱动非常友好。
    缺点:需要一定的专业技能才能掌握该工具的各种功能。
    应用行业案例:HP公司利用该软件发现对中小企业的销售趋势,发现问题,作出预测。

    20、Oracle Corporation
    http://www.oracle.com
    /datawarehouse/products/datamining
    Darwin
    平台:Windows NT/95 client/server,UNIX :Sun Solaris, HP-UX 支持单个或多处理器环境
    功能:通过ODBC访问ASCII和RDBMS数据。构造模型的过程有wizards引导。Darwin 3.5支持数据挖掘算法:神经网络,分类和回归树,K-最近邻居、遗传算法、基于记
    应用行业案例:Two Crows公司是专门的数据挖掘和数据仓库市场分析和咨询公司。Two Crows和财富1000强公司合作,帮助他们开发数据挖掘策略、选择产品和实施数据挖掘解决方案,同时也和数据挖掘软件商合作帮助他们理解客户需求。公司需要理解客户,使得能够有效地获取新的客户、在原有客户上获得更多赢利、防止客户流失。行业研究表明获得一个新的客户必须花费维持一个老客户的5-6倍开销,公司目前都想求助于数据挖掘来提升客户关系管理。海量数据和成百个变量
    忆的推理(memory-based reasoning)、聚集和贝叶斯算法。Darwin使用 MS Excel 作为可视化数据挖掘结果和基于MS IE在线帮助。Oracle选择TMC(Thinking Machines Company)最为合作伙伴。Darwin的模型探索器Model Seeker和关键领域导航Key Fields wizards, 交互式的树显示interactive tree display, lift charts, 灵敏度分析sensitivity analysis, ROI和margin graphs, error tables和决策树规则decision tree rules是非常直观和可靠的。模型能够作为C, C++ and Java代码导出,从而将customer scoring, campaign management 和real-time "intelligent agents"与企业其他应用程序集成,比如:Call Center等。模型探索器能自动构建多个模型,并且为用户选择最好的一个。工作流Workflow和scripting的特点提供了一个数据挖掘步骤的可视化描述和自动的数据挖掘过程。
    优点:三个关键强势:高度的可扩展性,由于能够使数据挖掘算法并行实现,所以能够挖掘海量数据;第二,模型能够容易导出,和其他应用集成;第三是Windows风格的客户端易于使用。
    缺点:缺乏在数据挖掘之前对数据的可视化探索。工作流不能可视化编辑。
    对数据挖掘软件是一个挑战。Two Crows公司对Darwin进行测试,结果如左所示。
    Cabletron Systems (NYSE:CS)公司是提供基于intranet网络解决方案(LAN、ATM)和软件,SPECTRUM Enterprise Manager是该公司的网络管理平台软件,24小时收集网络数据:事件、警告、统计信息,然后上载到一个离线的数据仓库供分析使用,由于200个左右的应用软件收集数据,所以数据量非常大。利用Darwin发现各个网络端口的相关性以及事件相关性,以发现网络故障诊断模型,提高网络的有效性。
    Nautilus Systems, Inc.是数据仓库和数据挖掘咨询公司,构建1:1的市场和客户关系管理解决方案,针对行业包括:医疗健康、金融、电信、政府。应用Darwin作为数据挖掘软件。


    21、Pilot Software (acquired by Accrue Software)
    http://www.pilotsw.com/
    Pilot Decision Support Suite
    平台:Windows NT
    功能:基于Web的商业智能解决方案。PDSS能够执行时序分析,作假设(what-if)分析,通过建立地区、时间、产品和其他种类的维度获得详细的信息-多维分析工具。
    优点:公司不仅在技术上,在商业上也有很深入的理解。报表能够定制。
    缺点:多层次功能在第二层次上不能按条件排序。
    Combe公司是家用和宠物商品的生产销售商。为了理解客户购买模型,利用PDSS作时序分析。也有利于很好地管理库存,有助于定制生产计划。利用时序分析跟踪每年客户购买模型的改变。


    22、Quadstone, Inc.
    http://www.quadstone.com/
    Decisionhouse
    平台:UNIX,NT
    功能:Decisionhouse是一个客户行为建模的软件集,能够发现关
    Liverpool Victoria Friendly Society是一个金融协会,对2百万个客户提供投资、存款和保险服务。利用Decisionhouse进行客户关系管理,使合适的客户购买他们需要的商品,一个结果是直接MAIL项目响应率比原先提高了35%。
    键的特征,比如标记可能有defect的客户、或者哪些客户有较高的可能性购买特定的商品。Decisionhouse是CRM 策略的关键部分。功能包括:查询、报表、数据挖掘、OLAP和可视化。Decisionhouse 将数据转换成易于理解的3-D图形表示。根据目标对象(比如响应率或预言值)可能值标记高的和低响应率的客户分组和客户定级。通过OLAP的功能,Decisionhouse提供一种机制报告在实际的响应之后标记和理解详细的行为模式的成功率和机会。功能还包括客户分片和定位, 客户行为的多维可视化,交叉表格报表cross-tabulated reports ,决策树分片和响应模型, mailing and control cell lists。
    优点:实时、高速的客户分片和描述。易于使用的可视化界面。
    缺点:没有使用神经网络技术,以避免黑盒问题。没有内置的方法协助执行典型的分析,比如: mailing response,campaign creation. Decisionhouse创建了大量文件,这些文件需要专门培训过的人员才能熟练掌握。
    C&A 是欧洲出名的零售商,成立于1841, 公司在12个欧洲国家有579个商店。C&A每年有两个主要的direct mail campaigns。 使用Decisionhouse和Quadstone公司的应用行业案例:咨询,提高响应率。目前,响应率增加2倍左右,赢利率提高了20倍。
    California San Francisco的CustomerLinx是一个基于知识的市场服务公司,提供多模式的客户分析,包括: inbound and outbound fax, IVR and Internet response services。基于各个渠道的客户分析,为不同的行业提供以客户为中心的市场解决方案,包括:电信、零售和电子商务。为了定位客户获取和流失问题customer acquisition and churn, CustomerLinx开发了客户中心解决方案。面向客户市场的核心是:the ability to tailor the offer, message or channel to individual customer needs, 这些需要有效的客户分片技术。利用Decisionhouse来解决上述问题,使得CustomerLinx近来campaign response rate从0.8增长到4%。

    23、Salford Systems
    http://www.salford-systems.com/
    CART Decision-Tree Suite
    平台:Windows NT,UNIX
    功能:桌面型CART和Unix版本两种。都能产生cut-and-paste模型的源代码。CART能够处理脏数据。TreeCoder 自动产生SAS代码。
    优点:精确的模型能够迅速地开发和实施。
    缺点:分类问题涉及"yes/no"或 "A or B or C"的种类目标变量,回归定位连续型目标变量,比如:花费的金额等。CART或任何其他决策树在回归问题上都处理得不好。为了克服这个缺陷,Salford Systems近来开发了MARS, 一个数据挖掘工具以解决回归问题。
    American Express 是全球旅游、金融网络服务提供商。利用CART进行数据分类,构建决策树,以提高赢利。

    24、SAS
    http://www.sas.com/
    Enterprise Miner
    平台:Windows NT
    功能:Enterprise Miner为所有的模型开发产生全部的记分代码,这些记分代码能够立即应用到新的数据中。一个评
    Vermont Country Store是一家面向家庭的零售公司。利用数据挖掘工具EM定位target-mail 和marketing strategy。
    估工具将数据挖掘结果转换成商业术语,结果能够通过Web共享。SAS的数据挖掘方法论称作SEMMA (抽样、探索、修改、建模、评估)。SAS/EM集成了:数据获取工具;数据取样工具 ;数据筛选工具 ;数据变量转换工具 ;数据挖掘数据库 ;数据挖掘过程;多种形式的回归工具 ;为建立决策树的数据剖分工具;决策树浏览工具;人工神经元网络;数据挖掘的评价工具 。 可利用SAS/EM中具有明确代表意义的图形化的模块将这些数据挖掘的工具单元组成一个处理流程图,并依此来组织用户的数据挖掘的过程。这一过程在任何时候均可根据具体情况的需要进行修改、更新并将适合用户需要的模式存储起来,以便此后重新调出来使用。
    优点:图形化的界面,可视化的操作,可导引即使是数理统计经验不太多的使用者也能按照SEMMA的原则成功的进行数据挖掘。对于有经验的专家,SAS/EM也可让用户一展身手精细的调整分析处理过程。
    缺点:临时文件花费了许多空间,打印决策树比较困难。

    25、Seagate Software (division of Seagate Technology)
    http://www.seagate.com/
    Seagate Holos
    平台:Unix,Windows,RDB,MDB
    功能:将关系数据库中的数据转换成OLAP cubes,然后装载到Seagate Holos客户端分析。可以定制。支持ROLAP和non-ROLAP。数据可以周期性的装载到系统。有自己开发的语言,使得客户能构造和定制复杂的企业商业智能系统。
    优点:混合的OLAP结构
    缺点:培训该软件需要时间和专业技能
    应用行业案例:Charles Schwab利用该软件进行多维分析,创建报表和模型,预测趋势。

    26、Search Software America
    http://www.searchsoftware.com/
    Data Clustering Engine
    平台:AIX,Unix
    功能:产生ASCII文件, 可以定制开发。将输入文件增加clustering key然后输出, 为其标记打分,然后产生报表。不管数据质量如何,该软件都能将记录分组。
    IBM Brazil是一个计算机公司,用IBM的产品构建解决方案。使用Data Clustering Engine 将公司合同的副本转换成外部文件,导入marketing系统的数据库。
    优点:易于使用
    缺点:不能访问关系数据库,不能执行scrubbing.

    27、Silicon Graphics Inc. (SGI)
    http://www.sgi.com/
    MineSet
    平台:Unix,OpenGL
    功能:将可视化方法和数据挖掘技术联合起来。有灵活的定制可视化报表的功能,产生预言模型,将结果以可视化方式表示。
    优点:数据可视化将数据转换成易于理解的图形。图形用户接口非常优美。
    缺点:是一个通用的数据挖掘工具,没有针对特定行业定制的应用。对RAM非常敏感,至少需要1G的内存运行在多线程的模式。
    应用行业案例:
    Procter & Gamble 是制药企业,用MineSet分析由临床药物试验产生的数据库,以理解药物和人类疾病之间的关系,提高药物试验的有效性。
    Incyte是一个生物软件公司,Incyte'的基因数据库、 生物分析软件、生物学试剂和microarray 服务被全世界19家顶尖的制药和生物技术公司使用。为了挖掘基因数据库,以理解基因和疾病的关系,发现新的基因模式和克隆新的基因,将MineSet作为公司开发的LifeTools 3D的一部分。
    New York, RGI Informatics specializes使用MineSet分析各种healthcare数据集: claims-based encounter and drug data, hospital discharge data ,data residing in a clinical information database.

    28、SLP InfoWare, Inc.
    http://www.slp-infoware.com/
    Churn/CPS
    平台:HP, SUN, IBM RS 6000. OS: Windows 95, Windows NT, UNIX.
    功能:对客户分片和记分,构建模型预言客户流失,计算客户生命周期值,推荐最佳解决方法。Churn/CPS自动分析客户行为信息,决定在客户流失背后的原因,分析的结果用来创建最有可能流失的客户的行为模型 。对这些客户提供更经济的服务或者cross-sell和 upsell 这一类附加服务。Churn/CPS标记最有价值的客户,输出有可能流失的客户列表,并说明最有可能的原因。
    优点:灵活地创建客户行为模型,易于使用。
    缺点:少量的bugse
    应用行业案例:
    Bouygues Telecom是电信公司,具有超过 300,000 个客户,利用Churn/CPS分析客户流失,作出相应的市场营销策略。
    Cellular One是cellular供应商,占有超过50 %的市场。目前还经营: cellular, beeper, long distance, prepaid cellular, prepaid long distance 和 CAP services。Retention部门使用Churn/CPS作客户流失分析,以保留现有客户。

    29、Speedware (Visionize.com)
    http://www.speedware.com/
    Visonyze Televyze
    平台:客户端:Win3.11, Win95, NT. 服务器:AIX, HP-UX, Sun, NT.
    GTE公司是世界最大的电信公司之一,在28个洲有21 million电话客户。利用Televyze 跟踪从部门到单个员工的(provisioning/maintenance activity)成绩。市场部门利用该软件为特
    功能:Televyze的图表和图形的格式称作a briefing board。在这种格式的图表或图形上可以钻入了解更细节的层次(drill-down)。可以定制个人的briefing board(简报板),并且有突出和自己相关的数据和模型的功能。
    优点:从多个数据源抽取数据,briefing board格式的结果易读,各种报表有标准的模板,用户可以自己定制简报板。
    缺点:遗留文件必须每天装载,不能实时处理。
    定的客户分片和区域定制offerings。

    30、SPSS, Inc.
    http://www.spss.com/
    Clementine
    SPSS for Windows
    平台: Server: Windows NT, Novell, UNIX. Client: Windows 95, Windows NT.
    功能:SPSS是数据清洗、数据挖掘、统计分析工具。 Missing Value Analysis分析大数据集内的模式和内部关系,然后估算遗失的值。在SPSS Base中实际的数据挖掘产品: AnswerTree, Clementine and GoldMiner。具体技术: Kohonen神经网络,回归,因子分析,决策树, 聚集,关联规则,规则归纳,单调回归,OLAP环境。SPSS分析也 产生数据库记分database scores。SPSS for Windows将多个数据源的数据迁移到一个通用的数据集用于分析,分析功能包括:basic frequency distributions to correlations, regression和the more advanced econometric modeling。SPSS能够创模型的图形描述,并导出到PowerPoint。Clementine发现的模型能够转换成C语言代码, 方法论-数据挖掘流方法stream approach。
    优点:界面友好,不需要编程,统计功能强大。
    缺点:有两个环境: "SPSS Data Editor" 是主要分析数据的电子数据表环境;"SPSS Output Navigator" 是所有的输出的仓库。用户很难知道选择存储时存储的是什么信息,即存储输出和存储数据比较容易混淆。
    应用行业案例:American Century Investments (ACI) is 多方位的金融服务商。客户数据:交易数据 transactional data,人口统计数据 demographic ,从数据提供商购买的行为数据behavioral data purchased from data providers。 先创建数据仓库,然后利用SPSS软件进行挖掘,分析客户行为,作出智能决策。
    Meridian Resource Corporation 是一个多方位的健康咨询公司。利用SPSS分析healthcare 数据。解决以下问题1)确保数据的正确完整; 2) 决定数据中是否存在关系3) 决定这些关系是否有意义。
    美国HSBC Bank 有多于1.4 million个人银行客户,另外还有商业和公司客户。使用SPSS 的数据挖掘工具分析客户,发现模型。三年内增加了15%的销售量,50%的客户有cross-selling的机会,留住了更多的客户。
    GfK 是欧洲最大的市场研究机构。四个策略商业单元:consumer shopping behavior, consumer media behavior, retail tracking and ad hoc research. 最近提供数据挖掘服务称GfK ConsumerConsult,Clementine是核心软件。
    BT,英国电信使用Clementine作客户分析,定位direct mail campaign

    31、SRA International
    http://www.sra.com/
    KDD Explorer
    平台:Sun SparcStation workstations.
    功能:KDD Explorer工具集提供了一个构建欺诈检测和知识发
    纳斯达科 (NASD) NASD Regulation analysts 使用KDD Explorer作为 for 股票市场潜在欺诈的监督软件。
    现的环境。欺诈检测通过规则和序列匹配算法,检测数据库中的实例,匹配那些有可能是欺诈的模式。用Java开发,可以定制可视化界面。知识发现组件包括:决策树,关联规则。
    优点:在大数据集上高性能、可以定制的数据挖掘和欺诈检测能力。算法能够在并行机上运行。用户接口用Java开发,能够运行在多个平台上,模式用自然语言表达易于理解。
    缺点:不能嵌入其他应用程序,没有数据预处理的能力。

    32、thinkAnalytics Corporation
    http://www.kwizsolutions.com/
    K.Wiz
    平台:Windows NT 4.0
    功能:作为back-office关键工具。定期自动分析客户交易数据构建 预言和商店的概要信息。这些信息和零售报表环境集成。基于Java的 API。
    优点:可视化的编程环境,基于java的API。
    缺点:由于基于Java的解决方案, GUI响应较慢。
    Triversity 公司是brick-and-mortar和 click-and-mortar 零售商,有400员工,32个国家的350个客户, 25,000个商店, 120,000 terminals 和每年1忆笔交易。Retailers公司使用K.wiz理解和管理客户忠诚度程序, 分析客户购买行为和人口统计信息。

    33、Unica Corporation
    http://www.unicacorp.com/
    Affinium Model (formerly Model 1)
    平台:Windows 9X/NT
    功能:包括4个模块:响应模型,交叉销售,客户评估,分片和概貌。算法的参数能够手工设置也能自动生成。记分wizard自动做所有的数据转换和预处理工作,能够对整个客户数据库迅速并且精确的记分。Model 1是一个为市场营销应用的数据挖掘软件Response Modeler 模块基于客户历史响应结果预言客户响应,;Customer Segmenter将相似客户分成组,并且解释组间的不同; Customer Valuator 预言一个客户的生命周期值; Cross-Seller预言客户可能会购买与定单上相关的商品。Model 1产生模型和分数,能以un-time library或C语言代码输出模型。
    优点:运行快速,界面直观,导入数据、建模、报表、和记分的wizards非常友好,易于使用。
    缺点:模型不能直接导出到Microsoft Excel。报表标签在系统中不能定制。
    Custom Research, Inc. (CRI)为财富500强企业提供市场营销、客户满意程度、和数据库分析服务。利用Model 1提供: 1)统计方法, 2) cross-validation
    DMW 是一个 Top Ten Direct Response Agency, 为不同行业的客户开发direct response solutions ,包括:financial services, healthcare, insurance, utilities, telecommunications, business-to-business and not-for-profit. 应用行业案例:DMW Worldwide 使用 Model 1 帮助客户理解他们的顾客数据中的模式。分片和描述分析segmentation and profile analysis 理解各组顾客的属性和区别;响应模型预言市场营销offers的响应; 客户流失模型预言顾客磨损attrition,;cross-sell模型决定什么商品销售给哪些客户;lead conversion models决定公司应该在什么地方追加投资。

    34、Urban Science Applications Inc.
    http://www.urbanscience.com/
    GainSmarts
    平台:Windows NT, Sun Solaris, Compaq True64, IBM AIX and HP-UX.
    功能:是SAS基础上进行二次开发的数据挖掘软件。能够在一个抽样数据集上构建模型,然后导出scoring code为整个数据库使用。GainSmarts提供的建模方法:binary logistic regression, 神经网络,决策树。在建模前执行变量转换,interaction checking,统计测试。 开放式体系结构,提供基于文本的报表,包括: gains tables 和graphs.
    优点:易于使用,可扩展, logistic模型功能强大。
    缺点:建模过程没有可视化,不能在一个项目中创建多个模型,不能合并多次运行的结果。
    Australia-based Morris International 业务包括: direct marketing, property, manufacturing, information technology ,venture capital. direct marketing 传统的方法是RFM (recency, frequency and monetary),现在利用 GainSmarts 数据挖掘的方法,构建预言模型。

    35、Visible Decisions, Inc.
    http://www.vdi.com/
    In3D, C++ Edition 2.0
    平台:最小需求:: Pentium Desktop PC
    功能:Visible Decisions In3D是一个创建3维商业可视化解决方案的开发的工具。从多个数据源的数据迅速地映射成直观的3-D可视化表示。能够嵌入其他应用。3-D图形可以和数据进行交互。
    优点:3-D图形表示直观,易于理解。
    缺点:离散地映射数据,极耗内存。
    应用行业案例:SABRE Group is 为旅游和运输行业提供信息技术解决方案,包括:定制软件开发和软件产品,交易处理,咨询和整个信息技术外包。VantagePoint 公司旅游管理的决策支持工具。利用In3D来设计开发VantagePoint的3D图形显示。

    36、Visual Insights
    http://www.visualinsights.com/
    ADVIZOR
    平台: Windows NT, Windows 9X,持多个数据源
    功能:关联associations (or affinities)被可视化表示。data constellation组件没有使用传统的3-D图表,有效地将线, 点, 稠密度和颜色联合起来,提供用户快速、简单地了解数据之间关系和它们相对的强度。可以和其他数据挖掘软件和应用集成。所有的可视化都和数据有联接,当数据改变时,能自动刷新图形表示。
    优点:全面的、强壮的、快速的、通用的应用,数据装载很快。
    缺点:可视化组件缺少一个高层的概述和描述。`
    应用行业案例:Stores Automated Systems, Inc. (SASI) 集成POS系统、checkout 系统 和定位忠诚度和市场营销程序。SASI的定位客户市场营销商业部门开发完全定制的商业智能系统,使用ADVIZOR在零售行业中发现客户交易数据的趋势和模式。

    37、WhiteCross Systems
    http://www.whitecross.com/
    Call Detail Analysis System
    HeatSeeker
    WhiteCross Data Exploration Server
    平台:WhiteCross Call Detail Analysis System是一个硬件和软件集成的解决方案,支持大规模并行处理服务器和ANSI-标准 SQL数据库,以及其他RDBMS, 分析工具和网络。
    功能:分析呼叫细节数据的能力 ,不是依赖数据抽样和其他数据操纵技术(CDR)。抽取CDR 数据直接转换进入WhiteCross Data Exploration Server (WX/DES). 使用第三方的查询工具,分析WX/DES中包括CDR的数据。可以定期抽取数据进行分析。HeatSeeker包括决策树算法;对客户交易历史记录进行,抽取模式,决定哪些客户可能响应特定的商品;对客户分成不同的赢利组;基于以前客户购买模式,发送响应的mail。HeatSeeker提供: segmentation, profiling and predictive mining support for one-to-one marketing initiatives. 另外,HeatSeeker能够评估商业活动是否成功。
    优点:最大的强势在于灵活性、可靠性、性能高。HeatSeeker数据分析不是基于抽样数据。
    缺点:对数据库的操作是纯SQL,没有类似SYBASE、ORACLE一样的操纵工具。HeatSeeker只能运行在WhiteCross平台。
    应用行业案例:Mercury Communications(Cable & Wireless)是一家电信公司,电信公司成功的一个因素是理解你的客户。每个电话呼叫都产生数据 (i.e., the originating and terminating numbers, start time and duration). 客户的记录告诉电信公司客户是如何使用电信的服务的。由于数据库太大,很难对整个数据库进行特殊查询。WhiteCross Call Detail Analysis System能够对一个月的记录进行特殊的调查, identify traffic patterns and devise and test pricing packages based on real-world data.
    Telefonica Larga Distancia (TLD) of Puerto Rico 是一个新的电信公司。使用WX/DES分析CDR数据。
    ECI包括在西班牙有60个分店的欧洲零售集团; 同时还具有35,000个员工的食品商店、旅游代理和保险集团。ECI每年运行多次专门的promotions和使用direct marketing campaigns 吸引客户。. ECI有海量的客户购买历史数据, HeatSeeker使 ECI能够在几秒内从海量数据中获得查询结果,挖掘整个数据库,发现有价值的模式。

    38、WizSoft, Inc.
    http://www.wizsoft.com/
    WizWhy
    平台:Windows NT
    功能:发现规则,根据规则制定预言。能够计算每个规则的可能性和有意义的程度。在发现规则的基础上预言新的cases,新case的数据能够手工加入,也能从一个特定的文件读取。输出是规则和包含预言的text文件。整个建模过程:装载数据;选择重要参数;产生规则;存储模型;应用模型到一个确认数据集。数据定期装载,不需要用户干预。标记关键的预言变量用于logistical regression analysis ,发现数据分片。
    应用行业案例:ACNielsen是市场研究公司,利用WizWhy来决定区分不同消费者分组的规则,以利于市场调研。
    MEDai, 位于Orlando, Florida,使用人工智能和统计分析技术为healthcare行业提供解决方案。解决方案包括:临床决策支持过程;高风险预测和供应商描述provider profiling。也使用人工智能技术预测movement of stocks ,在这个方面取得巨大的成功。MEDai 为了预测stock market,使用chart pattern recognition indicators。神经网络技术不能产生太多的模式,因为they occurred with a very low frequency, the patterns were very subtle and the returns of stocks had such a high standard deviation. 所以使用WizWhy, find these patterns and generate a significant return on our stock portfolio.
    优点: 速度,发现所有规则的能力,为规则分配可能性和评估其价值。易于使用,预言结果比神经网络能被解释理解。"then-not"规则很有用。
    缺点:不能同时自动执行多个数据挖掘任务,每个二值预言都必须单独执行;软件需要用户自己选择参数值。
    Experian Corporation是一个信息咨询公司,提供: direct marketing industry with lists of addresses and phone numbers, and analysis of their direct marketing offerings. 利用WizWhy 发现基于规则的模型。
    来源:www.dmreview.com 以及各公司网站

    June 08

    这个周末

         事情很多,心情有点乱。趁着周末,梳理一下自己的生活。
         下午被一个程序搞的头大,其实是很简单的问题。还是要系统的学习一些东西,总是遇到问题再google或者请教别人,学到的总是不全面也不扎实。尽管现在的项目催的比较紧,老师也不会等。但还是要抽时间,踏实自己的基础。
         碰到了以前宿舍的两个姐妹。一个已经在公司实习,和我迥然的充实的读研生活,郁闷的同时我只能说选择城市和导师真的很重要,我已经被越落越远;另一个在网校做着自己喜欢而且适合的工作,听她兴高采烈讲自己的工作感受,也由衷的替她高兴。师兄终于顺利答辩,可以摆脱那个恶魔老板了,我都跟着松了口气。我呢,我什么时候才能跳出这个坑坑?这么多的好朋友马上要离开了,他们曾给过我技术上的指导,生活上的关怀......很舍不得。或许,有天,我们还会在某个城市相见,或许,永远千山万水的相隔着。尽管现在的通讯很便捷,但想到离别,还是情不自禁的感伤。    
         看了一些文章,想着自己每天对着电脑看论文,调程序,写文档,做报告,看网页,聊天......所有的学习,工作,娱乐就集中在电脑和网络上,觉得思维被束缚了很多,少了很多思考和观察的空间。以后工作了,每天在公司也是做着与此大同小异的事情。扪心自问,这样的生活是我想要的吗?不是。不想安定的待在一个地方,不想有太大的压力。更喜欢和人打交道而不是冷冰冰的数字。本来是很随性还有点小马虎的人,现在却要去设计一个结构严谨的系统,去考虑很多方面。最近都有点神经衰弱,以前一直引以为傲的高质量睡眠已经不存在了,睡的很轻,还经常做梦。
         算了,还是不要想那么多了,头更疼了。这个周末,好好补个觉,把该做的工作,该补的知识,完成。

       

    June 07

    又是一年高考时

          嗯,高考,咱也是过来人了。也可以清清嗓子,说声“想当年我们高考那会儿”了。
          高考头天晚上看黄磊演的《吕布与貂蝉》到11点,然后睡觉。第二天妹妹一大早起床复习古文,还被我耻笑。结果考场上要填个“驽马十驾”的句子,怎么也想不到这个是驽or弩,这也算是个印象深刻的小报应,一直耿耿于怀。中午回家别人问我作文题目,发现居然马上就忘记了。十年寒窗,就在4个半天画上了句号。向来都不太会估分,也乐的不去考虑什么。等成绩下来,强项语数外都考的很差,理综倒发挥超常,有喜有忧,总分也算是正常水平。
         想到复读就觉得万分痛苦,觉得自己肯定坚持不下来,二来复读也存着很多变数,于是志愿就挑着稳妥的报。至于专业,原则是数理化的坚决不选,太偏文的也不适合,好像也只剩一些工科了,于是乎上了计算机这条贼船。
         如果重头再来,高中会学习的踏实一点,选择金融或者法律专业,考上一个好一点的学校。
    June 06

    我的6月

         6月份了,武汉的夏天到了。
         家里人都打电话担心我热的受不了,朋友也纷纷发短信问武汉的夏天是不是很难熬。呵呵,看来武汉这个火炉的称号是“臭名远扬”了。其实还好,感觉和石家庄差别不是很大,也感谢校园里那么多可爱的树,路上不打阳伞也不会被晒到,实验室整天开空调也很凉快。
         去年刚开学的时候,高温和蚊虫真是折磨人,晚上经常会有几个可恶的蚊子钻进蚊帐里,为了不被咬就用毛毯把自己从头到脚捂的严严实实,床单都是又潮又黏的,不能说一夜无眠,但对于我这种一直是一觉到天明的人来说,已经是一种煎熬了。今年感觉不是很热,同学还都在盖被子。也可能是真正热的时候还没到,秋老虎应该比较可怕。
         6月份了,准研二生活开始了。
         时间过的可真快,刚才群里发了07年应届生求职的电子书,大家都惊呼:要找工作了?已经适应了武汉的这种又潮又热的气候,适应了味道有点重的各色小吃,适应了武汉人直爽有点火爆的脾气。每天从西九到百景园,到东五,或快走,或散步,这条路已经太熟悉了。这几天师兄师姐都忙着填各种表,签字,办手续,实验室比往日显得热闹,但有点人去楼空的失落。轻飘飘的旧岁月,最后的校园时光,就这样溜走了。
         而我们,面临着开题,找工作,写论文,答辩,马上也要奔波在实验室和大活之间,奔波在各种宣讲会,面试,笔试之间,在被拒和被BS中成长。可以预见未来的半年,未来的一年,我们会像忙碌的陀螺一样转个不停。现在每天发牢骚,盼着毕业;可能工作了,又会怀念现在的学生生涯。
         下午路过附小,听到门口执勤的小朋友脆生生的喊“老师您好”,就一下子想到自己的童年,无忧无虑才是一种幸福。我们不能拒绝长大,也不能逃避责任。路还很长。以前想起这些,就会觉得很烦,但现在可以以平和的心态去面对了,毕竟有那么多的兄弟姐妹和我一起战斗,有亲人和朋友站在我的身边,一直支持着我鼓励着我。希望我可以一如既往的顺利。
    June 05

    80后校园爱情的空间难题

         在腾讯新闻看到这样一篇文章——《大学毕业生网上寻人互换情侣》(http://news.qq.com/a/20070604/002771.htm)。一对大学生在父母的压力下,分别选择在自己的家乡就业。但并不是“毕业了,我们一起失恋”的老套故事,男主角在网上寻人互换情侣,希望可以仍然保持联系。
         很多网友都评论这是心理变态,人格变态,这种行为跟换妻一样很不道德。说他连大学生的基本素质都没有,说80后的人什么荒唐事都做的出来。等等。
         的确,这种另类想法让人难以接受,很荒诞也很幼稚。对于我来说,我觉得爱情的眼里容不得沙子,分手就要分的干干净净,如果我和男朋友分手了,应该是连朋友都做不成了......尤其是还互换情侣,那以后两个家庭都隐含着很多不安定因素。最好的办法,还是重新开始新的生活。
         现在80后的大学生基本都是独生子女,绝大多数的家长都希望孩子回到身边,很多感情很好的恋人也因为空间难题而分手。毕竟父母于自己有生育培养之恩,他们岁数大了,需要自己留在身边尽孝,如果是我,尽管两难也会把天平倾到亲情的一边。幸好,我和GG家离的很近,不会面临这样的痛苦抉择。以前一直觉得这样很麻烦,觉得距离远一些会产生美,会少一些不必要的琐碎的事情。现在觉得还是很幸运的,以后节假日可以一起陪双方的父母,他们也可以互相照应,呵呵。真好。
    June 03

    熬夜的危害

          总是磨磨蹭蹭的,结果导师给的任务都是拖到最后还没有完成。又要熬夜了,好痛苦。希望以后不用再熬夜,可以睡到自然醒。要走在时间的前头,把活提前赶完。
          读研以来,MS就没有在12点之前睡过,每天在电脑前的时间应该超过10个小时了。我都能感觉到自己的视力在明显下降,暑假回家肯定又被骂“小瞎子”了。熬夜和电脑辐射都对皮肤和身体不好,怎么办呢?以后真的不想从事计算机方面的工作,尤其不想搞研发,压力大又辛苦。可是像移动、电信、银行这样的部门,大家都想进,竞争很激烈;销售、技术支持这种工作,要经常出差,都不太喜欢要女生;搞管理,又没有做企划案之类的经验;考公务员,又丢掉了专业......说是要开个可爱的西点屋,做自己最最喜欢的蛋糕,可这实在是对不起上的这么多年学,难以向家人社会交待。
         很想做个职业规划,可是真的不太确定自己的兴趣所在。就想整天歇着,想去哪就去哪,想干点啥就干点啥,没人管。从小就希望可以“读万卷书,走万里路”,现在还是这样期待。
         唉,慢慢想吧。今天先熬夜把这个程序搞了。
     
     

    熬夜会对身体造成多种损害:
      ●经常疲劳,免疫力下降:人体经常熬夜,所造成的后遗症,最严重的就是疲劳、精神不继;人体的免疫力也会跟着下降,自然的,感冒、胃肠感染、过敏原等等的自律神经失调症状都会找上你。
      ●头痛:熬夜的隔天,上班或上课时经常会头昏脑胀、注意力无法集中,甚至会出现头痛的现象,长期熬夜、失眠对记忆力也有无形的损伤。
      ●黑眼圈、眼袋:夜晚是人体的生理休息时间,该休息而没有休息,就会因为过度疲劳,造成眼睛周围的血液循环不良,而引起黑眼圈、眼袋或是白眼球布满血丝。
      ●皮肤干燥、黑斑、青春痘:晚上11时到凌晨3时是美容时间,也就是人体的经脉运行到胆、肝的时段。这两个器官如果没有获得充分的休息,就会表现在皮肤上,容易出现粗糙、脸色偏黄、黑斑、青春痘等问题。对于不习惯早睡的人来说,最迟也要在凌晨1时的养肝时间进入熟睡期。
      而且,更糟糕的是,长期熬夜会慢慢地出现失眠、健忘、易怒、焦虑不安等神经、精神症状。
      在不得不熬夜时,事先、事后做好准备和保护是十分必要的,至少可以把熬夜对身体的损害降到最低。
      首先是虽然晚睡但按时进餐,而且要保证晚餐的营养丰富。多补充一些含维生素C或含有胶原蛋白的食物,利于皮肤恢复弹性和光泽。鱼类豆类产品有补脑健脑功能,也应纳入晚餐食谱。熬夜过程中要注意补水,可以喝枸杞大枣茶或菊花茶,既补又有去火功效。
      其次,晚睡不“晚洗”。一般而言,皮肤的作息时间是在22:00~23:00之间进入晚间保养状态。这时是皮肤吸收养分的好时机。如果有条件的晚睡族群,在这段时间里,一定要进行一次皮肤清洁和保养。用温和的洁面用品清洁之后,涂抹一些保湿营养乳液,这样,皮肤在下一个阶段虽然不能正常进入睡眠,却也能正常得到养分与水分的补充。
      熬夜之后,最好的保护措施自然是“把失去的睡眠补回来”。如果做不到,午间的10分钟小睡也是十分有用的。此外,打打羽毛球,多去户外走动,有助于你的身体健康和精神愉快,也是摆脱熬夜后萎靡状态的好办法。 ,多去户外走动,有助于你的身体健康和精神愉快,也是摆脱熬夜后萎靡状态的好办法。 毛球,多去户外走动,有助于你的身体健康和精神愉快,也是摆脱熬夜后萎靡状态的好办法。
    June 02

    Mr Right


         虽然是在年少懵懂时相遇,虽然也曾认为只是一场邂逅。可是,幸运的,我们走到了现在。一路上,有他的包容和关心,有他的支持和坚持;一路上,我享受着简单的快乐和真实的幸福。
         都说初恋是最纯,最美的。的确,我们一起成长,一起学着爱与被爱,一起品味着爱情的酸与甜。7年了,我们的生活中都已经有了彼此的味道,从骨子里有了一种依赖。以前经常抱着一种随缘的态度,发生一些小磨擦就烦燥的想着退却,想着可以像蜗牛那样缩到壳子里去。也曾欣赏过很多人,但他们在我的生命里只是过客、是朋友,真正“相看两不厌”的,“只有敬亭山”。
         虽然他有时候有点大男子主义有时候又有点小幼稚,但这些都不影响他的优秀,他是我的Mr Right,一直都是。总是无意中把他惹火,还很无辜的问他为什么生气,到头来赔礼道歉的还是他。在别人面前挺懂事挺达理的自己,在他面前却不知不觉就成了个调皮捣乱任性的小孩。真心的说一声对不起,说一声谢谢。
         有时候闭上眼睛,感受着这么长的岁月,感受着空间上这么遥远的距离,就有点不知身在何处的感觉,好像一场梦一样,不希望醒过来。腕上一串晶莹剔透的紫色水晶,就像我和你的爱情。
         我和你的爱情好像水晶
         没有负担秘密干净又透明
         我给你的爱是美丽水晶
         独特光芒光辉你我心底


      Mr Right(转)

         往往许多人在抉择伴侣时,容易东想西想,不知所措,就是因为害怕一时做错决定,看错人,造成终生的遗憾。
         诺贝尔文学奖得主萧伯纳说:此时此刻在地球上,约有两万个人适合当你的人生伴侣,就看你先遇到哪一个。如果在第二个理想伴侣出现之前,你已经跟前一个人发展出相知相惜、互相信赖的深层关系,那后者就会变成你的好朋友,但是若你跟前一个人没有培养出深层关系,感情就容易动摇、变心,直到你与这些理想伴侣候选人的其中一位拥有稳固的深情,才是幸福的开始,漂泊的结束!
         爱上一个人不需要靠努力,只需要靠“际遇”,是上天的安排,但是[持续地爱一个人]就要靠[努力],在爱情的经营中,顺畅运转的要素就是沟通,体谅、包容与自制(面临诱惑有所自制),而忘了培养经营感情的能力才是幸福的关键。
         所以不要去追问到底谁才是我的Mr.Right,而是要问说在眼前的伴侣关系中,我能努力到什么程度,成长到什么程度,若没有培养出经营幸福的能力,就算真的Mr.Right,出现在你身边,幸福依然会错过的,而活在犹疑与遗憾当中,这不就是许多“爱情虚无症”的遭遇与心态吗?
         若你此刻已有一位长久相伴的伴侣,不要再随便三心二意地犹疑了,我们往往不易察觉感情中的一个陷阱,就是“近亲生慢侮”,也就是经济学中铁律“边际效益递减法则”,跟你在一起越久的人,就越容易麻木与忽视,而新鲜的“际遇”总是那么动人可爱。
    在感情对待中,难免有摩擦与无心的伤害,而且论得罪自己的次数累加起来最多的人,当然是跟我们在一起最久、最亲近的人,而新欢呢,又还没开始有得罪你的机会,再加上他的刻意讨好,所以新欢怎么看怎么可爱,旧爱怎么看怎么讨厌。
         但别忘了,新欢身上总是有不确定的未知数,旧爱身上就是有难得的熟悉感、确定感、信赖感。千万不要随便在偶然的“际遇”中迷失了自己,错放了幸福温暖的手。
         所以萧伯纳的话,是要提醒情人不要太钻牛角尖于寻觅那唯一,应该把精神用在学会经营幸福的能力上,同时也提醒我们“弱水三千只取一瓢饮”若有幸遇到了难得的伴侣,就不要再三心二意了,因为我们永远不知道一生何时会遇到两万个其中的几个,所以要知福惜福、活在当下。