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
应用于
service对象的更多相关文章
- Spring普通类/工具类获取并调用Spring service对象的方法
参考<Spring普通类获取并调用Spring service方法>,网址:https://blog.csdn.net/jiayi_0803/article/details/6892455 ...
- kubernetes命令式容器应用编排/部署应用/探查应用详情/部署service对象/扩缩容/修改删除对象
部署Pod应用 创建delpoyment控制器对象 [root@master ~]# kubectl run myapp --image=ikubernetes/myapp:v1 --port=80 ...
- 使用ssh时报错:Service对象空指针异常
有可能是spring容器不能自动生成service对象,导致空指针异常,常见的情况可能是在service前面加@Service注释
- k8s service对象
k8s service对象 概述 service服务也是Kubernetes里核心字眼对象之一,Kubernetes里的每一个service其实就是我们经常提起的微服务架构中的一个微服务,之前讲解 ...
- k8s service对象(三)
概述 service服务也是Kubernetes里核心字眼对象之一,Kubernetes里的每一个service其实就是我们经常提起的微服务架构中的一个微服务,之前讲解Pod,RC等资源对象其实都是为 ...
- service手动实例化(new)导致类中的spring对象无法注入的问题解决
下面说的这个画横线的可能是错误的,因为我之前用controller继承父类的注解对象的时候成功了,所以可能这次的唯一原因就是 不该把本该从ioc容器中拿出的对象通过new的方式实例化,至于继承注解对象 ...
- 案例48-crm练习利用spring管理service和dao层的对象
1 导包 2 将 Service 对象以及 Dao 对象配置到 spring 容器 <?xml version="1.0" encoding="UTF-8" ...
- Kubernetes对象之Service
系列目录 通过ReplicaSet来创建一组Pod来提供具有高可用性的服务.虽然每个Pod都会分配一个单独的Pod IP,然而却存在如下两问题: Pod IP仅仅是集群内可见的虚拟IP,外部无法访问. ...
- Service是什么?Service又不是什么?
在Android王国中,Service是一个劳动模范,总是默默的在后台运行,无怨无悔,且总是干最脏最累的活,比如下载文件,倾听音乐,网络操作等这些耗时的操作,所以我们请尊重的叫他一声:"劳模 ...
随机推荐
- Android Studio项目目录结构
在Android Studio中,提供了以下几种项目结构类型 我们一般常用的有以下两种结构: Project 结构类型 app/build/ app模块build编译输出的目录 app/build.g ...
- 由于@@ServerName等问题对SQL增量升级脚本进行补充
由于@@ServerName在安装数据库之后修改了机器名的情况下,获取到的内容仍然是原来的机器名,造成数据库连接失败, 所以不能直接使用该全局变量. 此外对升级脚本的执行方式做了一下调整,将版本的判断 ...
- 苹果IPhone手机由于更新了IOS7 Beta测试版导致“激活出错”后,如何还原电话本和照片方法
苹果这狗日的,手段果然狠,因为用户提前升级了测试版又没有更新正式版,就突然把手机变砖头,既不让升级正式版,也不让备份手机中的信息,确实有必要这样吗? 我的手机是IPone4s,在看了6月Apple W ...
- 1、webservice的简单使用
1.新建一个web端项目 2.点击添加项,选择web服务 3.在已经建好的项目中写一个方法 4.发布(发布方法选文件系统,web需要管理员权限) 生成文件夹: 5.配置IIS(略) 6.调用webse ...
- cocos2dx 3.0 之 lua 创建类 (二)
利用lua 中的table 特性 Base = {x = 0,y = 0} Base.name = "luohai"Base.age = 12Base.sex = "ma ...
- C&C++ recap
大一时候学过C++,可惜忘得差不多了,之后也很少用过.当时使用的是windows系统,使用的还是visual C++.当时对计算机并不感冒,也没好好学.最近在R的学习中遇到瓶颈,觉得要捡起曾经的C/C ...
- 第一篇T语言实例开发(版本5.3),带错误检测的加减乘除运算器
带错误检测的加减乘除运算器 表达式 TC综合开发工具里的表达式大体分为:计算表达式.条件表达式 计算表达式: 它一般是用在赋值过程中,或者是和条件表达式混合使用这样的表达式里只有数字运算符(如:+.- ...
- 使用Apache Commons Configuration读取配置信息
在项目中使用一些比较新的库总会给你带来很多快乐,在这篇文章中,我将会给你介绍一个在Java中读取配置文件的框架——Apache Commons Configuration framework. 你会了 ...
- SQLServer2012中用于记录数据操作时刻的附加字段使用datetime2(3)就可以了
datetime2(3)精确到毫秒(听说),约等于2005时代的datetime类型.实际上后者是精确到3.33毫秒(也是听说). ) = GETDATE(); ) = GETDATE(); ) = ...
- android学习笔记49——SQLite2
使用SQLite工具 位于Android SDK/tools-->sqlite3.exe,其是一个简单的SQLite数据库管理工具,类似于MySQL提供的命令行窗口. ..... 使用特定方法操 ...