当前位置:首页 » 编程软件 » windows服务编程

windows服务编程

发布时间: 2022-04-26 06:25:06

Ⅰ WINDOWS是用什么编写的

90%的C语言+10%的汇编语言
windows系统都主要是用C语言编写的
我们在用windows平台上编程的时候,要调用系统API(应用程序接口),这些接口封装在系统的.dll(动态链接库)里面,所有的API函数都是32位平台上的C函数,从windows3.0一直windows95,到现在的win2003,都是基于C函数库的程序集,所以用C函数编出的系统程序系统执行效率最高,当然在底层的一些调用,不排除有些是用汇编编的,但内核大多是用C做的。
另:MFC只是windows系统上API函数的封装,基于面向对象原理,服务于GUI程序设计,MFC从AFX发展而来,已有十多年的历史,最新的MFC6.0,那是设计基于windows系统程序的,而不是用来编写操作系统本身,但也不能完全这样说,系统上有些服务(可以说很多,比如时间)是用MFC做的。

Ⅱ Windows系统编程的介绍

Windows是个人计算机上最流行的操作系统,在国内外拥有众多家庭和商务用户,因此Windows系统编程可以说是程序员的基础必修课。各高校许多专业都开设了相关的课程。本书结合大量的例子,介绍Windows系统编程的经典技术,并完整地介绍几个Windows系统编程的实例,包括安装和卸载软件管理、Windows服务状态监视器、键盘监视程序、进程保护器、系统信息查看程序等。

Ⅲ 什么是windows编程

这不是一个严格概念,只是习惯于这么说而已。 基本上,如果“在windows系统下运行”这个事实对你写程序而言很重要的的话, 就算是"windows编程"吧。 比方说你的程序的重要功能部分用到一些windows的api之类的

Ⅳ 如何学习windows编程

很多人从MFC开始学习,结果常常是一头雾水,知难而退;也有人毅力坚强,熬过了MFC的阵痛期,最后却是知其然而不知其所以然,并且思维被限制在MFC的框架之中,遇到稍微有点规模的程序就无从下手了。
以我个人的这些年的Windows开发经历,我建议Windows上的学习路线如下:
首先当然是语言的学习,比如C或C++(STL),它是平台无关的
然后可以从《Windows程序设计》(by
Charles Petzold
)入门,从最原始的Windows API开始学习
接下来可以学习《Windows核心编程》(by
Jeffrey Richter
), 它会让你比较深刻的理解Windows的前台和后台机制
学完上面2本书,对Windows系统已经比较熟悉了,再要深入的话可以学下《Windows 图形编程》(by 袁锋)。
至此,已经可以用API的方式开发大部分Windows应用程序了,
接下来可以学一些常用库,比如MFC,WTL,ATL等,此时学习MFC和一开始就学习MFC已是截然不同的感觉,彼时痛苦难熬,此时会心一笑。
其他就是根据项目需要,专业知识的学习,比如COM技术,网络,D3D等。

Ⅳ Windows编程

摘要 如果打开《Windows程序设计》这本书,关于Windows开发的来龙去脉就一目了然了。但是要注意,《Windows程序设计》是一本纯讲述Windows API的书,确切的说,这本书主要讲的是关于Windows 用户态的API,也就是User32.dll GDI32.dll这两个库文件中的函数,大部分的内容都是关于Windows最基本的窗口元素的操控方面的API,比如创建窗口,绘制窗口,关闭窗口,消息循环等等。这本书不需要你有C++方面的知识,理论上说只要你有C语言的基础就可以看懂,但是如果你连C语言的基础也没有,看这本书可能会发生一些困难,如果你学过其它一门非面向对象的语言,这本书实际上也能够勉强看懂。我在大学的时候就看了这本书,但是直到现在也没有看完,书中的某些知识,实际上在Windows开发中已经很少用到了,我个人认为是没有必要把这本书从头到位看一遍的,在看了前面几章以后,我就蠢蠢欲动,写了一些简单的程序,迅速巩固了关于这些API调用的记忆,为今后进化到Windows C++阶段打下了一个良好的基础。所以,写程序是很重要的,这个阶段,我建议大家写一些简单的程序,比如打字测速程序,自己创建一个消息循环,创建一个窗口,创建一个光标,用GDI函数输出图形及文字,这样下来,基本的Windows程序设计概念就有了,不过注意写的时候不要大段的Copy书上的代码,全部自己写,否则无助于理解各个API的含义,这个程序,因为是自己写的第一个Windows程序,所以时间限定在一个月到一个半月之内比较合适。度过这个阶段以后,Windows编程的基本概念就应该在你脑海中形成了。

Ⅵ windows编程

我针对你的问题作个简要回答吧。
windows编程分好几种吗?个人理解是只有一种,window编程是指编写window环境下的软件。但我们可以用不同的开发工具和不同的语言来进行window编程.比如工具有Microsoft
Visual
C++
6.0、Microsoft
Visual
Studio
2005、delphi等工具。语言有c、c++、java
、pascal等。而你所认为的各种编唾分类是针对不同的方面进行的。比如windows核心编程就涉及到硬件方面,根据硬件怎样分配资源,怎样回收等分方面。而网络编程是针对网络方面划分的。涉及到服务器与客户机等。windows图形编程自然与图形编辑有关。windows系统编程针对操作系统的编写。你列出的概念还真是具体啊。我并不是万能,也不能用简短的回答就能解译的清楚的。有些解译深度不够,再所能免。只是为了认你清楚这些是针对不同方面联系较深而作出的概念而已。就象说话,对一个事物,可能有不同的叫法来表现事物与哪方面联系较深。游戏编程与游戏较多。假如有一种在windowsg下的编程与电影联系较深有能力为它命名为windows电影编程。我是说假如。希望不会误导你。
你的第三个问题是选择看书吧。本人认为选择哪本书并不是很重要。关键是你提取知识方面。从具体的编程来是,程序就是指令的集合,而软件开始一个重要的方面就是写指令(写代码)。代码的书写要用编程语言。所以编程就是根据编程语言进行创造的过程。所以真正想做软件开发方面的话,首先要打好基础。首先选择一门比较有感觉的人。比如c,c++,pascal,但不可移植到其它操作系统.java可以跨平台,可以把widow环境下开发的软件直接拿到unix等操作系统使用。不知道你水平如何,但我建议选c++有关的书。其中就有你想要的window编程,使用API函数和各网友所说的用MFC开发。如果想快一点开发你所认为的开发一些有用的实际的东西,那我建议你有delphi7软件开发。不过它是有pascal语言的。所以根据个人情况而定。
文字多了一点。不知道你有没有耐心看,但每个字都是我一手打出来的,可没有用复制的方法哦,可看不起我哦。言尽于此,能看懂多少就看你自己的了。
想找我聊天的话可以直接聊也可以在Q上。
MY
QQ:406784192

Ⅶ windows编程是什么

windows 编程就是编译的程序可以在windows环境下运行 可以用的语言很多了,如VB,VC,Delphi,java,C#等等,很多编程软件要调用系统的API函数,MFC,微软基础类(Microsoft Foundation Classes),同VCL(delphi的库)类似,是一种Application Framework,随微软Visual C++ 开发工具发布。

Ⅷ Windows中服务程序指的是什么

每个操作系统都需要有在后台执行任务的方法,无论是谁正在使用这部机器,这些任务都可以继续运行,后台任务可以处理各种重要的服务,包括系统的或者用户的。例如,一个信使服务可以监控网络,并且在接收到另一台机子的信息时,可以显示一个对话框。一个发送和接收传真的应用需要在启动的时候运行,并且不断地监控负责传真的modem,看有没有传真进来。一个家庭的或者办公室的安全程序,用来控制一件检测设备时,它需要不时地查询传感器,并且在适当的时候响应它。所有这些任务都需要CPU时间来执行它们,不过由于它们需要的CPU时间很少,因此可以放在后台而不影响用户使用系统。

在MS-DOS中,后台的任务是通过TSR(Terminate and Stay Resident)程序来处理的。这些程序经由autoexec.bat文件开始。在UNIX中,后台任务是通过Daemons来处理的。在每次启动 UNIX的过程中,你都可以看到操作系统启动一些任务,例如定时的程序(Cron)和Finger的daemons,然后才可以让首个用户登录。在 Windows NT中,后台的任务被称为服务。服务可在每次NT启动的时候运行,并且不管是谁登陆,都会一直运行下去。

Windows NT的服务都是通过一般的可执行程序实现的,不同的是,它遵循内部的一个特定协议来设计,以便它们能够与服务控制管理器(SCM,Service Control Manager)进行正确的交互。在这篇文章中,你将学习到如何在Windows NT中创建和安装简单的Win32服务。一旦你懂得了这个简单的服务,你要建立自己的服务也不难了,因为所有的服务,不论是如何地复杂,都必须包含有同样基本的SCM接口代码。只要符合SCM的要求,其实为服务设计的可执行文件和一般的程序并没有多少的区别。

无论是对于编程者或者系统管理员,了解NT的服务如何工作都是很重要的。编程者就不必说了,因为他们要创建自己的服务,而对于系统管理员,也是同样重要的。因为后台的任务可以是很危险的。MS-DOS和Macintosh系统都是一个病毒的温床,因为它们在安全性方面先天不足,它们都可以允许任何人或者程序在任何时间创建后台的任务。Windows NT和UNIX系统是较安全的,因为只有系统管理员才可以为系统增加后台的任务,不过,如果系统管理员加入了一个破坏性的后台程序,就它就可以为所欲为了。因此系统管理员要了解Windows NT服务的技巧和权限设置,就可以避免加入有潜在危险的后台任务。

基本的概念

服务有两种不同的形式。驱动器服务使用驱动器协议,让NT可以与特定的硬件进行通信。另一个是Win32服务,通过一般的Win32 API来实现后台任务。这篇文章的重点是谈Win32服务,因为它们更为常见,而且创建起来也很容易。任何的NT编程者通过使用一般的NT SDK(或者Visual C++),并且可以用管理员的身份访问一台NT机器,都可以实现和安装自己的Win32服务。如果你想创建一些在Windows NT启动时就运行的程序,并且要求它会在系统中一直运行,你就要使用Win32的服务。

在NT中,服务通过控制面板进行管理。在控制面板中,你会发现有一个服务的图标,打开它你会看到所有Win32服务的清单。在那里你可以开始、停止、暂停和继续某个服务。你按下其中的启动按钮后,就会出现一个对话框,你可以修改启动操作以及服务使用的默认帐号。一个服务可以在系统启动的时候自动运行,也可以被完全禁止。或者设置为手动执行。在手动的时候,用户还可以设置启动的参数。要对服务中的项目作修改的话,你需要以一个管理员或者超级用户的身份登录。

Windows NT自带有一些预装的任务,用来处理诸如网络信使服务的操作或者使用“at”命令定时执行的操作,以及分布的RPC命名。在你创建自己的服务时,你必须执行一个独立的安装步骤,以将服务的信息插入到服务管理工具的列表中,这些信息包括有新服务的名字、执行文件的名字和启动的类型等,都会写入到注册表中,这样在机器下次启动的时候,SCM就会得到新服务的相关信息。

Ⅸ 求WINDOWS服务编程实例

我写的,参考一下:
#include <windows.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>

#define DEFAULT_BEEP_DELAY 3000

char * SERVICE_NAME="BeepService";
HANDLE terminateEvent=NULL;
SERVICE_STATUS_HANDLE serviceStatusHandle;
int beepDelay=DEFAULT_BEEP_DELAY;
BOOL pauseService=FALSE;
BOOL runningService=FALSE;
HANDLE threadHandle=0;

void SendStatusToSCM(DWORD dwCurrentState,DWORD dwWin32ExitCode,DWORD dwServiceSpecificExitCode,DWORD dwCheckPoint,DWORD dwWaitHint)
{
SERVICE_STATUS servicestatus;
servicestatus.dwServiceType=SERVICE_WIN32_OWN_PROCESS;
servicestatus.dwCurrentState=dwCurrentState;
if(dwCurrentState==SERVICE_START_PENDING)
{
servicestatus.dwControlsAccepted=0;
}
else
{
servicestatus.dwControlsAccepted=SERVICE_ACCEPT_STOP|SERVICE_ACCEPT_PAUSE_CONTINUE|SERVICE_ACCEPT_SHUTDOWN;
}

if (dwServiceSpecificExitCode==0)
{
servicestatus.dwWin32ExitCode=dwWin32ExitCode;
servicestatus.dwServiceSpecificExitCode=0;

}
else
{
servicestatus.dwWin32ExitCode=ERROR_SERVICE_SPECIFIC_ERROR;
servicestatus.dwServiceSpecificExitCode=dwServiceSpecificExitCode;
}
servicestatus.dwCheckPoint=dwCheckPoint;
servicestatus.dwWaitHint=dwWaitHint;
SetServiceStatus(serviceStatusHandle,&servicestatus);
}

