Windows XP下Service的编程入门[1]

利用Windows XP Service Pack 2 Checked Build打造Partial Checked Build System 一、什么是Checked build    Windows Checked Build通俗地说就是Debug版的Windows,与之相对的是Retail build,一般我们在市面上买到的Windows都是Retail build。两者的code base相同,只不过Checked build是在DBG编译开关打开的情况下编译出来的。和Retail build相比,Checked build关闭了 阅读详情

Windows XP下Service的编程入门[1]

// _dse.cpp : Defines the entry point for the console application.
// 作者: 秋镇菜
// E-mail: cyin8@msn.com

#include "stdafx.h"
#include "windows.h"

int main(int argc, char* argv[])
{
 LPCTSTR lpServiceName = "Themes"; // 本例为关闭 Themes 服务

 SC_HANDLE scman = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
/* =============================================================================
SC_HANDLE OpenSCManager(LPCTSTR lpszMachineName,
                        LPCTSTR lpszDatabaseName,
                        DWORD fdwDesiredAccess);
== Open SCManager 函数打开指定计算机上的service control manager database。
== 其中参数lpszMachineName指定计算机名,若为空则指定为本机。
== 参数lpszDatabaseName指定要打开的service control manager database,默认为空。
== 参数fdwDesiredAccess指定操作的权限,可以为下面取值之一
SC_MANAGER_ALL_ACCESS        //所有权限
SC_MANAGER_CONNECT           //允许连接service control manager
SC_MANAGER_CREATE_SERVICE    //允许创建服务对象并把它加入service control manager database
SC_MANAGER_ENUMERATE_SERVICE //允许枚举service control manager database中的服务
SC_MANAGER_LOCK              //允许锁住service control manager database
SC_MANAGER_QUERY_LOCK_STATUS //允许获取servicecontrolmanagerdatabase的封锁信息
== 函数返回值:函数执行成功则返回一个指向service control manager database的句柄,失败则返回NULL。
============================================================================== */
 if (scman)
 {
  SC_HANDLE sh = ::OpenService(scman, lpServiceName, SERVICE_STOP);
/* ========================================================================
SC_HANDLE OpenService(SC_HANDLE schSCManager,
                      LPCTSTR lpszServiceName,
                      DWORD fdwDesiredAccess);
== OpenService函数打开指定的Service。
== 其中参数schSCManager是指向service control manager database的句柄,
由OpenSCManager函数返回。
== 参数lpszServiceName要打开的服务的名字,注意大小写。
== 参数fdwDesiredAccess指定操作的权限,可以为下面取值之一
SERVICE_ALL_ACCESS            //所有权限
SERVICE_CHANGE_CONFIG         //允许更改服务的配置
SERVICE_ENUMERATE_DEPENDENTS  //允许获取依赖于该服务的其他服务
SERVICE_INTERROGATE            //允许立即获取服务状态
SERVICE_PAUSE_CONTINUE        //允许暂停和唤醒服务
SERVICE_QUERY_CONFIG           //允许获取服务配置
SERVICE_QUERY_STATU            //允许通过访问service control manager获取服务状态
SERVICE_START                  //允许启动服务
SERVICE_STOP                   //允许停止服务
SERVICE_USER_DEFINE_CONTROL    //允许用户指定特殊的服务控制码
== 函数返回值:函数执行成功则返回指向某项服务的句柄,失败则返回NULL。
========================================================================== */
  if (sh)
  {
   BOOL ctrl;
   SERVICE_STATUS ServiceStatus;
   ctrl = ::ControlService(sh, SERVICE_CONTROL_STOP, &ServiceStatus);
/* ==========================================================================
BOOL ControlService(SC_HANDLE hService,
     DWORD dwControl,
     LPSERVICE_STATUS lpServiceStatus);
== ControlService函数向Win32service发送控制码。
== 其中参数hService是指向某项服务的句柄,由OpenService函数返回。
== 参数dwControl为控制码,常用的有
    SERVICE_CONTROL_STOP     //停止服务
    SERVICE_CONTROL_PAUSE    //暂停服务
    SERVICE_CONTROL_CONTINUE    //唤醒暂停的服务
    SERVICE_CONTROL_INTERROGATE//刷新某服务的状态
== 参数lpServiceStatus指向SERVICE_STATUS结构,用于存放该服务最新的状态信息。
== 函数返回值:函数执行成功则返回True,失败则返回False。
============================================================================= */
   DWORD dwControl;
   if (ctrl)
   {
    printf("success to stop the service /"%s/"/n",lpServiceName);
   }
   else
   {
    dwControl = ::GetLastError();
    switch(dwControl){
     case ERROR_ACCESS_DENIED:
      printf("The specified handle was not opened with the necessary access./n");
      break;
     case ERROR_SERVICE_NOT_ACTIVE:
      printf("The service has not been started./n");
      break;
     case ERROR_DEPENDENT_SERVICES_RUNNING:
      printf("The service cannot be stopped because other running services are dependent on it./n");
      break;
     case ERROR_INVALID_SERVICE_CONTROL:
      printf("The requested control code is not valid, or it is unacceptable to the service./n");
      break;
     case ERROR_SERVICE_CANNOT_ACCEPT_CTRL:
      printf("The requested control code cannot be sent to the service because the state of the service is SERVICE_STOPPED, SERVICE_START_PENDING, or SERVICE_STOP_PENDING./n");
      break;
     case ERROR_SERVICE_REQUEST_TIMEOUT:
      printf("The service did not respond to the start request in a timely fashion./n");
      break;
    }
   }
  }
  CloseServiceHandle(sh); // 关闭该Service
 }
 CloseServiceHandle(scman); // 关闭该Service
 printf("Hello World!/n");
 return 0;
}

