社区
VB基础类
帖子详情
请问如何使用VB开发Windows服务程序?
Ganzl
2002-07-02 03:04:44
xxx
...全文
618
4
打赏
收藏
请问如何使用VB开发Windows服务程序?
xxx
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
TechnoFantasy
2002-07-02
打赏
举报
回复
一个带演示源码的控件,可以将你的程序变为Windows NT的服务器程序。
http://www.applevb.com/sourcecode/nt_server.zip
不过微软不推荐使用VB做服务器程序。
孙小雄
2002-07-02
打赏
举报
回复
1. SC_HANDLE OpenSCManager( LPCTSTR lpMachineName, LPCTSTR lpDatabaseName, DWORD dwDesiredAccess)
OpenSCManager 函数打开指定计算机上的service control manager database。其中参数lpMachineName指定计算机名,若为空则指定为本机。LpDatabaseName为指定要打开的service control manager database名, 默认为空。dwDesiredAccess指定操作的权限, 可以为下面取值之一:
SC_MANAGER_ALL_ACCESS //所有权限
SC_MANAGER_CONNECT //允许连接到service control manager database
SC_MANAGER_CREATE_SERVICE //允许创建服务对象并把它加入database
SC_MANAGER_ENUMERATE_SERVICE //允许枚举database 中的Service
SC_MANAGER_LOCK //允许锁住database
SC_MANAGER_QUERY_LOCK_STATUS //允许查询database的封锁信息
函数执行成功则返回一个指向service control manager database的句柄,失败则返回NULL。注意:WIN2000通过一个名为service control manager database的数据库来管理所有的Service,因此对Service的任何操作都应打开此数据库。
2. SC_HANDLE CreateService(SC_HANDLE hSCManager,
LPCTSTR lpServiceName,
LPCTSTR lpDisplayName,
DWORD dwDesiredAccess,
DWORD dwServiceType,
DWORD dwStartType,
DWORD dwErrorControl,
LPCTSTR lpBinaryPathName,
LPCTSTR lpLoadOrderGroup,
LPDWORD lpdwTagId,
LPCTSTR lpDependencies,
LPCTSTR lpServiceStartName,
LPCTSTR lpPassword)
CreatService函数产生一个新的SERVICE。其中参数hSCManager为指向service control manager database 的句柄,由OpenSCManager返回。LpServiceName为SERVICE的名字,lpDisplayName为Service显示用名,dwDesiredAccess是访问权限,本程序中用SERVICE_ALL_ACCESS。wServiceType,指明SERVICE类型,本程序中用SERVICE_WIN32_OWN_PROCESS| SERVICE_INTERACTIVE_PROCESS。dwStartType为Service启动方式,本程序采用自启动,即dwStartType等于SERVICE_AUTO_START。 dwErrorControl说明当Service在启动中出错时采取什么动作,本程序采用SERVICE_ERROR_IGNORE即忽约错误,读者可以改为其他的。LpBinaryPathName指明Service本体程序的路径名。剩下的五个参数一般可设为NULL。如函数调用成功则返回这个新Service的句柄,失败则返回NULL。与此函数对应的是DeleteService( hService),它删除指定的Service。
3. SC_HANDLE OpenService(SC_HANDLE hSCManager,LPCTSTR lpServiceName, DWORD dwDesiredAccess )
OpenService函数打开指定的Service。其中参数hSCManager为指向service control manager database 的句柄,由OpenSCManager返回。LpServiceName为Service的名字,dwDesiredAccess是访问权限,其可选值比较多,读者可以参看SDK Help. 函数调用成功则返回打开的Service句柄,失败则返回NULL。
4. BOOL StartService( SC_HANDLE hService, DWORD dwNumServiceArgs,LPCTSTR *lpServiceArgVectors )
StartService函数启动指定的Service。其中参数hService 为指向Service的句柄,由OpenService返回。dwNumServiceAr为启动服务所需的参数的个数。lpszServiceArgs 为 启 动 服务所需的参数。函数执行成功则返回True, 失败则返回False。
5. BOOL ControlService(SC_HANDLE hService DWORD dwControl,LPSERVICE_STATUS lpServiceStatus )
Service程序没有专门的停止函数,而是用ControlService函数来控制Service的暂停、继续、停止等操作。参数dwControl指定发出的控制命令,可以为以下几个值:
SERVICE_CONTROL_STOP //停止Service
SERVICE_CONTROL_PAUSE //暂停Service
SERVICE_CONTROL_CONTINUE //继续Service
SERVICE_CONTROL_INTERROGATE //查询Service的状态
SERVICE_CONTROL_SHUTDOWN //让ControlService调用失效
参数lpServiceStatus是一个指向SERVICE_STATUS的指针。SERVICE_STATUS是一个比较重要的结构,它包含了Service的各种信息,如当前状态、可接受何种控制命令等等。
6. BOOL QueryServiceStatus( SC_HANDLE hService,LPSERVICE_STATUS lpServiceStatus )
QueryServiceStatus函数比较简单,它查询并返回当前Service的状态。
Lzh_lee
2002-07-02
打赏
举报
回复
写DLL不就行了,然后把它注册为组件。
griefforyou
2002-07-02
打赏
举报
回复
以下就将逐步地介绍如何将用Visual Basic编写的程序转换为真正的Windows9x服务以及真正的WindowsNT服务程序。
你也许会问,为什么需要在Windows9X中让程序做为服务运行?在Windows9X环境中,能象WindowsNT一样做为服务程序运行吗?
回答是肯定的!原因是你可能有一些程序要在登录前就执行,这通常是做为服务器的的机器所需要的,比如web或者mail服务器。由于Windows9X系统缺乏安全性,将程序做为服务运行非常简单,所有需要做的就是修改注册表的相关内容。下面介绍详细步骤:
1、运行regedit,打开注册表。
2、在项目“HKEY_LOCALMACHINE\SOFTWARE\Microsoft \Windows\CurrentVersion\RunServices”下添加一个新字符串数值。
比如,如果程序的名字叫做“MicroSpud”,就建立一个名为“MicroSpud”的字符串数值,然后在数据域中输入执行程序的完整路径,这个程序就会在系统登陆之前运行.
VB
网络编程实例
◆ 57.htm 如何
使用
MSCOMM32.OCX发送大于80H的字符,可否给个示例程序 ◆ 58.htm 如何通过
VB
获取网卡地址 ◆ 59.htm 如何用
VB
打开默认器或默认发信程序? ◆ 60.htm 如何用Visual Basic编写...
DirectX修复工具 V3.3增强 绿色版
同时鉴于
Windows
8(
Windows
8.1、
Windows
8.1 Update)、
Windows
10系统中默认未包含.NET Framework 2.0,因此新版的程序文件夹内将包含一个DirectX_Repair_win8的特别版程序,该程序功能与通用版相同,基于.NET ...
DirectX修复工具 V3.0标准版
因此新版的程序文件夹内将包含一个DirectX_Repair_win8的特别版程序,该程序功能与通用版相同,基于.NET Framework 4.0
开发
,可以在
Windows
8(
Windows
Blue、
Windows
8.1)系统中直接运行(其他系统如果安装了.NET ...
DirectX修复工具 V3.3标准 绿色版
同时鉴于
Windows
8(
Windows
8.1、
Windows
8.1 Update)、
Windows
10系统中默认未包含.NET Framework 2.0,因此新版的程序文件夹内将包含一个DirectX_Repair_win8的特别版程序,该程序功能与通用版相同,基于.NET ...
DirectX修复工具 V2.1标准版
本程序基于Microsoft .NET Framework 2.0
开发
,对于
Windows
2000、
Windows
XP、
Windows
2003的用户需要首先安装.NET Framework 2.0或更高版本方可运行本程序。有关下载和安装的详细信息请参阅“致
Windows
XP用户....
VB基础类
7,765
社区成员
197,605
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章