freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于wmi的windows遠(yuǎn)程監(jiān)控(vc)畢業(yè)設(shè)計(編輯修改稿)

2025-07-19 01:51 本頁面
 

【文章內(nèi)容簡介】 的復(fù)雜性,以及與unix的文化相抵觸,在unix/linux領(lǐng)域受到很多著名人士(比如Linux之父linus torvalds與著名黑客Eric S. Raymond)的強烈批 評與抵制。5)、STL簡介[8]STL(StandardTemplateLibrary,標(biāo)準(zhǔn)模板庫)是惠普實驗室開發(fā)的一系列軟件的統(tǒng)稱。它是由AlexanderStepanov、MengLee和DavidRMusser在惠普實驗室工作時所開發(fā)出來的?,F(xiàn)在雖說它主要出現(xiàn)在C++中,但在被引入C++之前該技術(shù)就已經(jīng)存在了很長的一段時間。STL的代碼從廣義上講分為三類:algorithm(算法)、container(容器)和iterator(迭代器),幾乎所有的代碼都采用了模板類和模版函數(shù)的方式,這相比于傳統(tǒng)的由函數(shù)和類組成的庫來說提供了更好的代碼重用機會。在C++標(biāo)準(zhǔn)中,STL被組織為下面的13個頭文件:algorithm、deque、functional、iterator、vector、list、map、memory、numeric、queue、set、stack和utility。以下筆者就簡單介紹一下STL各個部分的主要特點。Visual C++Microsoft Visual C++,(簡稱Visual C++、MSVC、VC++或VC)微軟公司的C++開發(fā)工具,具有集成開發(fā)環(huán)境,可提供編輯C語言,C++以及C++/CLI等編程語言。VC++整合了便利的除錯工具,特別是整合了微軟視窗程式設(shè)計(Windows API)、三維動畫DirectX API,Microsoft .NET框架。目前最新的版本是Microsoft Visual C++ 2010。Microsoft Visual C++是Microsoft公司推出的開發(fā)Win32環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不但具有程序框架自動生成、靈活方便的類管理、代碼編寫和界面設(shè)計集成交互操作、可開發(fā)多種程序等優(yōu)點,而且通過簡單的設(shè)置就可使其生成的程序框架支持?jǐn)?shù)據(jù)庫接口、OLE2,WinSock網(wǎng)絡(luò)、3D控制界面。它以擁有“語法高亮”,IntelliSense(自動編譯功能)以及高級除錯功能而著稱。比如,它允許用戶進(jìn)行遠(yuǎn)程調(diào)試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動正在調(diào)試的程序。其編譯及建置系統(tǒng)以預(yù)編譯頭文件、最小重建功能及累加連結(jié)著稱。這些特征明顯縮短程式編輯、編譯及連結(jié)的時間花費,在大型軟件計劃上尤其顯著?!⊥ㄟ^VC++訪問WMI相關(guān)組件WMI是WBEM模型的一種實現(xiàn),通過訪問WBEM接口來實現(xiàn)WMI管理計算機。COM ponent(COM組件)是微軟公司為了計算機工業(yè)的軟件生產(chǎn)更加符合人類的行為方式開發(fā)的一種新的軟件開發(fā)技術(shù)。在COM構(gòu)架下,人們可以開發(fā)出各種各樣的功能專一的組件,然后將它們按照需要組合起來,構(gòu)成復(fù)雜的應(yīng)用系統(tǒng)。由此帶來的好處是多方面的:可以將系統(tǒng)中的組件用新的替換掉,以便隨時進(jìn)行系統(tǒng)的升級和定制;可以在多個應(yīng)用系統(tǒng)中重復(fù)利用同一個組件;可以方便的將應(yīng)用系統(tǒng)擴展到網(wǎng)絡(luò)環(huán)境下;COM與語言,平臺無關(guān)的特性使所有的程序員均可充分發(fā)揮自己的才智與專長編寫組件模塊。COM是開發(fā)軟件組件的一種方法。組件實際上是一些小的二進(jìn)制可執(zhí)行程序,它們可以給應(yīng)用程序,操作系統(tǒng)以及其他組件提供服務(wù)。開發(fā)自定義的COM組件就如同開發(fā)動態(tài)的,面向?qū)ο蟮腁PI。多個COM對象可以連接起來形成應(yīng)用程序或組件系統(tǒng)。并且組件可以在運行時刻,在不被重新鏈接或編譯應(yīng)用程序的情況下被卸下或替換掉。Microsoft的許多技術(shù),如ActiveX, DirectX以及OLE等都是基于COM而建立起來的。并且Microsoft的開發(fā)人員也大量使用COM組件來定制他們的應(yīng)用程序及操作系統(tǒng)。COM所含的概念并不止是在Microsoft Windows操作系統(tǒng)下才有效。COM并不是一個大的API,它實際上像結(jié)構(gòu)化編程及面向?qū)ο缶幊谭椒菢?,也是一種編程方法。在任何一種操作系統(tǒng)中,開發(fā)人員均可以遵循“COM方法”。一個應(yīng)用程序通常是由單個的二進(jìn)制文件組成的。當(dāng)編譯器生成應(yīng)用程序之后,在對下一個版本重新編譯并發(fā)行新生成的版本之前,應(yīng)用程序一般不會發(fā)生任何變化。操作系統(tǒng),硬件及客戶需求的改變都必須等到整個應(yīng)用程序被重新生成。目前這種狀況已經(jīng)發(fā)生變化。開發(fā)人員開始將單個的應(yīng)用程序分隔成單獨多個獨立的部分,也即組件。這種做法的好處是可以隨著技術(shù)的不斷發(fā)展而用新的組件取代已有的組件。此時的應(yīng)用程序可以隨新組件不斷取代舊的組件而漸趨完善。而且利用已有的組件,用戶還可以快速的建立全新的應(yīng)用。傳統(tǒng)的做法是將應(yīng)用程序分割成文件,模塊或類,然后將它們編譯并鏈接成一個單模應(yīng)用程序。它與組件建立應(yīng)用程序的過程(稱為組件構(gòu)架)有很大的不同。一個組件同一個微型應(yīng)用程序類似,即都是已經(jīng)編譯鏈接好并可以使用的二進(jìn)制代碼,應(yīng)用程序就是由多個這樣的組件打包而得到的。單模應(yīng)用程序只有一個二進(jìn)制代碼模塊。自定義組件可以在運行時刻同其他的組件連接起來以構(gòu)成某個應(yīng)用程序。在需要對應(yīng)用程序進(jìn)行修改或改進(jìn)時,只需要將構(gòu)成此應(yīng)用程序的組件中的某個用新的版本替換掉即可。COM,即組件對象模型,是關(guān)于如何建立組件以及如何通過組件建立應(yīng)用程序的一個規(guī)范,說明了如何可動態(tài)交替更新組件。調(diào)用COM[9]:利用CoCreateInstance函數(shù)來調(diào)用。直接用CoGetClassObejct得到類廠對象接口,然后用該接口的方法CreateInstance來生成實例。直接從dll中得到DllGetClassObject,接著生成類對象及類實例(本方法適合于你想用某個組件,卻不想在注冊表中注冊該組件)?!崿F(xiàn)監(jiān)控的整體設(shè)計思路點擊主對話框上的tab按鈕,可切換到監(jiān)測與控制功能,在消息相應(yīng)函數(shù)里分別添加兩個對話框到Tab控件上,然后用函數(shù)ShowWindow來隱藏或顯示對應(yīng)的對話框,與純脆用ShowWindow來顯示或隱藏對話框相比,這種方法效率要高,而且容易編輯,代碼整潔。其界面流程如圖31所示:CWMIMonCtrlDlg主對話框鼠標(biāo)點擊MyTabCtrl監(jiān)測控制MonitorPageControlPage監(jiān)測控制圖31 界面流程圖主對話框里面Tab控件加入監(jiān)測和控制兩個頁,在監(jiān)測頁里面類MonitorPage的m_ItemMapInfo Map類型成員用于存儲節(jié)點信息,在鼠標(biāo)事件中根據(jù)點擊的節(jié)點找到該節(jié)點的信息(IP、用戶名、密碼等),Map類型成員m_ItemMapInt用于存儲在配置監(jiān)測時加入監(jiān)測項對應(yīng)的序號,如復(fù)選框選中了“服務(wù)信息”,則在配置監(jiān)測完后,新加入的節(jié)點“服務(wù)信息”對應(yīng)著數(shù)字6,在鼠標(biāo)雙擊“服務(wù)信息”節(jié)點時找到對應(yīng)的數(shù)字6,如果右鍵單擊右邊的list控件則需要根據(jù)該數(shù)字判斷是否彈出菜單,CWmiMonitor類型的成員m_wmiMon用于監(jiān)測。在CWmiMonitor 中m_CStrColumnList 鏈表存儲List控件的列名,m_lCstrList用于存儲監(jiān)測到的數(shù)據(jù),它相當(dāng)于存儲了這個List顯示的表,表的每行成為一個CString類型的鏈表,然后再把這些鏈表放在一個鏈接鏈表的鏈表里面,最后用迭代器層層訪問這些鏈表,并把數(shù)據(jù)插入list控件里面顯示。主對話框初始化時已經(jīng)在TreeCtrl上加入了一些節(jié)點,右鍵單擊這些節(jié)點彈出菜單可以添加新節(jié)點,刪除節(jié)點,編輯節(jié)點。對以上這些操作都會彈出對話框進(jìn)行操作,并把相關(guān)的信息存到map類型成員ItemMapInf里。有些節(jié)點信息不全沒有IP、用戶名、密碼,對于這樣的節(jié)點不能進(jìn)行配置監(jiān)測,應(yīng)為能進(jìn)行配置監(jiān)測的計算機應(yīng)該是一臺要去監(jiān)測的實際計算機必須給出其IP、用戶名密碼,但如果編輯這些節(jié)點,有了IP、用戶名、密碼,就可以進(jìn)行配置監(jiān)測。在配置監(jiān)測時在彈出的對話框里選擇要監(jiān)測的項,確定后該節(jié)點即可加入新的節(jié)點。雙擊這些新的節(jié)點,就在右邊的listCtrl控件中顯示出監(jiān)測所得數(shù)據(jù)。如果雙擊的節(jié)點不是由配置監(jiān)測而得來,那么雙擊節(jié)點將不會取得監(jiān)測數(shù)據(jù),只會響應(yīng)展開節(jié)點的操作。這個功能的實現(xiàn),主要是map變量里存儲于這節(jié)點的信息,每個節(jié)點對應(yīng)這一個信息,包括IP、用戶名、密碼等。整體流程如圖32所示:主對話框WMIMonCtrl?監(jiān)測:控制監(jiān)測控制右鍵點擊listCtrl新建,編輯,刪除配置監(jiān)測對話框?確定:取消取消主界面顯示數(shù)據(jù)等操作信息:ip,user,pswd啟動進(jìn)程,關(guān)機,注銷,重啟確定控制確定NYNY圖32 整體流程圖 VC++實現(xiàn)獲取遠(yuǎn)程計算機的軟硬件信息實現(xiàn)遠(yuǎn)程監(jiān)測與控制的核心部分是類CwmiMonitor,除了監(jiān)控功能外它包含了訪問組件,存儲數(shù)據(jù)等任務(wù),其工作流程如圖33所示:申請CWmiMonitor的實例,如:CWmiMonitor m_wmiMon。調(diào)用構(gòu)造函數(shù)CWmiMonitor(),初始化組建,CoInitialize單線程訪問,CoInitializeSecurity,注冊并設(shè)置進(jìn)程的默認(rèn)的安全值 調(diào)用公有成員函數(shù)進(jìn)行監(jiān)控,如m_wmiMon. GetWmiVirMem(…)Connect連接計算機,ExecuteSql執(zhí)行WQL語句結(jié)果由枚舉變量保存,IWbemClassObject::Get()取數(shù)據(jù)IEnumWbemClassObject::Next()枚舉出下一條把當(dāng)前數(shù)據(jù)放入一個鏈接字符串的鏈表里,把該鏈表放入另一個鏈接鏈表的鏈表里圖33 類CwmiMonitor實現(xiàn)監(jiān)控的流程圖主對話框分為監(jiān)測和控制兩個功能,其中監(jiān)測部分可獲得計算機的軟硬信息,實現(xiàn)過程大體如下:函數(shù) CoInitializeEx(void * pvReserved,DWORD dwCoInit) 初始化組件函數(shù)HRESULT CoInitializeSecurity(_in_optPSECURITY_DESCRIPTOR pSecDesc,__inLONG cAuthSvc,__in_optSOLE_AUTHENTICATION_SERVICE *asAuthSvc,__in_optvoid *pReserved1,__inDWORD dwAuthnLevel,__inDWORD dwImpLevel,__in_optvoid *pAuthList,__inDWORD dwCapabilities,__in_optvoid *pReserved3) 設(shè)置COM安全級別STDAPI CoCreateInstance(REFCLSID rclsid,//創(chuàng)建的Com對象的類標(biāo)識符(CLSID)LPUNKNOWN pUnkOuter, //指向接口IUnknown的指針DWORD dwClsContext, //運行可執(zhí)行代碼的上下文REFIID riid, //創(chuàng)建的Com對象的接口標(biāo)識符LPVOID * ppv //用來接收指向Com對象接口地址的指針變量)函數(shù)用指定的類標(biāo)識符創(chuàng)建一個Com對象,用指定的類標(biāo)識符創(chuàng)建一個未初始化的對象。通過IWbemLocator :: ConnectServer方法連接到WMI創(chuàng)建能用來設(shè)置安全代理的COAUTHIDENTITY在WMI連接上設(shè)置安全級別HRESULT CoSetProxyBlanket( IUnknown*pProxy,DWORDdwAuthnSvc,DWORDdwAuthzSvc,WCHAR*pServerPrincName,DWORDdwAuthnLevel,DWORDdwImpLevel,RPC_AUTH_IDENTITY_HANDLEpAuthInfo,DWORDdwCapabilities)使用 IWbemServices 指針產(chǎn)生 WMI請求HRESULT ExecQuery([in]const BSTR strQueryLanguage,[in]const BSTR strQuery,[in]LONG lFlags,[in]IWbemContext *pCtx,[out]IEnumWbemClassObject **ppEnum)。CoSetProxyBlanket 使枚舉代理安全從第七步的查詢中獲取數(shù)據(jù)while (pEnumerator){HRESULT hr = pEnumeratorNext(WBEM_INFINITE, 1,amp。pclsObj, amp。uReturn)。if(0 == uReturn){break。}VARIANT vtProp。// Get the value of the Name propertyhr = pclsObjGet(LName, 0, amp。vtProp, 0, 0)。wcout OS Name : endl。// Get the value of the FreePhysicalMemory propertyhr = pclsObjGet(LFreePhysicalMemory,0, amp。vtProp, 0, 0)。
點擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1