系统相关功能开发(六)-桌面相关
来源:互联网 发布:知乎一句话个人介绍 编辑:程序博客网 时间:2024/06/10 20:16
1.获取桌面对话框
2.获取任务栏对话框句柄
void CDesktopSampleDlg::OnButtonGetBar()// 获取任务栏对话框句柄{HWND hWinBar = ::FindWindow("Shell_TrayWnd","");// 获取任务栏对话框if(hWinBar != NULL)WriteLog("获取任务栏窗口句柄成功=0x%08X", hWinBar);// 输出信息else WriteLog("获取任务栏窗口句柄失败");// 输出错误信息}
3.获取桌面列表视图句柄
void CDesktopSampleDlg::OnButtonGetDesklist()// 获取桌面列表视图句柄{HWND hDeskWnd = ::FindWindow("Progman",NULL);// 获取桌面程序对象if(hDeskWnd == NULL)// 如果获取失败{WriteLog("获取桌面句柄失败。");return;// 显示错误信息并返回}HWND hSubDeskWnd=::GetDlgItem(hDeskWnd, 0L);// 获取桌面对象中的第一个对象if(hSubDeskWnd == NULL)// 如果获取失败{WriteLog("获取桌面窗体中的对象失败。");return;// 显示错误信息并返回} HWND hDeskList=::GetDlgItem(hSubDeskWnd, 1L);// 获取桌面对象中的第一个对象的第二个对象if(hDeskList == NULL)// 如果获取失败{WriteLog("获取桌面窗体中的对象失败。");return;// 显示错误信息并返回}WriteLog("获取桌面列表视图句柄成功=0x%08X", hDeskList);// 输出获取的信息}
4.获取任务栏属性
void CDesktopSampleDlg::OnButtonGettoolbarpro()// 获取任务栏属性{ if(FAILED(CoInitialize(NULL)))// 初始化COM工作环境{WriteLog("初始化COM工作环境失败");return;// 显示错误信息并返回}IShellDispatch* pShellDispatch=NULL;// 定义IShellDispatch接口变量if(SUCCEEDED(CoCreateInstance(CLSID_Shell,NULL,CLSCTX_INPROC_SERVER, IID_IDispatch,(LPVOID*)&pShellDispatch))) {// 创建IShellDispatch实例if(SUCCEEDED(pShellDispatch->TrayProperties())) WriteLog("显示任务栏属性窗口成功");// 显示成功信息else WriteLog("显示任务栏属性窗口失败");// 显示错误信息}else WriteLog("创建IShellDispatch接口实例失败");// 显示错误信息CoUninitialize();// 释放COM工作环境}
5.隐藏和显示桌面图标
void CDesktopSampleDlg::OnButtonHideDesktop()// 隐藏桌面文件{HWND hDeskWnd = ::FindWindow("Progman",NULL);// 获取桌面文件句柄if(hDeskWnd!=NULL)::ShowWindow(hDeskWnd, SW_HIDE);// 隐藏桌面文件}void CDesktopSampleDlg::OnButtonShowDesktop()// 显示桌面文件{HWND hDeskWnd = ::FindWindow("Progman",NULL);// 获取桌面文件句柄if(hDeskWnd!=NULL)::ShowWindow(hDeskWnd, SW_SHOW);// 显示桌面}
6.隐藏和显示Windows任务栏
void CDesktopSampleDlg::OnButtonHideBar()// 隐藏任务栏{HWND hWinBar = ::FindWindow("Shell_TrayWnd","");// 获取任务栏句柄if(hWinBar!=NULL)::ShowWindow(hWinBar, SW_HIDE);// 隐藏任务栏}void CDesktopSampleDlg::OnButtonShowBar()// 显示任务栏{HWND hWinBar = ::FindWindow("Shell_TrayWnd","");// 获取任务栏句柄if(hWinBar!=NULL)::ShowWindow(hWinBar, SW_SHOW);// 显示任务栏}
7.隐藏和显示“开始”按钮
void CDesktopSampleDlg::OnButtonShowStart()// 显示开始按钮{ HWND hWinBar = ::FindWindow("Shell_TrayWnd","");// 获取任务栏句柄 if(hWinBar!=NULL) { HWND hMenu = ::FindWindowEx(hWinBar, 0, "Button", NULL);// 获取开始按钮句柄 if(hMenu!=NULL)::ShowWindow(hMenu, SW_SHOW);// 显示开始按钮 else WriteLog("获取开始按钮对话框句柄失败");// 输出错误信息 } else WriteLog("获取Windows任务栏句柄失败");// 输出错误信息}void CDesktopSampleDlg::OnButtonHideStart()// 隐藏开始按钮{ HWND hWinBar = ::FindWindow("Shell_TrayWnd","");// 获取任务栏句柄 if(hWinBar!=NULL) { HWND hMenu = ::FindWindowEx(hWinBar, 0, "Button", NULL);// 获取开始按钮句柄 if(hMenu!=NULL)::ShowWindow(hMenu, SW_HIDE);// 隐藏开始按钮 else WriteLog("获取开始按钮对话框句柄失败");// 输出错误信息 } else WriteLog("获取Windows任务栏句柄失败");// 输出错误信息}
8.隐藏和显示任务栏时钟
void CDesktopSampleDlg::OnButtonHideClock()// 隐藏任务栏时钟{HWND hWinBar = ::FindWindow("Shell_TrayWnd",NULL);// 获取任务栏句柄if (hWinBar != NULL)// 如果成功,则{HWND hNotifyWnd = ::FindWindowEx(hWinBar, 0, "TrayNotifyWnd",NULL);// 获取通知托盘句柄if (hNotifyWnd != NULL)// 如果成功,则{HWND hClockWnd = ::FindWindowEx(hNotifyWnd, 0, "TrayClockWClass", NULL);// 获取时钟句柄if(hClockWnd!=NULL)::ShowWindow(hClockWnd, SW_HIDE);// 如果成功,则隐藏时钟else WriteLog("获取时钟句柄失败");// 显示错误信息}else WriteLog("获取通知托盘句柄失败");// 显示错误信息}else WriteLog("获取任务栏句柄失败");// 显示错误信息}void CDesktopSampleDlg::OnButtonShowClock()// 显示任务栏时钟{HWND hWinBar = ::FindWindow("Shell_TrayWnd",NULL);// 获取任务栏句柄if (hWinBar != NULL)// 如果成功,则{HWND hNotifyWnd = ::FindWindowEx(hWinBar, 0, "TrayNotifyWnd",NULL);// 获取通知托盘句柄if (hNotifyWnd != NULL)// 如果成功,则{HWND hClockWnd = ::FindWindowEx(hNotifyWnd, 0, "TrayClockWClass", NULL);// 获取时钟句柄if(hClockWnd!=NULL)::ShowWindow(hClockWnd, SW_SHOW);// 如果成功,则显示时钟else WriteLog("获取时钟句柄失败");// 显示错误信息}else WriteLog("获取通知托盘句柄失败");// 显示错误信息}else WriteLog("获取任务栏句柄失败");// 显示错误信息}
9.判断屏幕保护程序是否在运行
void CDesktopSampleDlg::OnButtonSaverscreenRunning()// 判断屏幕保护程序是否在运行{HDESK hDesktop;// 定义桌面句柄 hDesktop = OpenDesktop(TEXT("screen-saver"), 0, FALSE, MAXIMUM_ALLOWED );// 打开桌面屏保程序 if(hDesktop == NULL)// 如果返回的句柄无效,则{if(GetLastError() == ERROR_ACCESS_DENIED)// 如果返回ERROR_ACCESS_DENIED错误=屏保正在运行WriteLog("屏保正在运行");// 输出信息提示else WriteLog("没有运行屏保");// 否则=屏保没有运行}else// 如果返回的句柄有效=屏保正在运行{WriteLog("屏保正在运行");// 输出信息提示CloseDesktop(hDesktop);// 关闭桌面}}
10.判断是否使用大字体
void CDesktopSampleDlg::OnButtonGetFont()// 判断系统是否使用大字体{HWND hWnd = ::GetDesktopWindow();// 获取桌面句柄if (hWnd != NULL)// 如果成功,则{HDChDC = ::GetWindowDC(hWnd);// 获取桌面上下文if (hDC != NULL)// 如果成功,则{intiOldMode = SetMapMode(hDC, MM_TEXT);// 设置上下文映射模式 TEXTMETRIC tm;// 定义字体结构变量if (GetTextMetrics(hDC,&tm))// 获取桌面上下文字体信息{SetMapMode(hDC,iOldMode);// 恢复桌面上下文的映射模式::ReleaseDC(hWnd,hDC);// 释放上下文资源if (tm.tmHeight > 16)// 使用大字体WriteLog("系统使用的是大字体,大小=%d", tm.tmHeight);else WriteLog("系统使用的不是大字体,大小=%d", tm.tmHeight); // 没有使用大字体}else WriteLog("获取字体信息失败");// 输出错误信息}else WriteLog("获取桌面上下文失败");// 输出错误信息}else WriteLog("获取桌面句柄失败");// 输出错误信息}
11.改变桌面背景颜色
void CDesktopSampleDlg::OnButtonSetBackgroud()// 改变桌面背景颜色{if (SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "River Sumida.jpg", 0))// 修改桌面背景WriteLog("设置桌面背景成功");// 输出提示信息else WriteLog("设置桌面背景失败");// 输出错误信息}
阅读全文
0 0
- 系统相关功能开发(六)-桌面相关
- 系统相关功能开发(八)-消息
- 系统相关功能开发(九)-剪贴板
- 系统相关功能开发(三)-系统控制与调用
- 系统相关功能开发(五)-系统工具
- 系统相关功能开发(七)-系统信息
- 系统相关功能开发(二)-磁盘操作
- 系统相关功能开发(一)-获取磁盘信息
- 系统相关功能开发(四)-应用程序操作
- 系统相关功能开发(十)-鼠标键盘
- 调用系统相关功能
- Swift UITableView相关功能(六)头视图的高度
- 浏览器相关功能系统调用
- 车载系统的相关功能
- Android热点相关功能开发
- gnome桌面环境相关
- 系统功能显示相关的设置
- Scala讲座:类型系统和相关功能
- SpringBoot入门-热部署spring-boot-devtools方式
- java中子类继承父类代码运行顺序
- webpack2+node+react+babel实现热加载(hmr)
- 地牢逃脱-网易python(走迷宫BFS)
- java及android中常用到的链式调用写法
- 系统相关功能开发(六)-桌面相关
- 线段树知识点理解及其模板代码
- 正则表达式详解
- centos7查看操作系统信息
- CSS3的calc()
- Python学习
- iOS 画板、涂鸦
- D08 MapReduce编程思想
- 多进程写入文件