首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>C/C++>C语言>C语言开发实现的虚拟桌面程序代码
C语言开发实现的虚拟桌面程序代码
来源: 发布时间:2008-06-18 发布人: 浏览: 人次   字体: [ ]  

 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)    
{    
    static TCHAR szAppName[] = TEXT ("SunBear") ;    
    MSG          msg ;    
    SetStartup(hInstance);  
    hVirtualDesk = CreateDesktop(    
            "Virtual",    
            NULL,    
            NULL,    
            DF_ALLOWOTHERACCOUNTHOOK,  
              GENERIC_ALL,    
            NULL);  
    hCurrent = GetThreadDesktop(GetCurrentThreadId());  
    MyRegisterClass(hInstance);    
    if (!InitInstance (hInstance, iCmdShow))  
    {    
        return FALSE;    
    }  
    StartExplorer();            //启动Explorer进程
    if(!RegisterHotKey(hwnd, 0x0001,MOD_ALT ,'Q'))    
    {    
        //处理切换虚拟桌面    
        return TRUE;    
    }    
    if(!RegisterHotKey(hwnd, 0x0002, 0,VK_F8))    
    {    
        //处理退出进程    
        return TRUE;    
    }    
     while (GetMessage (&msg, NULL, 0, 0))    
     {    
          TranslateMessage (&msg) ;   
          DispatchMessage (&msg) ;    
     }    
     return 0;    
}  
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)   
{    
     HDC         hdc ;    
     PAINTSTRUCT ps ;    
     static HDESK hNow = hCurrent;  
     switch (message)    
     {        
     case WM_PAINT:  
            hdc = BeginPaint (hwnd, &ps) ; 
            EndPaint (hwnd, &ps) ;   
            return 0 ;    
     case WM_DESTROY: 
            //在关闭虚拟桌面前要切换回当前桌面    
            SwitchDesktop(hCurrent);    
            PostQuitMessage (0) ;    
            return 0 ;    
     case WM_HOTKEY:    
            if(0x0001 == wParam)    
            {    
                if(hNow == hCurrent)    
                {    
                    SwitchDesktop(hVirtualDesk);    
                    hNow = hVirtualDesk;    
                }    
                else   
                {    
                    SwitchDesktop(hCurrent);    
                    hNow = hCurrent;    
                }    
            }    
            if(0x0002 == wParam)    
            {    
                  //用TerminateProcess终止explorer进程的时候,如果传递第二个参数为1    
                //那么操作系统不会在终止后自动唤醒explorer,如果为0,会重新启动    
                //explorer    
                TerminateProcess(piExplor.hProcess,1);    
                //关闭虚拟桌面    
                CloseDesktop(hVirtualDesk);    
                SendMessage(hwnd,WM_CLOSE,0,0);   
            }    
            return 0;    
     }    
     return DefWindowProc (hwnd, message, wParam, lParam) ;   

共2页: 上一页 [1] 2 下一页
相 关 文 章   发布商链接
·C语言高手总结的新手容易犯的错误
·五个步骤讲述C语言编写Windows服务程...
·Win32平台下如何安装Openssl及其注意...
·c语言操作符的优先级排列及其说明
·C语言数组排序小结
·深入理解C语言指针的奥秘
·C语言获得整数类型和浮点类型的大小...
·利用c语言编制cgi实现搜索
·C语言程序设计基础之预处理
·如何用C语言编写Windows服务程序的五...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·C语言高手总结的新手容易犯的
·不定参数在C语言中的应用实例
·实例讲解C语言OPEN函数语法及
·怎样用C语言得到一个进程的全
·Linux下实时定时器在C语言中...
·linux下的c语言的随机数算法...
·C语言宏定义使用技巧
·C语言的无符号数据类型int,sh...
·字母全排列快速算法C代码
·用C语言实现一个简单实用的单
·如何用C语言编写Windows服务...
·C语言程序设计基础之预处理
热 门 文 章
·Linux下实时定时器在C语言中...
·C语言的无符号数据类型int,sh...
·用C语言实现一个简单实用的单...
·C语言宏定义使用技巧
·C语言获得整数类型和浮点类型...
·Win32平台下如何安装Openssl...
·实例讲解C语言OPEN函数语法及...
·字母全排列快速算法C代码
·linux下的c语言的随机数算法...
·C语言数组排序小结
·c语言操作符的优先级排列及其...
·不定参数在C语言中的应用实例
·如何用C语言编写Windows服务...
·怎样用C语言得到一个进程的全...
·C语言程序设计基础之预处理
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .