如何注册反注册系统服务

[镜像制作]Ubuntu设置iserver服务开机自启动 在制作云环境的镜像时,有时候我们可能使用某个镜像创建几十个实例,如果镜像有某一个环节没有考虑周全,可能就会加大很多工作量,例如我们制作一个iserver的Ubuntu环境的镜像,前面博客已经介绍了怎么在该环境下进行安装,但是关于iserver的服务和许可是需要我们手动启动的,但是在实际云环境中,不可能让人工对几十个iserver实例都进行重复操作,所以就需要将iserver的开机自启动功能实现。 阅读详情

//注册

BOOL Install(char *szServiceName)
{
 if (IsInstalled())
  return TRUE;

 //打开服务控制管理器
 SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
 if (hSCM == NULL)
 {
  MessageBox(NULL, _T("Couldn't open service manager"), szServiceName, MB_OK);
  return FALSE;
 }

 // Get the executable file path
 TCHAR szFilePath[MAX_PATH];
 ::GetModuleFileName(NULL, szFilePath, MAX_PATH);

 char szDependence[100];
 strcpy_s(szDependence, sizeof(szDependence), "MSSQL$SQLEXPRESS");//表示该服务对SQLServer的依赖

 //创建服务
 SC_HANDLE hService = ::CreateService(
  hSCM, szServiceName, szServiceName,
  SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS,
  SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,
  szFilePath, NULL, NULL, _T(""), NULL, NULL);

 if (hService == NULL)
 {
  ::CloseServiceHandle(hSCM);
  MessageBox(NULL, _T("Couldn't create service"), szServiceName, MB_OK);
  return FALSE;
 }

 ::CloseServiceHandle(hService);
 ::CloseServiceHandle(hSCM);
 return TRUE;
}

 

//反注册

BOOL Uninstall(char *szServiceName)
{
 if (!IsInstalled())
  return TRUE;

 SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

 if (hSCM == NULL)
 {
  MessageBox(NULL, _T("Couldn't open service manager"), szServiceName, MB_OK);
  return FALSE;
 }

 SC_HANDLE hService = ::OpenService(hSCM, szServiceName, SERVICE_STOP | DELETE);

 if (hService == NULL)
 {
  ::CloseServiceHandle(hSCM);
  MessageBox(NULL, _T("Couldn't open service"), szServiceName, MB_OK);
  return FALSE;
 }
 SERVICE_STATUS status;
 ::ControlService(hService, SERVICE_CONTROL_STOP, &status);

 //删除服务
 BOOL bDelete = ::DeleteService(hService);
 ::CloseServiceHandle(hService);
 ::CloseServiceHandle(hSCM);

 if (bDelete)
  return TRUE;

 return FALSE;
}

 

先贴上试试,下回再加注释。还会加上启动服务和停止服务的部分

别再混淆了!一文彻底搞懂STM32的BootROM、BootLoader和启动模式(附启动流程图) 本文深入解析STM32的启动机制,详细讲解BootROM、BootLoader与启动模式的区别与联系,并提供实战指南。通过清晰的启动流程图和配置示例,帮助开发者彻底理解STM32启动流程,解决常见的启动问题,提升嵌入式开发效率。 阅读详情

相关推荐

24GHz雷达DIY呼吸监测仪:用树莓派+TI IWR6843搭建生命体征检测系统(附Python代码)

本文详细介绍了如何利用树莓派和TI IWR6843毫米波雷达模块DIY非接触式呼吸监测仪。通过硬件选型、信号处理流水线设计和实时可视化系统搭建,实现高精度的生命体征检测,特别适合医疗健康和运动监测场景。附带的Python代码帮助开发者快速复现该系统。

rl6adventurer的博客 985

Registers

PSW:用于记录当前处理器的状态和控制指令的执行顺序,并且保留与运行程序相关的各种信息,主要作用是实现程序状态的保护和恢复。 PC:

计算机系秃头少女的博客 662

常规波束形成——时域波束形成、频域波束形成

本文介绍了波束成形,包括时域波束成形和频域波束成形,并解释了在实现过程可能存在疑惑的相位补偿。

Candy_Editor的博客 3661

注册与反注册

regsvr32 /u 文件路径名 反注册regsvr32 文件路径名 注册原理:在控件自身的编写中,有两个globals方法:DllRegisterServer -- 实现注册功能DllUnRegisterServer --实现反注册功能注册,反注册实际上只是调用这两个功能而已。 ================================= 转载于:http...

dizi9750的博客 661

基于STM32的电子时钟设计

基于STM32的电子时钟设计1、设计目的2、设计具体要求3、proteus仿真图4、程序代码 1、设计目的 (1)掌握使用KEIL MDK5进行软件开发的具体流程; (2)掌握硬件电路的设计方法; (3)掌握STM32微控制器的程序设计及代码编写方法。 2、设计具体要求 (1)通过STM32自带的实时时钟功能获取时间信息; (2)在OLED显示屏上显示日期、时、分、秒等时间信息; (3)通过按键可对时间信息进行修改; (4)具有闹钟设定功能; (5)加分项:自行增加其他功能。 3、proteus仿真图 4

