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 对象

service对象的更多相关文章

  1. Spring普通类/工具类获取并调用Spring service对象的方法

    参考<Spring普通类获取并调用Spring service方法>,网址:https://blog.csdn.net/jiayi_0803/article/details/6892455 ...

  2. kubernetes命令式容器应用编排/部署应用/探查应用详情/部署service对象/扩缩容/修改删除对象

    部署Pod应用 创建delpoyment控制器对象 [root@master ~]# kubectl run myapp --image=ikubernetes/myapp:v1 --port=80 ...

  3. 使用ssh时报错:Service对象空指针异常

    有可能是spring容器不能自动生成service对象,导致空指针异常,常见的情况可能是在service前面加@Service注释

  4. k8s service对象

    k8s service对象   概述 service服务也是Kubernetes里核心字眼对象之一,Kubernetes里的每一个service其实就是我们经常提起的微服务架构中的一个微服务,之前讲解 ...

  5. k8s service对象(三)

    概述 service服务也是Kubernetes里核心字眼对象之一,Kubernetes里的每一个service其实就是我们经常提起的微服务架构中的一个微服务,之前讲解Pod,RC等资源对象其实都是为 ...

  6. service手动实例化(new)导致类中的spring对象无法注入的问题解决

    下面说的这个画横线的可能是错误的,因为我之前用controller继承父类的注解对象的时候成功了,所以可能这次的唯一原因就是 不该把本该从ioc容器中拿出的对象通过new的方式实例化,至于继承注解对象 ...

  7. 案例48-crm练习利用spring管理service和dao层的对象

    1 导包 2 将 Service 对象以及 Dao 对象配置到 spring 容器 <?xml version="1.0" encoding="UTF-8" ...

  8. Kubernetes对象之Service

    系列目录 通过ReplicaSet来创建一组Pod来提供具有高可用性的服务.虽然每个Pod都会分配一个单独的Pod IP,然而却存在如下两问题: Pod IP仅仅是集群内可见的虚拟IP,外部无法访问. ...

  9. Service是什么?Service又不是什么?

    在Android王国中,Service是一个劳动模范,总是默默的在后台运行,无怨无悔,且总是干最脏最累的活,比如下载文件,倾听音乐,网络操作等这些耗时的操作,所以我们请尊重的叫他一声:"劳模 ...

随机推荐

  1. Apache+Tomcat构建Tomcat负载均衡集群

    一.环境介绍 二.安装后端服务器 三.安装前端Apache服务 四.配置Apache使用mod_jk模块实现代理及负载均衡 五.配置Apache基于mod_proxy模块实现代理及负载均衡 六.论坛安 ...

  2. Git基本命令行操作 (转)

    Git远程操作详解   作者: 阮一峰 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和 ...

  3. centos lamp

    一.安装 MySQL 首先来进行 MySQL 的安装.打开超级终端,输入: [root@localhost ~]# yum install mysql mysql-server 安装完毕,让 MySQ ...

  4. [转]深入理解学习GIT工作流

    深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...

  5. Java-->Tomcat(免费的Java Web服务器)

    --> 要在浏览器访问一个Java Web项目,首先需要将这个项目放到服务器中. --> Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器. --> ...

  6. linux 下find命令 --查找文件名

    1.在某目录下查找名为"elm.cc"的文件 find /home/lijiajia/ -name elm.cc 2.查找文件名中包含某字符(如"elm")的文 ...

  7. UE4 VR 模式下全屏解决办法

    方法步骤: 1.打开关卡蓝图添加如下代码: 2.设置配置文件在工程目录里面找到 Config 文件夹在里面添加一个配置文件并命名为 DefaultGameUserSettings.ini 把如下内容贴 ...

  8. CSS3-transition,过渡实例

    过渡:transition[由Webkit内核浏览器提出] 通过CSS实现元素从一个样式渐变成另一个种. IE不支持,其他需后缀. transition:transition-property/dur ...

  9. strcat函数的使用需要注意的问题

    曾被这个函数困扰了好久,然后各种假设,验证:但是最后却发现这个函数并没有什么好讲的,原来的过错一切都源于忽略了“*dst去掉\0,然后加上*src,最后返回*dst”这句话的真正含义:给*dst分配的 ...

  10. Oracle查询索引碎片及数据表空间使用情况

    --检查索引碎片情况,只能对单个表进行分析. --需要注意块的大小.索引的pctfree的值的大小.rowid的长度的不同,根据不同的情况修改相应的值 select index_name, c.NMB ...