C++隐藏任务栏和桌面

VS2010新建控制台空工程,加入C++代码:

#include <stdio.h>
#include <windows.h>

int main(int argc, char* argv[])
{
	HWND desktop,task;
	desktop=FindWindow(L"ProgMan",NULL);
	task=FindWindow(L"Shell_TrayWnd",NULL);
	ShowWindow(task,SW_HIDE);//隐藏任务栏
	ShowWindow(desktop,SW_HIDE);//隐藏桌面
	Sleep(3000);
	ShowWindow(task,SW_SHOW);//显示
	ShowWindow(desktop,SW_SHOW);//显示
	return 0;
}

运行后,任务栏消失了,3秒后又出现了。

在Windows操作系统中,直接从C++代码里隐藏桌面任务栏通常是不可能的,因为这是操作系统的功能,不是通过编程接口可以控制的。但是,你可以改变窗口的特性使其看起来像是完全占据了屏幕,这通常用于全屏应用程序或者模拟隐藏任务栏的效果。 如果你想要创建一个假象,让窗口占据整个屏幕并禁止用户调整系统设置(如任务栏),你可以尝试使用一些库,比如DirectX或WinAPI来间接实现类似的效果。以下是一个简化的例子,展示了如何使用C++Windows API来创建一个全屏窗口: ```cpp #include <windows.h> #include <iostream> LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_SIZE: // 调整窗口大小时保持与屏幕同步 if (!IsIconic(hWnd)) { SetWindowPos(hWnd, HWND_TOP, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), SWP_NOMOVE | SWP_NOZORDER); } break; case WM_SYSCOMMAND: // 按下显示桌面键时,我们不做任何处理,任务栏会正常显示 if (wParam == SC_SCREENSAVE) { return DefWindowProc(hWnd, message, wParam, lParam); } break; // 其他窗口消息... default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } int main() { WNDCLASS wc = {}; wc.lpfnWndProc = WndProc; wc.hInstance = GetModuleHandle(NULL); wc.lpszClassName = "HiddenTaskbar"; RegisterClass(&wc); HWND hWnd = CreateWindow(wc.lpszClassName, L"Hidden Taskbar", WS_POPUP, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), NULL, NULL, wc.hInstance, NULL); ShowWindow(hWnd, SW_SHOW); // 显示窗口 UpdateWindow(hWnd); // 更新窗口 MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } UnregisterClass(wc.lpszClassName, wc.hInstance); return static_cast<int>(msg.wParam); }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值