C 虛擬桌面

2022-04-05 06:57:21 字數 3348 閱讀 8733

c++ 開啟乙個虛擬桌面的**

看不明白的地方 請檢視demo: 

qq群:103197177 c++高階討論;歡迎喜歡程式設計朋友加入進來一起討論學習;

//

run.cpp : 定義應用程式的入口點。

//#include

"stdafx.h

"#include

"run.h

"#include

#include

"shellapi.h

"#pragma comment("lib", "shell32.lib");

#define dim(x) (sizeof(x) / sizeof(x[0]))

//全域性變數:

hinstance g_hinst = null; //

當前例項

tchar g_sztitle = text("

running

"); //

視窗名稱

tchar g_szwindowclass = text("

run-2012

"); //

主視窗類名

hwnd g_hwnd =null;

cstring g_strdirpath;

//註冊dll批處理路徑

hdesk g_hpredesk = null; //

原始桌面

hdesk g_hvirtualdesk = null; //

虛擬桌面

handle g_hevent =null;

lresult callback windowproc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam);

lresult onshowwindow (hwnd hwnd, uint umsg, wparam wparam, lparam lparam);

lresult oncreate (hwnd hwnd, uint umsg, wparam wparam, lparam lparam);

lresult ondestroy (hwnd hwnd, uint umsg, wparam wparam, lparam lparam);

lresult govirualdesk (hwnd hwnd, uint umsg, wparam wparam, lparam lparam);

lresult gopreviousdesk (hwnd hwnd, uint umsg, wparam wparam, lparam lparam);

struct

msgmap_entry

;struct msgmap_entry _messageentries =;

//此**模組中包含的函式的前向宣告:

atom myregisterclass(hinstance hinstance);

bool initinstance(hinstance,

int);

void run (void

);void gopredeskthread (void

);int winapi winmain (hinstance hinstance, hinstance hprevinstance, lpstr lpcmdline, int

ncmdshow)

msg msg;

while (getmessage(&msg, null, 0, 0

))

return

msg.wparam;

}lresult callback windowproc( hwnd hwnd, uint umsg, wparam wparam, lparam lparam)

}return

defwindowproc(hwnd, umsg, wparam, lparam);

}lresult onshowwindow (hwnd hwnd, uint umsg, wparam wparam, lparam lparam)

lresult oncreate (hwnd hwnd, uint umsg, wparam wparam, lparam lparam)

lresult ondestroy (hwnd hwnd, uint umsg, wparam wparam, lparam lparam)

postquitmessage(0);

return0;

}lresult govirualdesk (hwnd hwnd, uint umsg, wparam wparam, lparam lparam)

lresult gopreviousdesk (hwnd hwnd, uint umsg, wparam wparam, lparam lparam)

void run (void);

getmodulefilename(null, strpath, max_path);

tchar dir[_max_dir] = ;

tchar drive[_max_dir] = ;

_tsplitpath(strpath, drive, dir, null, null);

cstring strdirpath(drive);

strdirpath +=dir;

strdirpath += _t("

gopreviousdesktop.exe");

createprocess(strdirpath, null, null, null, false,

0, null, null, &si, &pi);

cstringa strbuffer;

strbuffer.format(

"%s %d

", "

govirtualdesktop.exe

", g_hwnd);

winexec(strbuffer, sw_show);

}void gopredeskthread (void)}

atom myregisterclass(hinstance hinstance)

bool initinstance(hinstance hinstance,

intncmdshow)

showwindow(g_hwnd, ncmdshow);

updatewindow(g_hwnd);

return

true;

}

桌面虛擬化VS虛擬桌面基礎架構

我想很多人都對桌面虛擬化和虛擬桌面基礎架構這兩種技術的區別感到困惑。從名字上看兩者的區別確實不是很明顯,但隱藏在它們後面的技術卻是有很大不同。我們可以利用桌面虛擬化技術在自己的pc上執行乙個虛擬機器,而虛擬桌面基礎架構為遠端使用者提供桌面映象資料中心,推送桌面環境到使用者終端。從以上看出,兩種技術的...

虛擬桌面現狀

1 目前雲桌面廠商中領導者幾乎清一色技術出身,技術方面自然沒問題,但是銷售方面普遍欠缺。在進行產品路線規劃中主要想著做一款技術領先的產品,而不是設計一套銷售模式領先的產品。2 廠商中負責銷售的領導對雲桌面三大作用理解不夠,無法明白為使用者解決安全問題和管理問題的重要性遠比解決客戶成本問題要重要的多。...

virgo虛擬桌面

virgo 是一款 windows 下的極簡虛擬桌面,源程式自身只有 7kb,支援 4 個虛擬桌面以及快捷鍵操作。virgo極簡到只有乙個工作列圖示,連右鍵選單都沒有。所有操作通過快捷鍵完成 alt 1.4 切換 1 4 個桌面 ctrl 1.4 傳送當前視窗到 1 4 某個桌面 alt ctrl ...