- gf25152 的博客
骑士(8)
- @ 2026-4-14 13:28:39
-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;
}