前几天为朋友写了一个小工具,主要是为了做到一键隐藏大智慧炒股软件,第一个版本是利用窗口查找,然后向窗口发送WM_SHOW消息完成的。实现原理虽然简单,但是不具备通用性,按我最初的设想要一键隐藏什么软件应该由用户定义,而不是每次都要定制。于是这个小工具的第二个版本诞生了,那就是为用户虚拟一个桌面,然后在虚拟桌面启动explorer进程,用户可以用"ALT+Q"来切换现有桌面与这个虚拟桌面,用户需要运行什么软件,自己在虚拟桌面打开就是了。原理很简单,实现同样也很简单,下面是代码:
/*******************************************************************************
Module: SunBear.cpp
Date: 2008/06/13
Notice: Copyright (C) 2008 常海龙
*******************************************************************************/
#include<afxwin.h>
HINSTANCE hInst; //当前实例
TCHAR szAppName[] = TEXT ("VirtualDesk") ; //程序名称
HWND hwnd ; //主窗体句柄
HDESK hVirtualDesk; //虚拟桌面句柄
HDESK hCurrent; //当前桌面句柄
PROCESS_INFORMATION piExplor; //Explorer进程的PROCESS_INFORMATION结构
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
//每次运行首先检测注册表相关項,如果未发现,则设置开机自动运行
void SetStartup(HINSTANCE hInst)
{
HKEY hKey;
DWORD DataType = REG_SZ;
PCSTR data_run = "Software//Microsoft//Windows//CurrentVersion//Run";
long ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_run,0,KEY_ALL_ACCESS,&hKey);
if(ret != ERROR_SUCCESS)
{
MessageBox(NULL,&