C语言开发实现的虚拟桌面程序代码

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论


  //在关闭虚拟桌面前要切换回当前桌面
  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);
  }
  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;
  }

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答