ELPHI7 注册为系统服务项
比较不容易被删除的方法有注册为系统服务项,
这个你可以查查资料啊.delphi的话,
选择菜单
File-->New-->Other--->Service Application.
将生成一个服务程序的框架.
将工程保存为ServiceDemo.dpr
和Unit_Main.pas,然后回到主框架.
我们注意到,Service有几个属性.其
中以下几个是我们比较常用的:
(1)DisplayName:服务的显示名称
(2)Name:服务名称.
我们在这里将DisplayName的值
改为'Delphi服务演示程序',N
ame改为'DelphiService'.编译
这个项目,将得到 ServiceDemo.exe.
这已经是一个服务程序了!
进入CMD模式,切换致工程所在目录,
运行命令'ServiceDemo.exe /install',
将提示服务安装成功!
然后'net start DelphiService'
将启动这个服务.进入控制面版-->管理工具-->服务,
将显示这个服务和当前状态.
不过这个服务现在什么也干不了,
因为我们还没有写代码:)
先'net stop DelphiService'停止再'ServiceDemo.exe /uninstall'删除这个服务.
回到Delphi7的IDE.-------------------------------------------------
搜来的,已经成功了,问题是这个象DOS的小程序如何启动的我窗体呢?

解决方案 »

  1.   

    这样创建后,有一个属性 interactive 要设置为 true,然后编译->重新安装 “服务”。或者,将 你的服务的 “属性->登录->本地系统账户->允许服务与桌面交互”打上勾,再重启 你的服务试试...
      

  2.   

    感觉服务程序,最好就不要带界面的,所有配置通过配置文件控制
    而由一个普通的gui桌面程序去控制配置文件从而达到控制服务
      

  3.   

    或者通过tcp进行控制设置,这样的实时性比配置文件要好一些
      

  4.   

    设置服务的Interactive为true
    设置为true时可以和Windows桌面进行交互
      

  5.   

    Interactive的目的就是服务的选项"允许互交".才能显示窗口.
    而且服务带界面的必须另开自己的线程.
      

  6.   

    怪。我用 Form2->ShowModal(); 逼它显示了窗口,但以后的语句
    ShellExecute()皆不成功。
    Form2->Show(); 也一闪而过;看样子要用线程。
      

  7.   

    //---------------------------------------------------------------------------
    void __fastcall TMyTest::ServiceStart(TService *Sender, bool &Started)
    {
            Form2=new TForm2(NULL);
            Form2->Show();
            Started=true;
    }
    //---------------------------------------------------------------------------
    void __fastcall TMyTest::ServiceExecute(TService *Sender)
    {
            while (!Terminated)
              {
                 Sleep(100);         // 减轻CPU负担
                 ServiceThread->ProcessRequests(false);
              }
    }
    //---------------------------------------------------------------------------
    简单完美搞定!!!!!搜到了DELPHI7服务 有关的博客
    结贴!!!!!!!