Windows XP Service Pack 2、Windows XP Tablet PC Edition 2005 以及 Windows Server 2003 中数据执行保护 (DEP) 功能的详细说明 原文地址:http://support.microsoft.com/kb/875352/zh-cn 概要loadTOCNode(1, summary);数据执行保护 (DEP) 是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意代码。在 Microsoft Windows XP Service Pack 2 (SP2) 和 Microsoft Wind 阅读详情

相关推荐

编写Windows系统服务(通过ATL实现)支持xp系统

前言 C++通过ATL可以很容易的实现Windows系统服务,这里以VS2017为例,其他版本的VS基本上都一样操作。 编写TestService 1、新建项目 新建项目——ATL项目——命名为TestService 2、选择应用程序类型为服务.exe 3、生成源代码 4、修改服务的名称 在资源视图下可以修改服务的名称 5、实现接口: 实现以下几个接口,以隐藏父类的同名函数(注意这里不是重写...

Think88666的博客 1661

一个2000的日志清除器是怎么练成的

一个2000的日志清除器是怎么练成的文章作者:绿色兵团 编の魂 我想大想一定用过小榕的CLeanIIsLog,是一个不错的日志清除工具。不过可惜,只 能清除IIS的日志,那ftp和shedule待产生的日志文件呢,我们一般只能手动清除。 Windows2000的日志文件通常有应用程序日志,安全日志、系统日志、DNS服务器日志、 FTP日志、WWW日志等等,可能会根据服务器所开启的服务不同。 一般步

goingup的专栏 1688

Windows XP API编程终极指南

Win32 API的绝好参考资料,Charles Petzold的经典著作升级版!

Windows XP下Service的编程入门[2]

Windows XP下Service的编程入门[2]// _dse.cpp : Defines the entry point for the console application.// 作者: 秋镇菜// E-mail: cyin8@msn.com// 本程序很简单#include "stdafx.h"#include "windows.h"int main(int argc, char* a

小发猫 1562

VTK学习(入门级教程,包括安装和使用)~持续更新中

说明:研究QT+VTK有段时间了,准备把学到的东西分享给大家,这篇博客以VS+QT+VTK为主进行展开学习的。

HXX904的博客 4754

基于PLC的茶叶揉捻机自动控制系统设计【附代码】

茶叶揉捻是初茶加工过程中的一道关键工序,通过揉捻可以使鲜茶叶成条、碎茶及叶组织细胞破损等。影响茶叶成条率、碎茶率和叶组织细胞破损的主要因素包括揉捻时间、压力和揉捻桶转速。为了提高茶叶品质的稳定性和减轻工人的劳动强度,本文提出了一种基于PLC自动控制技术的茶叶揉捻机控制系统设计。📊 PLC自动化设计 | 毕业设计指导 | 工业自动化解决方案。✅ 具体问题可以私信或查看文章底部二维码。✅ 感恩科研路上每一位志同道合的伙伴!

lagougongzuoshi的博客 1341

xp下 c语言用什么编程软件,学C语言在windows XP环境下用什么编程软件好??

DEV-CPP 可以哦 特别简单的 Dev-C++是一个C&C++开发工具,使用 Delphi/Kylix 开发, 它是一款自由软件,遵守GPL协议。它集合了GCC、MinGW等众多自由软件,并且可以从工具支持网站上取得最新版本的各种工具支持,而这一切工作都是来自全球的狂热者所做的工作,并且你拥有对这一切工具自由使用的权利,包括取得源代码等,前提是你也必 须遵守GNU协议。它使用 MinG...

weixin_39628594的博客 1018

免安装版Notepad++终极配置:右键菜单+图标美化+多文件批量处理(2024新版)

本文详细介绍了如何为免安装版Notepad++进行终极配置,包括右键菜单添加、图标美化以及多文件批量处理功能。通过注册表编辑和高级定制,用户可以在便携版中实现与安装版相同的功能体验,同时保持系统整洁。特别适合开发者、系统管理员和效率追求者使用。

nut55的博客 830

Internet Explorer 6 Service Pack 1 企业版的累积安全更新 - Windows XP, Windows 2000 (889669)

在 Microsoft 安全公告 MS04-004 之后发布的 Microsoft Internet Explorer 6 Service Pack 1 (SP1) 修复程序可能没有包含在 Microsoft 安全公告 MS04-040 中介绍的安全更新 889293 中。累积更新 889669 包括安全更新 889293 中的累积安全修复程序和 Microsoft 安全公告 MS04-004 之

[无色轨迹] @ Naxin9999 2915

Synopsys Sentaurus TCAD新手教程:从零开始仿真trench MOSFET(附完整代码解析)

本文提供Synopsys Sentaurus TCAD新手教程,详细讲解从零开始仿真trench MOSFET的全过程,包括环境搭建、外延生长、沟槽刻蚀、栅极形成等关键步骤,并附完整代码解析。通过实际案例帮助半导体工程师掌握Sprocess操作技巧,优化工艺参数设置,提升仿真效率。

weixin_30505225的博客 215

RK3588S开发板实战:手把手教你调试IMX415摄像头(附常见问题排查)

本文提供了基于RK3588S开发板调试IMX415摄像头的完整实战指南。从硬件连接到软件配置,详细解析了设备树(DTS)设置、驱动加载验证及V4L2工具链使用,并附带了常见问题排查方法,帮助开发者快速解决摄像头调试中的典型问题,实现图像采集与性能调优。

assembly8low的博客 590

《Windows XP Embedded with Service Pack 2 开发包光盘 3CD》(Windows XP Embedded Studio with Service Pack 2 3CD)Service Pack 2[Bin]

片  名  《Windows XP Embedded with Service Pack 2 开发包光盘 3CD》(Windows XP Embedded Studio with Service Pack 2 3CD)Service Pack 2[Bin] 简  介  发行时间: 2004年制作发行: Micosoft 类  别  软件 小  类  编程开发 详细介绍中文名: Windows XP Embedded with Service Pack 2 开发包光盘 3CD英文名: Windows XP E

laoyang1018开发笔记 2029

从零到一:TI AWR1843 Boost EVM与DCA1000 EVM的ADC数据采集实战指南

本文详细介绍了TI AWR1843 Boost EVM与DCA1000 EVM的ADC数据采集实战指南,涵盖硬件连接、软件配置、固件烧录、雷达参数设置及数据处理等关键步骤。通过MATLAB等工具,开发者可高效实现毫米波雷达数据采集,适用于自动驾驶、工业检测等领域。

weixin_29001327的博客 966

微软MSDN原版系统—Windows XP

*******************************************************************************************************Update Rollup 2 for Windows XP Media Center Edition 2005 (Simplified Chinese)包括: Media Center文件

jatqdfei的专栏 6176

Jetson agx Orin 适配Xenomai4

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

xiaoning132的专栏 465

第3章: MMU Interval Notifier 区间通知器的核心原理⭐

摘要:区间级内存通知机制分析 本文分析了Linux内核中区间级内存通知机制(mmu_interval_notifier)的设计原理与实现。该机制针对传统全局通知(mmu_notifier)存在的性能开销大、无法精确控制等问题,通过引入区间树(Interval Tree)实现精确匹配,仅当内存变化与注册区间重叠时才触发回调。核心优势包括:1)O(log n + k)的高效查找性能;2)支持独立管理各内存区间;3)实现高并发处理不同区间的失效事件。

