#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);
if (style & MDIS_ALLCHILDSTYLES)
{
g_hwnd = hwnd;
return FALSE;
}
return TRUE;
}
BOOL CALLBACK enum_child2(HWND hwnd, LPARAM lp)
{
static char buffer[200]{ 0 };
GetWindowTextA(hwnd, buffer, 200);
if (std::string{ buffer } == "设备管理器")
{
g_hwnd = hwnd;
return FALSE;
}
return TRUE;
}
BOOL CALLBACK enum_child3(HWND hwnd, LPARAM lp)
{
LONG style = GetWindowLongA(hwnd, GWL_STYLE);
BOOL state = style & CCS_NODIVIDER;
if (state == FALSE)
{
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;
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;
{
int code = SendMessageA(g_hwnd, TVM_GETCOUNT, 0, 0);
SendMessageA(g_hwnd, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT);
cout << "[+] 操作中 : " << code << endl;
Sleep(1);
}
}
int main(int argc, char* argv[])
{
hide();
system("pause");
return 0;
}