DWORD ServiceThread(LPDWORD parm)
{
while(1)
{
Beep(200,200);
Sleep(beepDelay);
}
return 0;
}

VOID Handler(DWORD controlcode)
{
switch(controlcode)
{
case SERVICE_CONTROL_STOP:
SendStatusToSCM(SERVICE_STOP_PENDING,NO_ERROR,0,1,5000);
runningService=FALSE;
SetEvent(terminateEvent);
return;
case SERVICE_CONTROL_PAUSE:
if(runningService && ! pauseService)
{
SendStatusToSCM(SERVICE_PAUSE_PENDING,NO_ERROR,0,1,1000);
pauseService=TRUE;
SuspendThread(threadHandle);
SendStatusToSCM(SERVICE_PAUSED,NO_ERROR,0,0,0);
}
break;
case SERVICE_CONTROL_CONTINUE:
if(runningService && pauseService)
{
SendStatusToSCM(SERVICE_CONTINUE_PENDING,NO_ERROR,0,1,1000);
pauseService=FALSE;
ResumeThread(threadHandle);
SendStatusToSCM(SERVICE_RUNNING,NO_ERROR,0,0,0);
}
break;
case SERVICE_CONTROL_INTERROGATE:
break;
case SERVICE_CONTROL_SHUTDOWN:
return;
}

}

VOID ServiceMain(DWORD argc,LPTSTR * argv)
{
serviceStatusHandle=RegisterServiceCtrlHandler(SERVICE_NAME,(LPHANDLER_FUNCTION) Handler);
SendStatusToSCM(SERVICE_START_PENDING,NO_ERROR,0,1,5000);
terminateEvent=CreateEvent(0,TRUE,FALSE,0);
SendStatusToSCM(SERVICE_START_PENDING,NO_ERROR,0,2,1000);
if(argc==2)
{
int temp=atoi(argv[1]);
if (temp<1000)
{
beepDelay=DEFAULT_BEEP_DELAY;
}
else
{
beepDelay=temp;
}
}
DWORD id;
threadHandle=CreateThread(0,0,(LPTHREAD_START_ROUTINE)ServiceThread,0,0,&id);
runningService=TRUE;
SendStatusToSCM(SERVICE_RUNNING,NO_ERROR,0,0,0);
WaitForSingleObject(terminateEvent,INFINITE);
CloseHandle(terminateEvent);
SendStatusToSCM(SERVICE_STOPPED,NO_ERROR,0,0,0);
CloseHandle(threadHandle);
}

VOID main(VOID)
{
SERVICE_TABLE_ENTRY serviceTable[]={{SERVICE_NAME,(LPSERVICE_MAIN_FUNCTION)ServiceMain},{NULL,NULL}};
BOOL success;
success=StartServiceCtrlDispatcher(serviceTable);
if(! success) ExitProcess(GetLastError());
}

热点内容
传奇祝福脚本 发布:2025-05-14 09:34:12 浏览:570
电脑文件加密的软件 发布:2025-05-14 09:29:20 浏览:353
扩展数据库表空间 发布:2025-05-14 09:29:10 浏览:641
mongo存储过程 发布:2025-05-14 09:27:54 浏览:714
服务器的公网ip在哪看 发布:2025-05-14 09:18:30 浏览:253
电脑栏目缓存后变成空白页了 发布:2025-05-14 09:10:30 浏览:740
c语言的软件是什么 发布:2025-05-14 09:09:13 浏览:801
php微信支付教程视频教程 发布:2025-05-14 08:59:59 浏览:203
存储服务器分类 发布:2025-05-14 08:39:01 浏览:646
xz文件解压软件 发布:2025-05-14 08:28:43 浏览:970