技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 1823|回复: 4
收起左侧

真正意义上的编程实现关闭Windows自动更新服务

[复制链接]

2

主题

7

帖子

78

积分

用户组: 小·技术宅

UID
587
精华
0
威望
1 点
宅币
42 个
贡献
27 次
宅之契约
0 份
在线时间
5 小时
注册时间
2014-12-11
发表于 2015-7-20 02:28:51 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
昨天在群里看Ta分享了一个关闭Windows10的自动更新服务的方法,不过使用的是Reg文件加批处理,
虽然很简单很实用。但是作为我等小菜鸟,还是崇尚装逼,把该方法用高级语言写了一遍。
[C++] 纯文本查看 复制代码
#include "stdafx.h"
#include <Windows.h>
#include <winsvc.h>
#include <stdio.h>
#include <conio.h>
BOOL Stop_Windows_UpdateData(HANDLE);
BOOL Disable_Windows_UpdateData(HANDLE);
int _tmain(int argc, _TCHAR* argv[])
{
	HANDLE  hConsole;
	hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(hConsole,0x0D);
	SetConsoleTitle(L"欢迎使用 Windows 10自动更新服务关闭工具 BY:伤城 请在管理员权限下运行!");
	printf("欢迎使用 Windows 10自动更新服务关闭工具 BY:伤城 请在管理员权限下运行!\n按任意键开始......\n");
	getch();
	if (Stop_Windows_UpdateData(hConsole) && Disable_Windows_UpdateData(hConsole))
	{
		SetConsoleTextAttribute(hConsole,FOREGROUND_GREEN);
		SetConsoleTitle(L"Windows 10自动更新服务已经成功关闭,感谢你的使用!");
		printf("\n\nWindows 10自动更新服务已经成功关闭,感谢你的使用!\n按任意键退出......\n");
		getch();
		return 0;
	}
	return 0;
}

BOOL Stop_Windows_UpdateData(HANDLE hConsole)
{
	SC_HANDLE hSCM;
	SC_HANDLE hSvc;
	BOOL bRet;
	SERVICE_STATUS status;
	hSCM = ::OpenSCManager(NULL, NULL,GENERIC_EXECUTE);
	if (!hSCM)
	{
		printf("打开服务管理器失败!错误号:%d\n按任意键退出......\n", GetLastError());
		getch();
		return FALSE;
	}
	hSvc = ::OpenService(hSCM, L"wuauserv", SERVICE_START | SERVICE_QUERY_STATUS | SERVICE_STOP);
	if (!hSvc)
	{
		printf("打开服务失败!错误号:%d\n按任意键退出......\n",GetLastError());
		getch();
		::CloseServiceHandle(hSCM);
		return FALSE;
	}
	bRet = QueryServiceStatus(hSvc, &status);
	if (!bRet)
	{
		printf("查询服务状态失败!错误号:%d\n按任意键退出......\n", GetLastError());
		getch();
		::CloseServiceHandle(hSvc);
		::CloseServiceHandle(hSCM);
		return FALSE;
	}
	if (status.dwCurrentState == SERVICE_STOPPED)
	{
		SetConsoleTextAttribute(hConsole, 0x0B);//天蓝色
		printf("服务尚未启动无需禁用!\n");
		::CloseServiceHandle(hSvc);
		::CloseServiceHandle(hSCM);
		return TRUE;

	}
	bRet = ControlService(hSvc, SERVICE_CONTROL_STOP, &status);
	if (!bRet)
	{
		printf("停止服务失败!错误号:%d\n按任意键退出......\n", GetLastError());
		getch();
		::CloseServiceHandle(hSvc);
		::CloseServiceHandle(hSCM);
		return FALSE;
	}
	while (::QueryServiceStatus(hSvc, &status) == TRUE)
	{
		::Sleep(status.dwWaitHint);
		if (status.dwCurrentState == SERVICE_STOPPED)
		{
			SetConsoleTextAttribute(hConsole, 0x0B);//天蓝色
			printf("服务停止成功!\n");
			::CloseServiceHandle(hSvc);
			::CloseServiceHandle(hSCM);
			return TRUE;
		}
	}
	
}
BOOL Disable_Windows_UpdateData(HANDLE hConsole)
{
	HKEY hKey;
	DWORD BootType=4;
	LONG lRet;
	lRet = RegOpenKey(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Services\\wuauserv\\", &hKey);
	if (ERROR_SUCCESS == lRet)
	{
		RegSetValueExA(hKey, "Start",0,REG_DWORD, (LPBYTE)&BootType, sizeof(DWORD));
		RegCloseKey(hKey);
		SetConsoleTextAttribute(hConsole, 0x0B);//天蓝色
		printf("服务禁用成功!\n");
		return TRUE;
	}
	else
	{
		printf("服务禁用失败!错误号:%d\n按任意键退出......\n", GetLastError());
		getch();
		return FALSE;
	}
}


DisableWin10UpdateData.rar (4.11 KB, 下载次数: 9)
回复

使用道具 举报

1060

主题

2443

帖子

6万

积分

用户组: 管理员

一只技术宅

UID
1
精华
221
威望
348 点
宅币
19512 个
贡献
40290 次
宅之契约
0 份
在线时间
1844 小时
注册时间
2014-1-26
发表于 2015-7-20 11:25:50 来自手机 | 显示全部楼层
咸鱼你好,咸鱼再见。虎纹咸鱼。

36

主题

161

帖子

7373

积分

用户组: 管理员

UID
77
精华
11
威望
125 点
宅币
6765 个
贡献
142 次
宅之契约
0 份
在线时间
121 小时
注册时间
2014-2-22
发表于 2015-7-20 08:33:26 | 显示全部楼层
不错,不过我觉得在BAT/VBS/REG不能解决的时候,才需要编程。

顺带贴上REG+BAT的原版:http://www.vbasm.com/blog-4158-58.html

0

主题

3

帖子

17

积分

用户组: 初·技术宅

UID
807
精华
0
威望
1 点
宅币
12 个
贡献
0 次
宅之契约
0 份
在线时间
1 小时
注册时间
2015-4-14
发表于 2015-7-20 14:04:51 | 显示全部楼层
赞一个;P
回复

使用道具 举报

0

主题

76

帖子

6735

积分

用户组: 真·技术宅

UID
604
精华
0
威望
1 点
宅币
804 个
贡献
5853 次
宅之契约
0 份
在线时间
97 小时
注册时间
2014-12-20
发表于 2015-7-20 17:13:25 | 显示全部楼层
赞一个++
回复

使用道具 举报

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图  

GMT+8, 2020-7-13 13:38 , Processed in 0.122026 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表