zoukankan      html  css  js  c++  java
  • service对象

    Service 对象

    提供用于创建服务程序的一组工具

    语法

    Shell.Service[.property|method]
     

    属性

    Description 服务描述,仅限于 Windows 2000 及以上版本
    Desktop 指定服务时候允许与桌面交互,缺省为 false
    DisplayName 服务显示名称,服务在服务列表中显示的名称
    Icon 加载图标到对象中,支持的图标格式为:BMP (bitmap), JPEG, WMF (metafile), ICO (icon), GIF
    Installed 查询当前服务是否已经安装
    Name 服务名,服务在服务列表中的名称
    Running 查询当前服务是否正在运行
    TrayIcon 查询与设置是否在系统托盘中显示本服务的图标,缺省为显示

    方法

    DoEvents 进入服务事件等待
    Install 将当前的程序安装成为服务
    LogEvent 向系统日志中记录信息,仅 Windows NT 及以上系统支持
    Remove 从系统中删除指定的服务
    RunService 标准的服务支持方法,提供通常的服务安装、卸载、运行的封装
    Restart 重新启动系统中已安装的指定服务
    SetTimer 设定服务的定时器
    Start 启动系统中已安装的指定服务
    Stop 停止系统中以安装的指定服务

    事件

    OnServicePause 服务暂停事件
    OnServiceResume 服务恢复事件
    OnServiceStart 服务初始化事件,仅在使用 RunService 方法建立服务时有效
    OnServiceStop 服务停止事件
    OnServiceTimer 服务定时器事件

    注释

    Service 作为 Shell 对象的内容,为主程序提供了服务编程的能力,通过使用 Service,可以在系统中安装、卸载服务,记录服务日志,设定定时器等。

    Service 对象为不同的系统提供了不同的实现,所以无论在 Windows NT、Windows 2000 上面,还是在 Windows 98、Windows ME 上面都能够很好的运行,Windows 98、Windows ME 除了不支持记录日志以外,其他功能都有相应的实现,在所有的平台上面实现服务所需要的代码是完全相同的,实现了一套代码在不同平台上的移植。

    在 Windows NT、Windows 2000 系统上面安装、运行服务时,NetBox 程序将被安装成为系统服务程序,在系统开始运行时自动运行,不需要登录系统。而如果服务程序在桌面被直接执行,则将被以 98 方式执行。关于 98 方式执行的 NetBox 服务,见下面的说明。

    当在 Windows 98、Windows ME 系统上面安装、运行服务时,NetBox 程序将被安装成为 98 系统的服务,同样在每次启动系统时自动执行,不需要登录系统。同时,一旦用户登录系统,将在系统 Taskbar 上面建立一个管理图标,用户可以在其上面点鼠标右键进行管理。如果用户退出登录,程序将继续执行,不受影响。

    如果需要自行安装一个 NetBox 应用为系统服务程序,比如使用通用安装程序部署应用,需要将服务以下面的命令方式安装成为服务:

    path -Dispatch SrvName

    其中 path 为应用程序的完整路径,SrvName 为应用的服务名称。

    示例

    下面的例子是一个完整的服务的例程,例子安装了一个服务,名称为“MySrv”,显示名称为“My Service Application”,如果在 Windows 2000 及以上系统,则详细描述设定为“This is my NetBox Service”。程序通过判断命令行参数来安装或卸载服务,并提供完整的服务事件的实现:

    Set service = Shell.Service
    Set Arg = Shell.Arguments
    
    service.Name = "MySrv"
    service.DisplayName = "My Service Application"
    service.Description = "This is my NetBox Service"
    
    If LCase(Arg(1)) = "-install" Then
        service.Install
        Shell.Quit 0
    ElseIf LCase(Arg(1)) = "-remove" Then
        service.Remove
        Shell.Quit 0
    End If
    
    service.SetTimer 1000
    service.DoEvents
    
    '---------------------- Service Event ---------------------
    
    Sub OnServiceStop
    End Sub
    
    Sub OnServicePause
    End Sub
    
    Sub OnServiceResume
    End Sub
    
    Sub OnServiceTimer
        Shell.Beep
    End Sub

    也可以直接使用 RunService 方法实现服务,其代码更加简单。

    Shell.Service.RunService "MySrv", "My Service Application", "This is my NetBox Service"
    
    '---------------------- Service Event ---------------------
    
    Sub OnServiceStart
        Shell.Service.SetTimer 1000
    End Sub
    
    Sub OnServiceStop
    End Sub
    
    Sub OnServicePause
    End Sub
    
    Sub OnServiceResume
    End Sub
    
    Sub OnServiceTimer
        Shell.Beep
    End Sub

    应用于

    Shell 对象

  • 相关阅读:
    js字符串分割
    Maven打包出错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test
    Kafka
    linux 切换PHP版本
    linux 查看服务状态及开发端口
    php消息队列
    windows 设置composer 淘宝镜像
    PHP使用CURL详解
    linux php7.0 安装redis扩展
    linux 快速查找安装目录方法
  • 原文地址:https://www.cnblogs.com/zhoudi/p/5908029.html
Copyright © 2011-2022 走看看