VC编写有图形界面的Windows服务程序

环境:Windows 2003,VC 6.0

摘要:从建立一个COM服务程序入手,然后将一个MFC项目改造成服务程序,最后让这一程序在启动时可以显示图形界面。

关键字:windows服务程序 COM服务程序 开机前启动 NT服务 与桌面交互

一、什么是windows的服务程序?

可以使用下面的几种方法看到它。

打开控制面板,然后是管理工具,里面有一个“服务”,双击后打开;

或者是通过输入命令的方式,打开开始菜单,点击运行,输入mmc services.msc(mmc可省略),也可打开;

我们会在打开的页面中看到一个大的列表,标题栏上包含有名称、描述、状态、启动类型、登录身份等项。其中在状态一栏中显示为“已启动”的是系统中已经启动了的服务。我们先看一下服务的属性。举个例子,找到Print Spooler这一名称,然后用右键在上面点击,选择“属性”,可以看到它所执行的命令行是C:\WINDOWS\system32\spoolsv.exe,按下停止后,任务管理器中spoolsv.exe进程退出。我们所见到的这个列表就是服务程序的集中地,每一项就是一个服务程序。

上面这些标为自启动的服务程序随系统一起启动。它与一些修改注册表:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

项,及类似注册表项的程序不同的是,即使用户没有登录到系统中,它们也是会运行的,或者说它们在系统登录前运行。

二、怎么建立自己的服务程序?

每一个服务程序对应注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下的一个子项。因此我们可以通过增加注册表项的方式增加服务程序。比如,我现在要增加一个test1服务程序,对应的可执行文件是c:\test1.exe。那么我要增加如下注册表项:

时间: 2024-12-22 01:23:20

VC编写有图形界面的Windows服务程序的相关文章

(求助)用java写一个图形界面的ftp客户端

问题描述 学了一学期的java编程,现在想做点实际的东西锻炼锻炼,准备做一个java版的ftp图形界面的客户端.网上搜了一些资料,自己还是不会弄--现在想找份能运行的代码自己来跑下.研究下,希望大家帮帮忙给一个能运行的用java写的ftp代码(图形界面的).不需要实现ftp软件的太多功能,只需要有一下几个基本功能就足够了:1.用户登陆和匿名登陆:2.浏览目录:3.下载和上传文件.功能太丰富的估计我会看不懂的~希望大家给的代码最好不要是网上直接copy过来的,我在网上搜了很久,那些代码大多在ecl

没有图形界面的java应用程序怎么打包成.exe文件

问题描述 public class helloword {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("hello word!");}}这样的程序用exe4j打包成.exe文件后,双击运行不了,请教是怎么回事? 解决方案 双击报什么错么?这个要到控制台下去运行的吧?要不然就看到命令行窗口一闪就过了,因为程序

C语言编写Windows服务程序

原文:C语言编写Windows服务程序 #include <Windows.h> #include <stdio.h> #define SLEEP_TIME 5000 // 间隔时间 #define LOGFILE "C:\\memstatus.txt" // 信息输出文件 SERVICE_STATUS ServiceStatus; // 服务状态 SERVICE_STATUS_HANDLE hStatus; // 服务状态句柄 void ServiceMain

c#编写的windows服务程序调用不了c#写的类库

问题描述 我自己用c#写了个windows服务程序,但是在这里我去调用我自己的c#类库,就会报出找不到类库的程序集或者依赖项,但是我把这个类库让其他控制台或者winform都可以调用这个类库,这是为什么呢? 解决方案 解决方案二:类型查看器中,看看能否看到.解决方案三:理论上讲,这么调用没有任何问题导致异常的因素太多了...建议检查代码中1.dll路径相关代码2.dll配置文件相关代码3.依赖项的部署位置...解决方案四:1.你确定你引用了吗?看看DLL有没有跟服务在相同的目录里2.确定一下,你

用Visual C#创建Windows服务程序

visual|window|程序|创建  一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Windows NT.Windows 2000和Windows XP等操作系统下用户环境以外的程序.在以前,编写Windows服务程序需要程序员很强的C或C++功底.然而现在在Visual Studio.Net下,你可以运用C++或Visual C#或Visual Basic.Net很轻松的创建一个Windows服务程序.同样,你还可以运用其他任何与CLR相容的语言来创建Wi

利用VC++编写Windows95的CPL组件

控制面板是Windows 95 的控制中心,通过它可以完成添加新硬件设备.改变桌面设置.配置网络协议等多项工作.在Windows 95 中,控制面板通常有20 多个组件,我们只要用鼠标双击任一组件的图标,就会弹出一个对话框,对话框包含有设置一些系统参数的选项,这些参数的绝大多数都存放在Windows 95 的注册表中. ---- 控制面板的主程序是CONTROL.EXE,它在启动时自动Winndows\System 目录下查找并调入文件扩展名为CPL 的控制面板组件.控制面板组件是可以扩充的,一

Windows服务程序时钟的调用方法

1 大概思路 设计服务程序 创建服务 安装必备组件 编写Service1 运行效果 2 设计服务程序 创建服务程序,通过添加System.Timers时钟进行定时向Wecome.txt写入文本. 3 创建服务 创建项目.安装项目 (通过工具箱添加System.Timers组件,系统时钟组件,不同于System.Windows.Forms)

如何用VB做一个跟鼠标移动有关的windows服务程序?

问题描述 如何用VB做一个跟鼠标移动有关的windows服务程序? 我想做一个只要鼠标移动就会发生的一个windows 服务程序,还有要可以在龙之谷中运行. 解决方案 1.鼠标Hook 2.timer定时获取鼠标坐标 3.如果游戏有保护你可能注入不了 解决方案二: windows服务运行在单独的user session中,每个session有自己的鼠标键盘消息,所以不能用windows服务.你应该在你的当前桌面会话中编写一个拦截程序. 这里有一个例子:http://z.download.csdn

傅里叶变换 频谱分析-如何用VC++编写信号频率为30Hz的傅里叶频谱分析程序

问题描述 如何用VC++编写信号频率为30Hz的傅里叶频谱分析程序 如何用VC++编写信号频率为30Hz的傅里叶频谱分析程序,并且可以画出频谱图~