图形/计算GPU的驱动与虚拟化技术分享园地 2015

Windows XP Service Packv2.0中文简体版

Windows XP Service Pack是基于Windows XP一款软件服务包,是Microsoft有史以来发布的最为重要的服务包之一,也是微软操作系统Windows XP最新系统维护补丁。

jiangmy927的博客 716

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Internet Explorer 6 Service Pack 1 累积安全更新程序 - Windows XP, Windows 2000 (KB889293)

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=3a9dbd51-4348-4ee6-9bc1-d9a1e12963echttp://download.microsoft.com/download/1/4/8/1483f31b-c987-462f-ad00-113df648a69c/IE6.0sp

[无色轨迹] @ Naxin9999 2153

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Windows-XP Service Pack 2为我们带来了什么

Windows XP Service Pack 2补丁包已经正式发布,先锋里有不少朋友可能对WINDOWS XP的最新系统补丁Service Pack 2(以下简称SP2)有些不熟悉,我就说说自己的安装过程和使用经历。从XP SP2开始研发,MS就出了无数个内测版本,网上放出的都是MS内测版本。从最初的一个内测中文版开始,到后来出的RC1 RC2 RTM2179 RTM2180,我一路升级全部安装

依然行走 1984

Windows XP Service Pack 2中弹出窗口拦截器的研究

