隐藏设备管理器控件

#include <Windows.h>
#include <commctrl.h>

#include <iostream>
#include <string>

using namespace std;

HWND g_hwnd = nullptr;

BOOL CALLBACK enum_child1(HWND hwnd, LPARAM lp)
{
	LONG style = GetWindowLongA(hwnd, GWL_STYLE);
	//cout << "[+] 窗口样式为 : " << style << endl;

	if (style & MDIS_ALLCHILDSTYLES)
	{
		//cout << "[+] 发现目标" << endl;
		g_hwnd = hwnd;
		return FALSE;
	}

	return TRUE;
}

BOOL CALLBACK enum_child2(HWND hwnd, LPARAM lp)
{
	static char buffer[200]{ 0 };
	GetWindowTextA(hwnd, buffer, 200);
	//cout << "[+] 窗口标题为 : " << buffer << "  句柄为 : " << hwnd << std::endl;

	if (std::string{ buffer } == "设备管理器")
	{
		//cout << "[+] 发现目标" << std::endl;
		g_hwnd = hwnd;
		return FALSE;
	}

	return TRUE;
}

BOOL CALLBACK enum_child3(HWND hwnd, LPARAM lp)
{
	LONG style = GetWindowLongA(hwnd, GWL_STYLE);
	//cout << "[+] 窗口样式为 : " << style << endl;
	//cout << "[+] 窗口句柄 : " << hwnd << endl;

	BOOL state = style & CCS_NODIVIDER;
	if (state == FALSE)
	{
		//cout << "[+] 发现目标" << endl;
		g_hwnd = hwnd;
		return FALSE;
	}

	return TRUE;
}

BOOL CALLBACK enum_child4(HWND hwnd, LPARAM lp)
{
	LONG style = GetWindowLongA(hwnd, GWL_STYLE);

	BOOL state = style & WS_VISIBLE;
	if (state)
	{
		g_hwnd = hwnd;
		return FALSE;
	}

	return TRUE;
}

BOOL CALLBACK enum_child5(HWND hwnd, LPARAM lp)
{
	LONG style = GetWindowLongA(hwnd, GWL_STYLE);

	BOOL state = style & WS_CLIPSIBLINGS;
	if (state)
	{
		g_hwnd = hwnd;
		return FALSE;
	}

	return TRUE;
}

BOOL CALLBACK enum_child6(HWND hwnd, LPARAM lp)
{
	LONG style = GetWindowLongA(hwnd, GWL_STYLE);

	BOOL state = style & TVS_LINESATROOT;
	if (state)
	{
		g_hwnd = hwnd;
		return FALSE;
	}

	return TRUE;
}

void hide()
{
	HWND h = FindWindowA("MMCMainFrame", "设备管理器");
	if (h == nullptr) return;
	cout << "[+] 设备管理器第一个窗口句柄 MMCMainFrame : " << h << endl;

	EnumChildWindows(h, enum_child1, 0);
	if (g_hwnd == nullptr) return;
	cout << "[+] 设备管理器第二个窗口句柄 MDIClient : " << g_hwnd << endl;

	EnumChildWindows(g_hwnd, enum_child2, 0);
	if (g_hwnd == nullptr) return;
	cout << "[+] 设备管理器第三个窗口句柄 MMCChildFrm : " << g_hwnd << endl;

	EnumChildWindows(g_hwnd, enum_child3, 0);
	if (g_hwnd == nullptr) return;
	cout << "[+] 设备管理器第四个窗口句柄 MMCViewWindow : " << g_hwnd << endl;

	EnumChildWindows(g_hwnd, enum_child4, 0);
	if (g_hwnd == nullptr) return;
	cout << "[+] 设备管理器第五个窗口句柄 MMCViewWindow : " << g_hwnd << endl;

	EnumChildWindows(g_hwnd, enum_child5, 0);
	if (g_hwnd == nullptr) return;
	cout << "[+] 设备管理器第六个窗口句柄 MMCViewWindow : " << g_hwnd << endl;

	// 这里和5一样的啊
	EnumChildWindows(g_hwnd, enum_child5, 0);
	if (g_hwnd == nullptr) return;
	cout << "[+] 设备管理器第七个窗口句柄 MMCViewWindow : " << g_hwnd << endl;

	EnumChildWindows(g_hwnd, enum_child6, 0);
	if (g_hwnd == nullptr) return;
	cout << "[+] 设备管理器第八个窗口句柄 MMCViewWindow : " << g_hwnd << endl;

	// OK,可以开始操作了
	//while (true)
	{
		// TreeView_DeleteAllItems(g_hwnd);
		int code = SendMessageA(g_hwnd, TVM_GETCOUNT, 0, 0);
		//TreeView_DeleteItem()
		//code = GetLastError();
		SendMessageA(g_hwnd, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT);

		//TreeView_GetCount(g_hwnd);

		cout << "[+] 操作中 : " << code << endl;
		Sleep(1);
	}
}

int main(int argc, char* argv[])
{
	hide();

	system("pause");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值