-lpsapi

#include <windows.h>
#include <iostream>
#include <string>
#include <psapi.h>
using namespace std;

HWND g_javawHwnd = NULL;
bool isHidden = false;

void setColor(int color)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}


BOOL CALLBACK EnumWndProc(HWND hwnd, LPARAM lParam) {
	DWORD pid = 0;
	GetWindowThreadProcessId(hwnd, &pid);

	HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pid);
	if (hProcess == NULL)
		return TRUE;

	char buf[MAX_PATH] = {0};
	GetModuleFileNameEx(hProcess, NULL, buf, MAX_PATH);
	CloseHandle(hProcess);

	string path = buf;
	if (path.find("javaw.exe") != string::npos) {
		g_javawHwnd = hwnd;
	}
	return TRUE;
}

void findMcWindow() {
	g_javawHwnd = NULL;
	EnumWindows(EnumWndProc, 0);
}

int main() {
	setColor(10);
	cout << "======== MC F10 窗口隐藏切换 ========\n";
	cout << "=     F10 :隐藏/恢复显示JAVAW      =\n";
	cout << "=====================================\n\a";
	setColor(11);
	while (true) {
		if (GetAsyncKeyState(VK_F10) & 0x8000) {
			findMcWindow();
			if (g_javawHwnd != NULL) {
				if (!isHidden) {
					ShowWindow(g_javawHwnd, SW_HIDE);
					isHidden = true;
					cout << "[已隐藏] javaw 窗口\n";
				} else {
					ShowWindow(g_javawHwnd, SW_SHOW);
					isHidden = false;
					cout << "[已恢复] javaw 窗口\n";
				}
			}
			Sleep(400);
		}
		Sleep(15);
	}
	return 0;
}