唯一的博客 2万+

ResNet改进(45):结合通道混洗(ShuffleNet)的混合架构

本文提出了一种创新的卷积神经网络(CNN)架构CustomResNet,它将ResNet34与通道混洗(ChannelShuffle)技术相结合。该模型通过ShuffleBlock模块替换原始ResNet层,包含三个核心组件:1) ChannelShuffle模块实现通道分组混洗;2) ShuffleBlock模块整合点卷积、分组卷积和残差连接;3) CustomResNet主模型保持ResNet整体架构但替换核心层为ShuffleBlock。这种设计既保留了ResNet的残差学习能力,又通过通道混洗增强特

2401_82355416的博客 211

VS2010 .net Windows服务程序 重复性 注册反注册

编写这种服务程序,调试起来非常的麻烦,而且每次有所变化后,还得频繁的去执行installutil和installutil /u命令,实际上,通过编写一些“生成事件”来大大简化这其中的烦琐工作.这里,我们在“生成事件”里编写如下事件:“编辑预先生成事件”或“编辑后期生成事件”if $(ConfigurationName) == Release goto endif exist "$(ProjectD...

weixin_34062469的博客 206

微信8.0所有URL Scheme大全:隐藏入口与使用场景详解 内附195条微信URL Scheme

URL Scheme 类似于一个协议地址,它的作用和网页的https://差不多,只不过它不是打开网页,而是直接跳转到微信App内部的功能页面。→ 打开微信扫一扫→ 打开零钱通详情→ 打开微信面对面支付微信功能的“快捷指令”。整理下来,微信的 URL Scheme 基本覆盖了支付、联系人、扫一扫、小程序、运动设备等多个入口。对开发者来说,这些 Scheme 就像是隐藏的快捷通道,在某些场景(比如支付唤起、活动红包、客服入口)能大大简化流程。微信对外部调用限制非常严格。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2192

驱动开发:内核监控Register注册表回调

中实现了对注册表的枚举,本章将实现对注册表的监控,不同于32位系统在64位系统中,微软为我们提供了两个针对注册表的专用内核监控函数,通过这两个函数可以在不劫持内核API的前提下实现对注册表增加,删除,创建等事件的有效监控,注册表监视通常会通过。其中对于注册表最常用的监控项为以下几种类型,当然为了实现监控则我们必须要使用之前,如果使用之后则只能起到监视而无法做到监控的目的。需传入三个参数,参数一回调函数地址,参数二空余,参数三回调句柄,微软定义如下。,那么只有当注册表被创建才会拦截,此时就会变成拦截创建。

微软技术分享 1万+

YOLO11 Backbone改进:二值化、三值化权重实战(一)

本文介绍了二值化/三值化神经网络的基本概念、优势挑战及应用场景。二值化网络将权重限制为±1,三值化则增加0值,显著减少模型存储需求和计算复杂度。虽然存在精度下降等挑战,但通过技术改进已能在移动设备、自动驾驶等领域应用。文章分析了YOLO11中适合量化的层,并详细阐述了二值化权重原理及Straight-Through Estimator等关键技术。二值化/三值化神经网络为资源受限设备提供了高效的深度学习解决方案。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 298

高通平台开发系列讲解(USB篇)MBIM协议详解

📢本文主要介绍高通平台USB网卡MBIM协议。

内核笔记 5440

注册表Registry

注册表(Registry)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。早在Windows 3.0推出OLE技术的时候,注册表就已经出现。随后推出的Windows NT是第一个从系统级别广泛使用注册表的操作系统。但是,从MicrosoftWindows 95操作系统开始,注册表才真正成为Windows用户经常接触的内容,并在其后的操作系统中继续沿用至...

顺其自然~专栏 2444

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案

AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉

ai技术增长的博客 161

WIN2K下COM组件的反注册方法

 WIN2K下COM组件的反注册方法 大家在编写ASP或VB应用程序时经常会用到COM组件。但是组件的个数或版本写多了,机器上注册的组件就会非常混乱。有时甚至都不知道程序调用的是那个版本的组件。下面就向大家介绍几种可以彻底清除系统中已经注册的组件的方法。一.            如何知道系统中有哪些组件已经被注册。有两个办法:1.用Windows的组件服务。在WIN2K的

tanliyoung的专栏 1125

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

WIN2K下COM组件的反注册方法。

 大家在编写ASP或VB应用程序时经常会用到COM组件。但是组件的个数或版本写多了,机器上注册的组件就会非常混乱。有时甚至都不知道程序调用的是那个版本的组件。下面就向大家介绍几种可以彻底清除系统中已经注册的组件的方法。一.            如何知道系统中有哪些组件已经被注册。有两个办法:1. 用Windows的组件服务。在WIN2K的管理工具中打开组件服务。展开“我的电脑

cyberbow的专栏 1053

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WIN2K下COM组件的反注册方法。 (转)

WIN2K下COM组件的反注册方法。 (转)[@more@] 大家在编写ASP或VB应用程序时经常会用到COM组件。但是组件的个数或版本写多了,机器上注册的组件就会非常混乱。有时甚至都不知道程序调用的是那个版本的组件。下面...