1 引言1.1 研究背景微软公司于2004年8月份正式发布了耗资庞大的Windows XP Service Pack 2(英文版),这不是一次简单的补丁打包升级,而是融入了众多新技术的Windows系统更新。微软声称SP2解决了以往的众多系统漏洞并且大大加强了Windows的安全性。对于Web开发者来说,值得关注的是SP2在IE中加入了Pop-up(弹出窗口拦截)功能,这将影响到世界上绝大部分使用

Visit Shenzhen, Shenzhen China, Shenzhen Travel Guide 7168

WINDOWS XP sp2 Platfrom SDK下载地址

http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm XPSP2 PSDK Full Download with Local Install

小发猫 9884

Windows XP技巧全接触

Windows XP技巧全接触  一、重装Windows XP不需再激活 如果你需要重装Windows XP,通常必须重新激活。事实上只要在第一次激活时,备份好WindowsSystem32目录中的Wpa.dbl文件,就不用再进行激活的工作了。在重装Windows XP后,只需要复制该文件到上面的目录即

Keiki的专栏 2363

HP WINDOWS XP PRO SP3 OEM 中文简体完整版

 HP WINDOWS XP PRO SP3 OEM 中文简体完整版管理提醒: 本帖被 bojone 执行加亮操作(2008-05-01) [资源名称]---HP WINDOWS XP PRO SP3 OEM 完整版 [资源类型]---ISO [资源语言]---中文简体 [文件大小]---659,200,000 字节 [共享时间]---短期不定 [下载需知]---能保源的请

wuce7758的专栏 1万+

xp,windows2003卸载Windows PowerShell 1.0

网上说:Windows XP-SP2和Windows Server 2003:在添加/移除程序中,选择显示更新。删除适用于您系统的PowerShell更新: KB926139 (en-us),KB926140 (localized), KB926141 (MUI pack)· 不是很好用。但是微软给出方法,见下文:微软网站说明卸载方法: https://support.microsoft.com/

chy2z的专栏 3246

无法在 Windows XP Service Pack 2 中启动 Windows 防火墙服务

 无法在 Windows XP Service Pack 2 中启动 Windows 防火墙服务察看本文应用于的产品文章编号:892199最后修改:2007年2月8日修订:10.2重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中

windking21的专栏 2393
上一篇: 向其他进程注入代码的三种方法
下一篇: INI文件编程
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值