csd3176的博客 88

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

oracle 日志注册,注册oracle日志库

1 功能描述日志中心可以存放日志数据信息,缓解业务数据中心的容量,提供系统性能。当数据库服务器与应用服务器分开部署时,日志中心注册便于将存放在数据库服务器上的日志中心注册到应用服务器上。金蝶云支持注册Oracle日志库,另外,还提供了反注册功能,当不再使用该日志中心时,可以反注册该日志中心。功能路径【数据中心列表】2 字段说明数据中心名称:选择注册日志中心所属的数据中心;数据库服务器:定义当前数据...

weixin_42175971的博客 235

数据中心反注册

一般没有用的数据中心直接进入后台管理控制台后,选择数据中心,然后选中你所需要删除的数据中心先反部署,然后进行反注册即可。如果不行的话,点击工具菜单,选择部署应用,选择所要删除的数据中心所在的服务器,然后下一步,直到第三部,可以选中您所要删除的数据中心,然后进行反注册即可。

cymyell的专栏 624

regsvr32

一、字面理解,为什么是这几个字母 regsvr32 先从字面拆解一下 : reg:register注册英文单词的缩写 svr :server(服务 或者服务器,在这里指服务) 32:system32 regsvr32:就是注册服务到系统(system32) 二、它是用来干啥的 用于注册COM组件,是Windows系统提供的用来向系统注册控件或者卸载控件的命令 用于注册动态链接库文件(.dll文件) 三、相关命令要了解 /u 反注册控件 /s 指定 regsvr32 安静运行,在成功注册/反注册DLL文件

Mimo_YY的博客 4897

服务发现和注册

健康检查ZK:客户端和服务器端进行长链接,其中有一个全局唯一的SessionId,在连接期间,根据客户端定时向服务器端发送心跳信息,假如超过 SESSION_TIMEOUT的时间,zk标记这个服务节点不可用,并且在注册中心把它删除;2.消费者:根据xml配置文件,向Registry订阅服务,把Register返回的服务节点保存在本地内存,并且和生产者链接;3.注册中心:提供者的节点发生变化的时候,Registry会同步更新,client 感知到变化之后也会刷新自己的缓存列表。集群部署,保证了高可用。

cishuyin0615的博客 585

如何隐藏网上邻居里的本地连接图标

如何隐藏网上邻里的本地连接图标第一种方法:依次单击“开始”/“运行”命令,在弹出的系统运行文本框中,输入“services.msc”字符串命令,单击回车键后打开系统的服务列表窗口(你还可以鼠标右击“我的电脑”-点击“管理”-找到“服务和应用程序”中的“服务”打开便是),从中找到“Plugandplay”服务选项,并用鼠标双击该服务选项,打开该服务的属性设置窗口,在该设置...

weixin_33922672的博客 280

看到这个应用上下线方式,不禁感叹:优雅,太优雅了!

本文讲述基于Sermant Agent接入的SpringCloud应用实现优雅上下线功能。

华为云官方博客 1264

eureka hostname作用_SpringCloud五大神兽之Eureka

注册中心概述什么是注册中心?相当于服务之间的‘通讯录’,记录了服务和服务地址之间的映射关系。在分布式架构中服务会注册到这里。当服务需要调用其他服务时,就在注册中心找到其他服务的地址,进行调用注册中心的主要作用?注册中心一般有以下的功能:服务发现服务注册/反注册:保存服务提供者和调用者的关系服务订阅/取消订阅:服务调用者订阅服务提供者的信息服务路由:筛选整合服务提供者服务配置配置订阅:服务提供者和消...

weixin_29019241的博客 170

ASP漏洞防范

开始------->运行--------->Regedit,打开注册表编辑器,按Ctrl+F查找,依次输入以上Wscript.Shell等组件名称以及相应的ClassID,然后进行删除或者更改名称(这里建议大家更名,如果有部分网页ASP程序利用了上面的组件的话呢,只需在将写ASP代码的时候用我们更改后的组件名称即可正常使用。3 按照上1、2方法对ASP类危险组件进行处理后,用阿江的asp探针测试了一下,"服务器CPU详情"和"服务器操作系统"根本查不到,内容为空白的。开始操刀,come on...

Hacker_LaoYi的博客 498

使用 kqueue 在 FreeBSD 上开发高性能应用服务器

http://www.ibm.com/developerworks/cn/aix/library/1105_huangrg_kqueue/#icomments 使用 kqueue 在 FreeBSD 上开发高性能应用服务器 本文向您讲解了 kqueue 如何控制 FreeBSD 系统上的 socket IO。通过此文章,读者可以在实际工作中运用 kqueue 技术。  

cjsycyl的专栏 690

ContentObserver监听系统属性变化

ContentObserver监听系统属性变化 有时候我们需要监听系统属性变化,或者通过修改系统属性的值来通知其它应用做相应的操作。 以无障碍服务的属性为例,通过ContentObserver监听其变化:Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES 1、新建MyContentObserver.java类继承ContentObserver; import android.database.ContentObserver; import android.os.H

feng海涛 3605
finalwish
博客等级 码龄26年 2粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值