畢業(yè)設計-計算機遠程控制程序設計_第1頁
畢業(yè)設計-計算機遠程控制程序設計_第2頁
畢業(yè)設計-計算機遠程控制程序設計_第3頁
畢業(yè)設計-計算機遠程控制程序設計_第4頁
畢業(yè)設計-計算機遠程控制程序設計_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Southwestuniversityofscienceandtechnology本科畢業(yè)設計〔論文〕學院名稱專業(yè)名稱學生姓名學號指導教師二〇一一年六月計算機遠程控制程序設計——計算機信息獲取、控制技術研究及駐留程序設計摘要:隨著計算機網絡技術的不斷開展,網絡平安問題變得越來越受人們關注。網絡平安包括攻擊和防范兩大范疇。以往我們大多數(shù)以防范為主,如加密、防火墻等。但網絡攻擊技術與網絡防范技術是密不可分的,了解網絡攻擊的方法和技術對于維護網絡平安有著重要的意義。計算機遠程控制程序能夠使操作者通過基于Internet網絡對遠程主機進行控制,從而實現(xiàn)對網絡遠程計算機得信息獲取、控制、記錄等功能。隨著Internet的廣泛應用,遠程控制系統(tǒng)能夠實現(xiàn)很多的功能,其中軍事上的應用尤為重要。本文以Windows系統(tǒng)為根底,使用MicrosoftVisual為主要開發(fā)工具,使用WindowsAPI編程,開發(fā)遠程控制程序,主要的任務是關于駐留端程序的設計,實現(xiàn)了對遠程計算機的根本控制,信息獲取。關鍵詞:計算機信息獲?。贿h程控制;計算機木馬ComputerRemoteControlProgramming–ComputerAccessToInformation,Control,ResearchAndResidentProgrammingAbstract:.Withthecontinuousdevelopmentofcomputernetworktechnology,networksecurityissuesbecomemoreandmoreattention.Networksecurity,includingattacksandpreventthetwomajorareas.Thepast,mostofustopreventthemain,suchasencryptionandfirewalls.However,technologyandnetworkattacksagainsttechnologyareinextricablylinked,understandingofnetworkattackmethodsandtechniquesformaintainingnetworksecurityisofimportantsignificance.ComputerremotecontrolprogramthatallowstheoperatortoInternet-basednetworktocontroltheremotehost,inordertoachievearemotecomputeronthenetworkhaveaccesstoinformation,control,recordingandotherfunctions.WiththeextensiveapplicationoftheInternet,Remotecontrolsystemcanachievealotoffeatures,militaryapplicationswhichisparticularlyimportant.Inthispaper,Windows-basedsystem,usingMicrosoftVisualC++6.0asthemaindevelopmenttool,usingtheWindowsAPI,Themaintaskistodesigntheprogramontheresidentsidedevelopmentofremotecontrolprocedures,thebasiccontroloftheremotecomputer,accesstoinformation.Keywords:Computerinformationaccess,RemoteControl,ComputerTrojan目錄第1章前言51.1概述51.2遠程控制的根本原理61.2.1遠程控制軟件的根本模式71.2.2遠程控制常用軟件71.3論文選題及研究方案81.4主要工作量91.5研究內容101.5.1主要研究內容101.5.2主要技術要求10第2章遠程控制程序的設計思路112.1關機、重啟子程序112.2讀取計算機信息子程序122.3增加帳戶子程序132.4截圖子程序132.5鍵盤記錄子程序152.6主程序調用152.7本章小結16第3章遠程控制程序的設計173.1子程序設計173.1.1計算機關機、重啟程序設計173.1.2讀取計算機信息程序設計173.1.3增加賬戶程序設計203.1.4截圖程序設計243.1.5鍵盤記錄程序設計263.2主程序設計27結論29致謝30參考文獻31第1章前言1.1概述隨著計算機網絡的迅速普及,人類社會已經越來越離不開網絡,網絡使人類社會淡化了國家的限制。各國社會的經濟、政治、文化等各個方面都開始倚重于網絡方便迅速的信息傳遞方式。網絡有著巨大的資源與強大的計算能力,這些也屬于一種能量,其威力無法估量。網絡當初建立時是基于各個節(jié)點相互信任的前提,但是事實上,使用網絡節(jié)點的人相互之間并不是可以相互信任的。人類社會中存在窺探者、破壞者、盜竊者,網絡上也有,而且在網絡上做這些事情要更容易。網絡蘊涵著強大的力量,這些力量又被不同的人或組織控制,于是有了力量沖突,這種力量的沖突是人類根本社會沖突在網絡上的延伸,具有相同的性質。我們可以稱這種沖突為網絡戰(zhàn)爭,因為它確實和戰(zhàn)爭有很多共同點。信息社會中,信息己成為人類珍貴的資源。近年來Internet正以驚人的速度在全球開展,Internet技術己經廣泛滲透到各個領域。信息是戰(zhàn)略資源,信息是決策之源,是控制戰(zhàn)場的靈魂,信息決定火力和機動力。信息可以極大擴充軍隊智力和神經〔指揮〕系統(tǒng)的協(xié)調性,軍事信息化是一次全面深層次的革命。近年來,一些軍事強國為了在信息化戰(zhàn)場上奪取“制網權”優(yōu)勢,大勝采用網絡對抗技術,實施各種攻防手段。海灣戰(zhàn)爭中,美軍首次把網絡攻擊手段應用于實戰(zhàn)。戰(zhàn)前,美軍就在伊拉克進口的一批計算機散件中預置了帶病毒芯片。戰(zhàn)爭開始不久。伊拉克移個防空指揮網絡即遭受病毒感染,組織指揮陷入混亂。幾乎喪失了防空作戰(zhàn)能力。俄軍在強化網絡戰(zhàn)中十分重視“先機制敵”和實施主動性攻擊。據(jù)悉,目前俄專家正加緊研制“遠即離無線注人病毒武器”,對戰(zhàn)略指揮控制系統(tǒng)產生直接威脅。這都是應用對抗技術的表達,但日前的網絡攻防并沒有充分利用好。因而我們勢必深人研究網絡戰(zhàn)中的對抗技術,使其分類系統(tǒng)化、明朗化才能講求實用。因此我國要從戰(zhàn)略高度重視信息戰(zhàn)的問題,必須認識到未來戰(zhàn)爭將主要是信息戰(zhàn)。信息戰(zhàn)將以覆蓋全球的計算機網絡為主戰(zhàn)場,以攻擊對方的信息系統(tǒng)為主要手段,運用高精尖的計算機技術,不僅破壞軍事指揮和武器控制系統(tǒng),而且會使其金融、交通、商業(yè)、醫(yī)療、電力等涉及國民經濟命脈的諸多系統(tǒng)遭到破壞,從而不費一槍一炮到達攻城奪地的目的。網絡戰(zhàn)必將成為未來信息戰(zhàn)場新的作戰(zhàn)樣式。首先,網絡技術的廣泛應用,使得網絡成為新的爭奪空間。在信息時代里,網絡正在成為聯(lián)結個人和社會,現(xiàn)在和未來的紐帶,各種各樣的計算機網絡都將成為一個國家的戰(zhàn)略資源和戰(zhàn)略命脈,一旦重要的網絡陷入癱瘓,整個國家平安就面臨著崩潰的危險,使“制網絡權”的爭奪與對抗不可防止。同時,隨著網絡技術在軍事領域的快速開展,軍隊對計算機網絡的依賴越來越大,網絡與作戰(zhàn)的聯(lián)系也愈來愈緊密,網絡成為新的戰(zhàn)場空間。其次,網絡的特殊戰(zhàn)略作用,促使網絡對抗與爭奪向網絡戰(zhàn)方向開展。和常規(guī)作戰(zhàn)中選擇打擊對象一樣,網絡攻擊也是把對敵方的戰(zhàn)略目標作為首要進攻對象。能否有效地摧毀敵重要網絡系統(tǒng),以便迅速達成一定的戰(zhàn)略目的,就成為敵對雙方進行全面網絡爭奪和對抗的焦點,這種對抗與爭奪必然促使網絡戰(zhàn)成為新的作戰(zhàn)樣式登上戰(zhàn)爭舞臺。木馬技術就是一種軍民兩用的網絡攻擊技術,由于木馬本身的技術優(yōu)勢因而得到了廣泛的應用,利用木馬技術滲透到敵方系統(tǒng)內部,建立一個穩(wěn)固的內部攻擊點,為以后的攻擊提供一個暢通無阻的平安通道,再由里及外,內外結合,往往可以收到更好的攻擊效果。綜上所述,網絡戰(zhàn)引起很多國家的普遍重視,網絡攻擊技術也相應的得到了長足的開展,目前,存在多種網絡攻擊技術,木馬技術就是其中之一,研究開發(fā)先進的木馬攻擊技術使得在將來的網絡戰(zhàn)中搶占先機,立于不敗之地具有重要的意義。木馬理論上基于效勞器/客戶端網絡模型,但是這種模型不利于控制系統(tǒng)的隱藏。本文構建了一個強大的基于P2P網絡模型的木馬系統(tǒng),它在Internet上通過控制系統(tǒng)和受控計算機建立一個完整的P2P網絡,通過這個網絡可以獲取網絡的計算資源,并且可以對這些資源進行隱蔽控制,從而可以有效完成各種特殊的任務。而木馬最近本的功能就是計算機遠程控制,正式我們需要研究的方向。1.2遠程控制的根本原理遠程控制是指在計算機網絡上由一臺主機(主控端)遠距離控制另一臺主機(駐留端)的技術。當操作者使用主控端主機控制被控端主機時,就如同坐在被控端主機的屏幕前操作一樣,可以啟動被控端主機中的應用程序,可以使用文件資料,甚至可以利用被控端主機的各種外部設備。但是值得注意的是:主控端所做的一切控制操作如翻開應用程序、上網瀏覽以及下載等都是在被控主機的計算下完成的;主控端主機只是將鍵盤和鼠標的指令傳送給遠程被控主機。網絡中的遠程控制技術早于DOS時代就已提出,只不過當時由于網絡應用范圍不廣,網絡用戶在這方面沒有較大的要求,因此這項技術沒有得到較大的開展。但是,隨著計算機網絡的廣泛應用以及用戶在應用中的需要,遠程操作及控制技術越來越引起人們的關注。遠程控制一般支持的網絡方式:LAN、WAN、撥號方式、互聯(lián)網方式。1.2.1遠程控制軟件的根本模式遠程控制一般支持局域網、廣域網、無線網、撥號方式、寬帶接入等方式,還可以支持直接連接,即通過串口、并口、紅外端口來對遠程主機進行控制。傳統(tǒng)的遠程控制軟件一般使用TCP/IP、NET—BEUI、NETBIOS、IPX/SPX等協(xié)議來實現(xiàn)遠程控制,也可以通過B/S模式或瀏覽器/中間件/效勞器結構,即Web頁面以Java技術來控制遠程電腦,從而到達遠程控制不同操作系統(tǒng)的目的。遠程控制實現(xiàn)機制:客戶端將鍵盤和鼠標的操作信息實時傳送給效勞器端,由效勞器端軟件仿真為本地的鍵盤和鼠標操作,同時實時捕捉效勞器端電腦的屏幕畫面,通過網絡回傳到客戶端。遠程控制軟件通常由兩局部組成:一局部是客戶端(控制端)程序Client,另一局部是駐留端(受控端)程序Server,建成C/S模式。使用前需要在控制端運行客戶端程序,在受控端運行效勞器程序。然后由控制端向受控端發(fā)出信號,建立一個特殊的遠程效勞。再通過這個效勞,使用各種遠程控制功能發(fā)送遠程控制命令,控制受控端電腦中的各種應用程序運行,這種遠程控制方式稱為基于遠程效勞的遠程控制。1.2.2遠程控制常用軟件各類遠程控制軟件種類繁多,可以運行在不同的工作平臺,在屏幕截取,鼠標鍵盤控制上各有特色.常用的控制軟件有如下幾種:PCAnywhere:是點對點通信軟件,可以遠程監(jiān)控、管理、調試,有卓越的自我保護功能和加密工具,功能強大,是遠程控制軟件的首選,適合于技術支持和企業(yè)內部部署。RemotelyAnywhere:基于Web客戶端連接,操作簡單,擁有用戶所需要的全部網絡管理工具,適于效勞器管理。冰河:可支持局域網/Modem上網/寬帶上網等多種方式,功能強大,容易被黑客利用,被許多殺毒軟件列為查殺對象。QuiekIP:客戶機可同時控制多個效勞器,反之亦然。適用于多種場合。VNC:免費跨平臺的開放源碼軟件。在Windows環(huán)境下,遠程控制有以下2種實現(xiàn)方法:1)WindowsXP遠程控制的實現(xiàn)“遠程協(xié)助”和“遠程桌面”是WindowsXP系統(tǒng)提供的遠程控制的方法。使用“遠程協(xié)助”進行遠程控制必須由主控雙方協(xié)同才能夠進行,通過MSNMessenger向聯(lián)系人發(fā)出協(xié)助要求,在獲得對方同意后,即可進行遠程協(xié)助。2)Windows2000Server遠程控制的實現(xiàn)在效勞器上安裝配置好與客戶端連接所需的協(xié)議,如IPX、TCP/IP、NETBEUI等,在安裝“路由和遠程訪問”效勞后,即可以配置運行Windows2000Server的遠程訪問效勞器。Windows2000Server提供了撥號網絡和VPN兩種方式的遠程訪問。1.3論文選題及研究方案本次論文的主要要求就是計算機遠程控制程序設計——駐留端程序設計,即C/S中的Server端程序設計,要求實現(xiàn)一定的功能。如:計算機的關機、重啟,獲取計算機信息,增加帳戶,截圖、鍵盤記錄等功能。本遠程控制程序是采用模塊化設計的方法,將整個程序劃分為主控制程序、重啟控制子程序、關機控制子程序、計算機信息獲取子程序、增加帳戶子程序、截圖子程序、鍵盤記錄子程序等模塊,通過這樣的劃分,我們可以清晰的構建出程序的流程圖,可以方便程序的分塊編寫。本次設計主要是編寫一個程序,其主要功能是通過接收客戶端的命令,實現(xiàn)控制,只需要編寫關于駐留端的程序,實現(xiàn)控制即可,不用設計關于控制端的程序設計以及網絡的對話,所以只需要構建出關于程序的控制的局部。所以本次設計首要任務就是使用子程序實現(xiàn)要求的控制功能,如關機,重啟等,分別用子程序實現(xiàn);其次才是編寫一個主程序實現(xiàn)調用,構成一個完整的遠程控制程序;由于不需要網絡通訊,就不需要使用遠程命令代碼控制,僅僅使用一個命令行在本機上實現(xiàn)控制功能即可。本次設計是使用進行設計,在中有專門基于Windows控制的WindowsAPI程序,可以簡單的實現(xiàn)功能,所以在本次設計中主要使用的就是WindowsAPI編程。1.4主要工作量 本次設計根本參照上述的研究方案進行,其具體工作量的統(tǒng)計如表1-1所示。學習編寫內容工作量〔h〕目的查閱相關文獻、資料240熟悉VC編程學習關于WindowsAPI編程80學習使用WindowsAPI實現(xiàn)功能關機、重啟程序研究40編程實現(xiàn)計算機關機、重啟獲取計算機信息程序研究40編程實現(xiàn)計算機信息獲取增加帳戶程序研究40編程實現(xiàn)增加帳戶截圖程序研究80編程實現(xiàn)程序截圖鍵盤記錄程序研究80編程實現(xiàn)鍵盤記錄程序調用研究80主程序調用子程序實現(xiàn)功能表1-1主要工作量統(tǒng)計表1.5研究內容1.5.1主要研究內容基于設計的要求,我選擇了使用WindowsXP下的作為開發(fā)工具,主要使用其中的WindowsAPI函數(shù)來實現(xiàn)上述功能。1〕開發(fā)關于計算機關機的子程序2〕開發(fā)關于計算機重啟的子程序3〕開發(fā)關于獲取計算機信息的子程序4〕開發(fā)關于增加帳戶的子程序5〕開發(fā)關于截圖的子程序6〕開發(fā)關于鍵盤記錄的子程序7〕開發(fā)程序調用的主程序1.5.2主要技術要求(1)實現(xiàn)程序預期的主要功能;(2)實現(xiàn)調用過程;(3)可以通過簡單修改主程可以實現(xiàn)從客戶端調用主程序命令實現(xiàn)遠程控制第2章遠程控制程序的設計思路本次設計采用分步設計的方法,首先單獨實現(xiàn)子程序功能,通過對子程序修改設計,再總體編寫主程序,實現(xiàn)調用。本章重點介紹設計各個子程序的主要思路。2.1關機、重啟子程序在本次程序設計中,首先查閱了基于WindowsAPI的函數(shù)接口編程實例,學習了關于系統(tǒng)system函數(shù)集,使用此函數(shù)可以實現(xiàn)計算機的關機與重啟,也可以實現(xiàn)文件的刪除等功能,主要使用Windows命令行命令來控制。分別寫入兩個子程序,方便最后組合的主程序調用。子程序流程圖如圖2-1。圖2-1關機、重啟子程序流程圖2.2讀取計算機信息子程序在WindowsAPI中,可以獲取與管理Windows系統(tǒng)信息包括系統(tǒng)根本信息、時間信息、注冊表。其中系統(tǒng)信息的獲取主要包括系統(tǒng)目錄、Windows安裝目錄、用戶名、計算機名、域名等。在這個子程序設計過程中,主要使用的就是WindowsAPI函數(shù)來獲取其中我們需要的信息,如安裝目錄、用戶名、計算機名等。獲取了這些信息,才有助于我們的遠程控制,以及以后的后續(xù)操作。讀取了計算機根本信息后輸出到D:\get.txt。在調試功能實現(xiàn)以后,講程序改編為子程序,方便以后主程序的調用。流程圖如圖2-2.函數(shù)如下:獲取系統(tǒng)版本:GetVersionEx;獲取計算機硬件信息:GetSystemInfo;獲取安裝目錄:GetSystemDirectory;獲取用戶名:GetUserName;獲取計算機名:GetComputerName;圖2-2讀取計算機信息子程序流程圖2.3增加帳戶子程序在上一個子程序設計中,已經讀取了計算機名以及用戶名,為了方便以后的控制,在駐留端計算機上增加一個屬于自己的專用超級用戶是必須的,我們假定增加的超級帳戶名:admin;密碼:admin,在WindowsAPI中依然有關于計算機帳戶添加的函數(shù),調用增加即可。程序流程圖如圖2-3.函數(shù)如下:創(chuàng)立帳戶:NetUserAdd;將用戶添加到用戶組:NetGroupAddUser;圖2-3增加帳戶子程序流程圖2.4截圖子程序截取屏幕的流程:截取屏幕輸出一般需要經過以下步驟。使用字符串“DISPLAY”為參數(shù),調用CreateDC,得到類型為“顯示”的DC。調用CreateCompatibleDC創(chuàng)立一個內存DC。得到需要截取的屏幕區(qū)域,比方調用GetDeviceCaps獲取屏幕大小,GetWindowRect獲取窗口區(qū)域等。調用CreateCompatibleBitmap創(chuàng)立BITMAP。調用SelectObject,將創(chuàng)立的BITMAP選擇入內存DC,并將返回值使用另外一個BITMAP對象句柄來保存,SelectObject的返回值表示了DC中唄替換的圖形對象。 調用BitBlt函數(shù)將源DC〔顯示類型的DC〕指定位塊 〔bit-block〕的顏色數(shù)據(jù)轉移到目的DC〔內存〕中。將之前保存的舊的BITMAP對象再調用SelectObject選擇回內存DC中,這樣從顯示的內存DC中BitBlt到內存DC中的位塊顏色數(shù)據(jù)就被替換掉,SelectObject的返回值即是從屏幕中得到的位圖對象〔HBITMAP類型〕。由于在我們程序設計的要求中,不需要調整截圖的大小,只需要全屏幕截圖之后保存就可以了,所以比擬簡單,不用調整獲取區(qū)域。在截圖完成后由內存輸出到D:\jietu.bmp。程序流程圖如圖2-4。如圖2-4截圖子程序流程圖2.5鍵盤記錄子程序在WindowsAPI中,GetKey函數(shù)是記錄鍵盤輸入的信息,在鍵盤記錄子程序的,使用GetKey函數(shù),記錄輸出的信息,之后轉換為我們平??吹降淖址敵觯敵龅紻:\,中間主要的程序就是替換輸入的信息和輸出的信息轉換,以及Shift和CapsLock按鍵之后的字符轉換。程序流程圖如圖2-5。圖2-5鍵盤記錄子程序流程圖2.6主程序調用主程序中主要的功能就是在檢測到輸入的命令之后,分別調用子程序實現(xiàn)功能,在輸入的過程中,根據(jù)命令調用子程序完成后返回進入待機狀態(tài),等待下一步命令,主程序中的命令輸入可以與網絡控制命令結合,直接實現(xiàn)遠程控制,在本次設計中,只需要做出控制端程序,為了模擬控制,所以直接本地控制,如需要加上遠程控制只需要與遠程客戶端程序添加調用程序即可。流程圖如圖2-6圖2-6主程序流程圖2.7本章小結本章主要是討論本次設計中的有關功能實現(xiàn)流程,通過對程序子程序的規(guī)劃、設計,實現(xiàn)了對遠程控制程序根本功能。對各個子程序的功能實現(xiàn)的流程進行了分析,最后對使用主程序調用子程序實現(xiàn)功能。如果需要使用網絡命令調用函數(shù)實現(xiàn)功能,只需要使用客戶端程序調用代碼修改即可。第3章遠程控制程序的設計3.1子程序設計本次設計的主要功能是使用WindowsAPI的函數(shù)實現(xiàn)的,其中主程序的調用在實際的設計中是可以與控制端程序聯(lián)合設計,本次設計中只是為了方便功能的實現(xiàn)參加顯示調用,子程序實現(xiàn)的功能〔如截圖的保存,鍵盤記錄等〕主要是保存在D盤目錄下,方便以后的使用。3.1.1計算機關機、重啟程序設計使用VC中的system函數(shù)主要功能就是發(fā)出一個DOS命令,其中的函數(shù)變量即為DOC中的命令,system函數(shù)已經被收錄在標準C庫中,由于C++全面兼容了標準C庫,所以在這兒就可以直接調用system函數(shù)實現(xiàn)可以用DOC命令行程序實現(xiàn)關于計算機的根本操作,如:關機、重啟等。函數(shù)如下:system("shutdown-s-t0");//shutdown–s為關機命令,-t為時間設置,默認為30秒,在此我們設置為0秒,即立刻關機system("shutdown–r-t0");//shutdown–r為重啟命令,-t為時間設置,默認為30秒,在此我們設置為0秒,即立刻重啟上述兩條功能實現(xiàn)調用了同一個函數(shù),很簡單,在此不做過多討論。3.1.2讀取計算機信息程序設計以下的子程序設計根本上都是使用的WindowsAPI函數(shù)實現(xiàn)的,首先是計算機根本信息的獲取,計算機版本、用戶名、計算機名的獲取,在WindowsAPI中有特定的的函數(shù)讀取這些信息。1〕計算機版本的獲取:可以使用GetVersionEx函數(shù)獲取系統(tǒng)版本信息,函數(shù)原型如下:BOOLGetVersionEx( LPOSVERSIONINFOlpVersionInfo);

參數(shù)lpVersionInfo:輸入、輸出參數(shù),此參數(shù)為OSVERSIONINFO或者OSVERSIONINFOEX結構的指針,用于存儲獲取的系統(tǒng)版本信息。這兩個結構的第一個成員都是dwOSVersionInfoSize,如果使用OSVERSIONINFO結構那么將此成員設置為sizeof(OSVERSIONINFO)如果使用OSVERSIONINFOEX結構,那么設置此成員為sizeof(OSVERSIONINFOEX)。

返回值BOOL類型,表示是否成功。使用GetLastError函數(shù)獲取錯誤代碼。2〕用戶名、計算機名:獲取當前登錄用戶使用API函數(shù)GetUserName,獲取計算機名使用API函數(shù)GetComputerName,獲取特定格式的計算機名使用API函數(shù)GetComputerNameEx,設置計算機名使用API函數(shù)SetComputerName和SetComputerNameEX。GetUserName獲取當前登錄的用戶名,函數(shù)定義如下:BOOLGetUserName( LPTSTRlpBuffer,LPDWORDnSize);

參數(shù)lpBuffer:輸出參數(shù),指向保存登錄用戶名的內存緩沖區(qū)。其大小最好不小于(UNLEN+1),UNLEN定義在Lmcons.h中。nSize:輸入、輸出參數(shù),指向表示lpBuffer的大小〔字符數(shù)〕的DWORD型變量。如果小于所需要的大小,那么lpnSize返回需要的大小,函數(shù)返回失敗。GetComputerName獲取當前計算機名,函數(shù)的定義如下:BOOLGetComputerName(LPTSTRlpBuffer,LPDWORDlpnSize);

參數(shù)lpBuffer:輸出參數(shù),指向保存計算機名的內存緩沖區(qū),其大小最好不小于(MAXCOMPUTERNAME一LENGTH+1)。lpnSize:輸入、輸出參數(shù),指向表示lpBuffer的大小〔字符數(shù)〕的DWORD型變量。如果小于所需要的大小,那么lpnSize返回需要的大小,函數(shù)返回失敗。

返回值BOOL型,表示是否成功。使用GetLastError獲取錯誤信息。局部程序代碼如下:voidShowInfo(){…//獲取計算機版本信息if(over.dwMajorVersion==5){if(over.dwMajorVersion==0) lstrcat(szVersionInfo,”Windows2000”); elseif(over.dwMajorVersion==1) lstrcat(szVersionInfo,”WindowsXP”); elseif(over.dwMajorVersion==2) lstrcat(szVersionInfo,”WindowsServer2003”);}elseif(over.dwMajorVersion==6) lstrcat(szVersionInfo,”WindowsVista”);elseif lstrcat(szVersionInfo,”WindowsNT4.0或者其他”);//獲取計算機名以及用戶名DWORDdwComputerNameLen=MAX_COMPUTERNAME_LENGTH+1;DWORDdwUserNameLen=UNLEN+1;TCHARszComputerName[MAX_COMPUTERNAME_LENGTH+1];TCHARszUserName[UNLEN+1];COMPUTER_NAME_FORMATconf;GetComputerName(szComputerName,&dwComputerNameLen);GetUserName(szUserName,&dwUserNameLen);}圖3-1獲取計算機信息結果截圖3.1.3增加賬戶程序設計程序的設計要求中是添加一個用戶,本程序定義的是添加用戶名為admin,密碼為admin的超級賬戶。1〕增加用戶:在WindowsAPI中,創(chuàng)立新用戶的函數(shù)是NetUserAddAPI,函數(shù)原型如下:NET_API_STATUSNetUserAdd( LMSTRservername, DWORDlevel, LPBYTEbuf, LPDWORDparm_err);servername參數(shù)是需要添加用戶的主機名,如果是本機那么設置為NULL。level參數(shù)決定了buf參數(shù)的結構,設置為1、2、3、4分別表示buf參數(shù)所指向的內容為USER_INFO_1、USER_INF0_2、USER_INFO_3、USER_INF0_4。這4個結構都包括了用戶的相關信息,只是所包括的信息的豐富程度不同。以USER_INFO_1為例,包括用戶的一些根本信息,用戶名、密碼、密碼期限、優(yōu)先級、用戶HOME路徑、描述等。typedefstruct_USER_INFO_1{ LPWSTRusril_name; LPWSTRusril_password; DWORDusril_password_age; DWORDusril_priv; LPWSTRusril_home_dir; LPWSTRusril_comment; DWORDusril_flags; LPWSTRusril_script_path;}USER_INFO_1,*PUSER_INFO_1,*LPUSER_INFO_1;2〕將用戶增加到administrator組中NetGroupAddUser的功能分別是將用戶添加到用戶組,函數(shù)原型如下:NET_API_STATUSNetGroupAddUser( LPCWSTRservername, LPCWSTRGroupName,LPCWSTRusername);level參數(shù)也是指定buf參數(shù)的類型。buf參數(shù)類型包括GROUP_INFO_1、GROUPINF02、GROUP_INF0_3、GROUPINF0_4。局部程序代碼如下:IntAddUser(LPWSTRNULL,LPWSTRadmin,LPWSTRadmin)//參數(shù)為:主機名〔本機設置為NULL〕;用戶名;密碼{ USER_INFO_1ui; DWORDdwLevel=1; DWORDdwError=0; NET_API_STATUSnStatus; //填充USER_INFO_1 ui.usri1_name=admin;//用戶名 ui.usri1_password=admin;//密碼 ui.usri1_priv=USER_PRIV_USER;//級別 ui.usri1_home_dir=NULL; ui.usri1_comment=NULL; ui.usri1_flags=UF_SCRIPT; ui.usri1_script_path=MULL; //調用NetUserAdd,增加用戶 nStatus=NetUserAdd(NULL, dwLevel, (LPBYTE)&ui, &dwError); }圖3-2增加帳戶前管理界面截圖圖3-3增加帳戶后管理界面截圖3.1.4截圖程序設計在Windows環(huán)境中,設備上下文(DC)及基于設備上下文的繪圖操作是用戶界面的核心。在WindowsAPI的幫助下程序可以很簡單地得到設備上下文的實例,并通過這個設備上下文實例來獲取屏幕圖像。//常量定義#definePALVERSION0x300#defineCAP_SHOW_MODE_STRTCH1#defineCAP_SHOW_MODE_NOSTRTCH0//全局變量HBITMAPghBitmap=NULL;RECTrectShow;//修改此處可以更改截取不同窗口,null為全屏LPSTRszCaptureWindowName=NULL;…DWORDWINAPIWinMain(HINSTANCEhinstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdSshow)ghBitmap=ScreenCapture(“D:\\”,NULL);HBITMAPScreenCapture(LPSTRfilename,//截圖保存路徑 LPRECTlpRect)//截圖區(qū)域u,為NULL時截全屏{…HDChdc=CreateDC(“DISPLAY”,NULL,NULL,NULL);intscreenw=GetDeviceCaps(hdc,HORZRES);intscreenh=GetDeviceCaps(hdc,VERIRES;HDChmdc=CreateCompatibleDC(hdc);HBITMAPhbm=CreateCompatibleBitmap(hdc,screenw-screenh);SelectObject(hmdc,hbm);BitBlt(hmdc,0,0,screenw,screenh,hdc,0,0,SRCCOPy);…}圖3-4截圖程序捕獲桌面以及存放的位置3.1.5鍵盤記錄程序設計首先要分析主控端如何模擬獲取操作者的操作。本文采用如下的數(shù)據(jù)結構來記錄一次操作者的操作,這些數(shù)據(jù)結構定義在系統(tǒng)的<winuser.h>頭文件中。typedefstructtagINPUT{DWORDtype;union{KEYDBINPUTki;HARDWAREINPUThi;);)INPUT,*PINPUT;在上述的數(shù)據(jù)結構中,KEYDBINUT為鍵盤輸入的數(shù)據(jù)。stringFilename="D:\\log.txt"; //最后通過此命令輸出到文件,路徑為D:\如果需要遠程控制,輸出信息到遠程計算機,那么可以使用WindowsAPI中的函數(shù)SendUserlnput實現(xiàn),函數(shù)結構如下:BOOLSendUserlnput(INPUT*input,UINTnumber)把操作信息傳輸?shù)奖豢囟?。被控端在接收到主控端傳來的輸人信息后,直接調用WinAPl函數(shù)Sendlnput送給系統(tǒng)處理。圖3-5鍵盤記錄結果截圖3.2主程序設計本次設計的主要工作都已經在子程序中完成了,最后的主程序最要的功能就是為了實現(xiàn)子程序的調用,分別輸入不同的命令,調用不同的子程序,實現(xiàn)計算機的控制,可以與控制端的網絡命令一同實現(xiàn)計算機的遠程控制。只需要使用簡單if判斷語句就可以實現(xiàn)。主程序控制命令如下:11——計算機關機;12——計算機重啟;21——讀取計算機信息;31——增加admin賬戶;41——屏幕截圖;51——鍵盤記錄。圖3-5主程序界面選擇窗口結論通過本次課題的探索與研究,我們設計出了一個模擬的計算機遠程控制駐留端程序,主要的方向就是計算機控制以及計算機記錄方面,通過本地的控制可以實現(xiàn)功能,但是與遠程計算機連接的控制方面融合不多,需要以后繼續(xù)研究。 本次的程序設計主要包括了計算機關機、重啟、信息讀取、add賬戶、截圖、鍵盤記錄等子程序,在主程序中我們通調用將各個子程序連接起來,共同實現(xiàn)計算機的控制,形成了一個完成的程序。通過該程序,我們可以在界面上輸入不同的命令是計算機實現(xiàn)不同的功能,以及得到計算機的信息等功能。本次設計的遠程控制程序——駐留端主要能實現(xiàn)如下功能:通過鍵盤輸入命令可以實現(xiàn)計算機的關機;通過鍵盤輸入命令可以實現(xiàn)計算機的關機;;通過鍵盤輸入命令可以在計算機administrator組中參加admin賬戶;通過鍵盤輸入命令可以實現(xiàn)計算機屏幕截圖,結果輸出到;通過鍵盤輸入命令可以實現(xiàn)計算機鍵盤輸入數(shù)據(jù)記錄,結果輸出到;致謝四年的讀書生活在這個季節(jié)即將劃上一個句號,而于我的人生卻只是一個逗號,我將面對又一次征程的開始。四年的求學生涯在師長、親友的大力支持下,走得辛苦卻也收獲滿囊,在論文即將付梓之際,思緒萬千,心情久久不能平靜。偉人、名人為我所崇拜,可是我更急迫地要把我的敬意和贊美獻給一位平凡的人,我的導師——XXX老師。我不是您最出色的學生,而您卻是我最尊敬的老師。您治學嚴謹,學識淵博,思想深邃,視野雄闊,為我營造了一種良好的精神氣氛。授人以魚不如授人以漁,置身其間,耳濡目染,潛移默化,使我不僅接受了全新的思想觀念,樹立了宏偉的學術目標,領會了根本的思考方式,從論文題目的選定到論文寫作的指導,經由您悉心的點撥,再經思考后的領悟,常常讓我有“山重水復疑無路,柳暗花明又一村”。感謝我的爸爸媽媽,焉得諼草,言樹之背,養(yǎng)育之恩,無以回報,你們永遠健康快樂是我最大的心愿。在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯謝意!同時也感謝學院為我提供良好的做畢業(yè)設計的環(huán)境。最后再一次感謝所有在畢業(yè)設計中曾經幫助過我的良師益友和同學,以及在設計中被我引用或參考的論著的作者。參考文獻[1]胡建偉,湯建龍,楊紹全.《網絡對抗原理[M]》.西安電子科技大學出版社,2004:236-268.[2]鄧麗,董淵,張瑞豐.《C++語言程序設計〔第三版〕[M]》.清華大學出版社,2004:324-358.[3],.《計算機網絡自頂向下方法[M]》.機械工業(yè)出版社,2009:596-607.[4]單春,《網絡攻擊中的特洛伊木馬及其防范手段[J]》.遼寧師范太學學報〔自然科學版〕.V01,23No,34-39,2000.[5]岳兵,霍寶鋒,謝冰,趙云霞,劉伯瑩.《網絡入侵行為模式研究[M]》.天津大學學報,V01,36No,25-29,2003.[6]楊守君.《黑客技術與網絡平安[M]》.北京:中國對外翻譯出版公司,2000:68-128.[7]盧勇煥.《黑客與平安[M]》.中國青年出版社,2001:6-19.[8]張漢亭.《計算機病毒與反病毒技術[M]》.清華大學出版社,199::110-126.[9]張鍵.《防毒殺毒[M]》.電子工業(yè)出版社,1999:406-409.[10]藺聰.基于木馬的黑客攻擊技術[J].[期刊論文].電腦知識與技術,2008〔8〕:5-10.[11]羅澤軍.通信管理系統(tǒng)的平安性研究[J].[學位論文]碩士,2006:15-16.[12]周凱.計算機網絡常見攻擊技術及其防范研究[J].[期刊論文].科技信息,2008〔35〕:19-23.[13]陳慶忠.木馬程序設計[J].[學位論文]學士,2010:134-176.[14]范文慶.周彬彬,安靖,精通WindowsAPI—函數(shù),接口,編程實例[M].人民郵電出版社,2009:307-356.[15]宋彥儒,周翔.計算機遠程控制系統(tǒng)設計[J].[學位論文],2008:1-6.[16]JeffProsise.MTCWindows程序設計[M].清華大學出版社,2001:307-349.[17]丁寒舒,敬榮,汪淵.計算機遠程控制研究[J].[期刊論文],2010:68-79.附錄API函數(shù)表WNetAddConnection創(chuàng)立同一個網絡資源的永久性連接WNetAddConnection2創(chuàng)立同一個網絡資源的連接WNetAddConnection3創(chuàng)立同一個網絡資源的連接WNetCancelConnection結束一個網絡連接WNetCancelConnection2結束一個網絡連接WNetCloseEnum結束一次枚舉操作WNetConnectionDialog啟動一個標準對話框,以便建立同網絡資源的連接WNetDisconnectDialog啟動一個標準對話框,以便斷開同網絡資源的連接WNetEnumResource枚舉網絡資源WNetGetConnection獲取本地或已連接的一個資源的網絡名稱WNetGetLastError獲取網絡錯誤的擴展錯誤信息WNetGetUniversalName獲取網絡中一個文件的遠程名稱以及/或者UNC〔統(tǒng)一命名標準〕名稱WNetGetUser獲取一個網絡資源用以連接的名字WNetOpenEnum啟動對網絡資源進行枚舉的過程BroadcastSystemMessage將一條系統(tǒng)消息播送給系統(tǒng)中所有的頂級窗口GetMessagePos取得消息隊列中上一條消息處理完畢時的鼠標指針屏幕位置GetMessageTime取得消息隊列中上一條消息處理完畢時的時間PostMessage將一條消息投遞到指定窗口的消息隊列PostThreadMessage將一條消息投遞給應用程序RegisterWindowMessage獲取分配給一個字串標識符的消息編號ReplyMessage答復一個消息SendMessage調用一個窗口的窗口函數(shù),將一條消息發(fā)給那個窗口SendMessageCallback將一條消息發(fā)給窗口SendMessageTimeout向窗口發(fā)送一條消息SendNotifyMessage向窗口發(fā)送一條消息CloseHandle關閉一個內核對象。其中包括文件、文件映射、進程、線程、平安和同步對象等CompareFileTime比照兩個文件的時間CopyFile復制文件CreateDirectory創(chuàng)立一個新目錄CreateFile翻開和創(chuàng)立文件、管道、郵槽、通信效勞、設備以及控制臺CreateFileMapping創(chuàng)立一個新的文件映射對象DeleteFile刪除指定文件DeviceIoControl對設備執(zhí)行指定的操作DosDateTimeToFileTime將DOS日期和時間值轉換成一個win32FILETIME值FileTimeToDosDateTime將一個win32FILETIME值轉換成DOS日期和時間值FileTimeToLocalFileTime將一個FILETIME結構轉換本錢地時間FileTimeToSystemTime根據(jù)一個FILETIME結構的內容,裝載一個SYSTEMTIME結構FindClose關閉由FindFirstFile函數(shù)創(chuàng)立的一個搜索句柄FindFirstFile根據(jù)文件名查找文件FindNextFile根據(jù)調用FindFirstFile函數(shù)時指定的一個文件名查找下一個文件FlushFileBuffers針對指定的文件句柄,刷新內部文件緩沖區(qū)FlushViewOfFile將寫入文件映射緩沖區(qū)的所有數(shù)據(jù)都刷新到磁盤GetBinaryType判斷文件是否可以執(zhí)行GetCompressedFileSize判斷一個壓縮文件在磁盤上實際占據(jù)的字節(jié)數(shù)GetCurrentDirectory在一個緩沖區(qū)中裝載當前目錄GetDiskFreeSpace獲取與一個磁盤的組織有關的信息,以及了解剩余空間的容量GetDiskFreeSpaceEx獲取與一個磁盤的組織以及剩余空間容量有關的信息GetDriveType判斷一個磁盤驅動器的類型GetExpandedName取得一個壓縮文件的全名GetFileAttributes判斷指定文件的屬性GetFileInformationByHandle這個函數(shù)提供了獲取文件信息的一種機制GetFileSize判斷文件長度GetFileTime取得指定文件的時間信息GetFileType在給出文件句柄的前提下,判斷文件類型GetFileVersionInfo從支持版本標記的一個模塊里獲取文件版本信息GetFileVersionInfoSize針對包含了版本資源的一個文件,判斷容納文件版本信息需要一個多大的緩沖區(qū)GetFullPathName獲取指定文件的完整路徑名GetLogicalDrives判斷系統(tǒng)中存在哪些邏輯驅動器字母GetLogicalDriveStrings獲取一個字串,其中包含了當前所有邏輯驅動器的根驅動器路徑GetOverlappedResult判斷一個重疊操作當前的狀態(tài)GetPrivateProfileInt為初始化文件〔.ini文件〕中指定的條目獲取一個整數(shù)值GetPrivateProfileSection獲取指定小節(jié)〔在.ini文件中〕所有項名和值的一個列表GetPrivateProfileString為初始化文件中指定的條目取得字串GetProfileInt取得win.ini初始化文件中指定條目的一個整數(shù)值GetProfileSection獲取指定小節(jié)〔在win.ini文件中〕所有項名和值的一個列表GetProfileString為win.ini初始化文件中指定的條目取得字串GetShortPathName獲取指定文件的短路徑名GetSystemDirectory取得Windows系統(tǒng)目錄〔即System目錄〕的完整路徑名GetTempFileName這個函數(shù)包含了一個臨時文件的名字,它可由應用程序使用GetTempPath獲取為臨時文件指定的路徑GetVolumeInformation獲取與一個磁盤卷有關的信息GetWindowsDirectory獲取Windows目錄的完整路徑名hread參考lreadhwrite參考lwrite函數(shù)lclose關閉指定的文件lcreat創(chuàng)立一個文件llseek設置文件中進行讀寫的當前位置LockFile鎖定文件的某一局部,使其不與其他應用程序共享LockFileEx與LockFile相似,只是它提供了更多的功能lopen以二進制模式翻開指定的文件lread將文件中的數(shù)據(jù)讀入內存緩沖區(qū)lwrite將數(shù)據(jù)從內存緩沖區(qū)寫入一個文件LZClose關閉由LZOpenFile或LZInit函數(shù)翻開的一個文件LZCopy復制一個文件LZInit這個函數(shù)用于初始化內部緩沖區(qū)LZOpenFile該函數(shù)能執(zhí)行大量不同的文件處理,而且兼容于壓縮文件LZRead將數(shù)據(jù)從文件讀入內存緩沖區(qū)LZSeek設置一個文件中進行讀寫的當前位置MapViewOfFile將一個文件映射對象映射到當前應用程序的地址空間MoveFile移動文件OpenFile這個函數(shù)能執(zhí)行大量不同的文件操作OpenFileMapping翻開一個現(xiàn)成的文件映射對象QueryDosDevice在WindowsNT中,DOS設備名會映射成NT系統(tǒng)設備名。該函數(shù)可判斷當前的設備映射情況ReadFile從文件中讀出數(shù)據(jù)ReadFileEx與ReadFile相似,只是它只能用于異步讀操作,并包含了一個完整的回調RegCloseKey關閉系統(tǒng)注冊表中的一個項〔或鍵〕RegConnectRegistry訪問遠程系統(tǒng)的局部注冊表RegCreateKey在指定的項下創(chuàng)立或翻開一個項RegCreateKeyEx在指定項下創(chuàng)立新項的更復雜的方式。在Win32環(huán)境中建議使用這個函數(shù)RegDeleteKey刪除現(xiàn)有項下方一個指定的子項RegDeleteValue刪除指定項下方的一個值RegEnumKey枚舉指定項的子項。在Win32環(huán)境中應使用RegEnumKeyExRegEnumKeyEx枚舉指定項下方的子項RegEnumValue枚舉指定項的值RegFlushKey將對項和它的子項作出的改動實際寫入磁盤RegGetKeySecurity獲取與一個注冊表項有關的平安信息RegLoadKey從以前用RegSaveKey函數(shù)創(chuàng)立的一個文件里裝載注冊表信息RegNotifyChangeKeyValue注冊表項或它的任何一個子項發(fā)生變化時,用這個函數(shù)提供一種通知機制RegOpenKey翻開一個現(xiàn)有的注冊表項RegOpenKeyEx翻開一個現(xiàn)有的項。在win32下推薦使用這個函數(shù)RegQueryInfoKey獲取與一個項有關的信息RegQueryValue取得指定項或子項的默認〔未命名〕值RegQueryValueEx獲取一個項的設置值RegReplaceKey用一個磁盤文件保存的信息替換注冊表信息;并創(chuàng)立一個備份,在其中包含當前注冊表信息RegRestoreKey從一個磁盤文件恢復注冊表信息RegSaveKey將一個項以及它的所有子項都保存到一個磁盤文件RegSetKeySecurity設置指定項的平安特性RegSetValue設置指定項或子項的默認值RegSetValueEx設置指定項的值RegUnLoadKey卸載指定的項以及它的所有子項RemoveDirectory刪除指定目錄SearchPath查找指定文件SetCurrentDirectory設置當前目錄SetEndOfFile針對一個翻開的文件,將當前文件位置設為文件末尾SetFileAttributes設置文件屬性SetFilePointer在一個文件中設置當前的讀寫位置SetFileTime設置文件的創(chuàng)立、訪問及上次修改時間SetHandleCount這個函數(shù)不必在win32下使用;即使使用,也不會有任何效果SetVolumeLabel設置一個磁盤的卷標〔Label〕SystemTimeToFileTime根據(jù)一個FILETIME結構的內容,載入一個SYSTEMTIME結構UnlockFile解除對一個文件的鎖定UnlockFileEx解除對一個文件的鎖定UnmapViewOfFile在當前應用程序的內存地址空間解除對一個文件映射對象的映射VerFindFile用這個函數(shù)決定一個文件應安裝到哪里VerInstallFile用這個函數(shù)安裝一個文件VerLanguageName這個函數(shù)能根據(jù)16位語言代碼獲取一種語言的名稱VerQueryValue這個函數(shù)用于從版本資源中獲取信息WriteFile將數(shù)據(jù)寫入一個文件WriteFileEx與WriteFile類似,只是它只能用于異步寫操作,并包括了一個完整的回調WritePrivateProfileSection為一個初始化文件〔.ini〕中指定的小節(jié)設置所有項名和值WritePrivateProfileString在初始化文件指定小節(jié)內設置一個字串WriteProfileSection為Win.ini初始化文件中一個指定的小節(jié)設置所有項名和值BitBlt將一幅位圖從一個設備場景復制到另一個CopyIcon制作指定圖標或鼠標指針的一個副本。這個副本附屬于發(fā)出調用的應用程序CopyImage復制位圖、圖標或指針,同時在復制過程中進行一些轉換工作CreateBitmap按照規(guī)定的格式創(chuàng)立一幅與設備有關位圖CreateBitmapIndirect創(chuàng)立一幅與設備有關位圖CreateCompatibleBitmap創(chuàng)立一幅與設備有關位圖,它與指定的設備場景兼容CreateCursor創(chuàng)立一個鼠標指針CreateDIBitmap根據(jù)一幅與設備無關的位圖創(chuàng)立一幅與設備有關的位圖CreateDIBSection創(chuàng)立一個DIBSectionCreateIcon創(chuàng)立一個圖標CreateIconIndirect創(chuàng)立一個圖標DestroyCursor去除指定的鼠標指針,并釋放它占用的所有系統(tǒng)資源DestroyIcon去除圖標DrawIcon在指定的位置畫一個圖標DrawIconEx描繪一個圖標或鼠標指針。與DrawIcon相比,這個函數(shù)提供了更多的功能ExtractAssociatedIcon判斷一個可執(zhí)行程序或DLL中是否存在圖標,或是否有圖標與系統(tǒng)注冊表中指定的文件存在關聯(lián)并提取之ExtractIcon判斷一個可執(zhí)行文件或DLL中是否有圖標存在,并將其提取出來GetBitmapBits將來自位圖的二進制位復制到一個緩沖區(qū)GetBitmapDimensionEx取得一幅位圖的寬度和高度GetDIBColorTable從選入設備場景的DIBSection中取得顏色表信息GetDIBits將來自一幅位圖的二進制位復制到一幅與設備無關的位圖里GetIconInfo取得與圖標有關的信息GetStretchBltMode判斷StretchBlt和StretchDIBits函數(shù)采用的伸縮模式LoadBitmap從指定的模塊或應用程序實例中載入一幅位圖LoadCursor從指定的模塊或應用程序實例中載入一個鼠標指針LoadCursorFromFile在一個指針文件或一個動畫指針文件的根底上創(chuàng)立一個指針LoadIcon從指定的模塊或應用程序實例中載入一個圖標LoadImage載入一個位圖、圖標或指針MaskBlt執(zhí)行復雜的圖象傳輸,同時進行掩?!睲ASK〕處理PatBlt在當前選定的刷子的根底上,用一個圖案填充指定的設備場景PlgBlt復制一幅位圖,同時將其轉換成一個平行四邊形。利用它可對位圖進行旋轉處理SetBitmapBits將來自緩沖區(qū)的二進制位復制到一幅位圖SetBitmapDimensionEx設置一幅位圖的寬度。以一毫米的十分之一為單位SetDIBColorTable設置選入設備場景的一個DIBSection的顏色表信息SetDIBits將來自與設備無關位圖的二進制位復制到一幅與設備有關的位圖里SetDIBitsToDevice將一幅與設備無關位圖的全部或局部數(shù)據(jù)直接復制到一個設備SetStretchBltMode指定StretchBlt和StretchDIBits函數(shù)的伸縮模式StretchBlt將一幅位圖從一個設備場景復制到另一個StretchDIBits將一幅與設備無關位圖的全部或局部數(shù)據(jù)直接復制到指定的設備場景8.API之繪圖函數(shù)AbortPath拋棄選入指定設備場景中的所有路徑。也取消目前正在進行的任何路徑的創(chuàng)立工作AngleArc用一個連接弧畫一條線Arc畫一個圓弧BeginPath啟動一個路徑分支CancelDC取消另一個線程里的長時間繪圖操作Chord畫一個弦CloseEnhMetaFile關閉指定的增強型圖元文件設備場景,并將新建的圖元文件返回一個句柄CloseFigure描繪到一個路徑時,關閉當前翻開的圖形CloseMetaFile關閉指定的圖元文件設備場景,并向新建的圖元文件返回一個句柄CopyEnhMetaFile制作指定增強型圖元文件的一個副本〔拷貝〕CopyMetaFile制作指定〔標準〕圖元文件的一個副本CreateBrushIndirect在一個LOGBRUSH數(shù)據(jù)結構的根底上創(chuàng)立一個刷子CreateDIBPatternBrush用一幅與設備無關的位圖創(chuàng)立一個刷子,以便指定刷子樣式〔圖案〕CreateEnhMetaFile創(chuàng)立一個增強型的圖元文件設備場景CreateHatchBrush創(chuàng)立帶有陰影圖案的一個刷子CreateMetaFile創(chuàng)立一個圖元文件設備場景CreatePatternBrush用指定了刷子圖案的一幅位圖創(chuàng)立一個刷子CreatePen用指定的樣式、寬度和顏色創(chuàng)立一個畫筆CreatePenIndirect根據(jù)指定的LOGPEN結構創(chuàng)立一個畫筆CreateSolidBrush用純色創(chuàng)立一個刷子DeleteEnhMetaFile刪除指定的增強型圖元文件DeleteMetaFile刪除指定的圖元文件DeleteObject刪除GDI對象,對象使用的所有系統(tǒng)資源都會被釋放DrawEdge用指定的樣式描繪一個矩形的邊框DrawEscape換碼〔Escape〕函數(shù)將數(shù)據(jù)直接發(fā)至顯示設備驅動程序DrawFocusRect畫一個焦點矩形DrawFrameControl描繪一個標準控件DrawState為一幅圖象或繪圖操作應用各式各樣的效果Ellipse描繪一個橢圓,由指定的矩形圍繞EndPath停止定義一個路徑EnumEnhMetaFile針對一個增強型圖元文件,列舉其中單獨的圖元文件記錄EnumMetaFile為一個標準的windows圖元文件枚舉單獨的圖元文件記錄EnumObjects枚舉可隨同指定設備場景使用的畫筆和刷子ExtCreatePen創(chuàng)立一個擴展畫筆〔裝飾或幾何〕ExtFloodFill在指定的設備場景里,用當前選擇的刷子填充一個區(qū)域FillPath關閉路徑中任何翻開的圖形,并用當前刷子填充FillRect用指定的刷子填充一個矩形FlattenPath將一個路徑中的所有曲線都轉換成線段FloodFill用當前選定的刷子在指定的設備場景中填充一個區(qū)域FrameRect用指定的刷子圍繞一個矩形畫一個邊框GdiComment為指定的增強型圖元文件設備場景添加一條注釋信息GdiFlush執(zhí)行任何未決的繪圖操作GdiGetBatchLimit判斷有多少個GDI繪圖命令位于隊列中GdiSetBatchLimit指定有多少個GDI繪圖命令能夠進入隊列GetArcDirection畫圓弧的時候,判斷當前采用的繪圖方向GetBkColor取得指定設備場景當前的背景顏色GetBkMode針對指定的設備場景,取得當前的背景填充模式GetBrushOrgEx判斷指定設備場景中當前選定刷子起點GetCurrentObject獲得指定類型的當前選定對象GetCurrentPositionEx在指定的設備場景中取得當前的畫筆位置GetEnhMetaFile取得磁盤文件中包含的一個增強型圖元文件的圖元文件句柄GetEnhMetaFileBits將指定的增強型圖元文件復制到一個內存緩沖區(qū)里GetEnhMetaFileDescription返回對一個增強型圖元文件的說明GetEnhMetaFileHeader取得增強型圖元文件的圖元文件頭GetEnhMetaFilePaletteEntries取得增強型圖元文件的全部或局部調色板GetMetaFile取得包含在一個磁盤文件中的圖元文件的圖元文件句柄GetMetaFileBitsEx將指定的圖元文件復制到一個內存緩沖區(qū)GetMiterLimit取得設備場景的斜率限制〔Miter〕設置GetNearestColor根據(jù)設備的顯示能力,取得與指定顏色最接近的一種純色GetObjectAPI取得對指定對象進行說明的一個結構GetObjectType判斷由指定句柄引用的GDI對象的類型GetPath取得對當前路徑進行定義的一系列數(shù)據(jù)GetPixel在指定的設備場景中取得一個像素的RGB值GetPolyFillMode針對指定的設備場景,獲得多邊形填充模式GetROP2針對指定的設備場景,取得當前的繪圖模式GetStockObject取得一個固有對象〔Stock〕GetSysColorBrush為任何一種標準系統(tǒng)顏色取得一個刷子GetWinMetaFileBits通過在一個緩沖區(qū)中填充用于標準圖元文件的數(shù)據(jù),將一個增強型圖元文件轉換成標準windows圖元文件InvertRect通過反轉每個像素的值,從而反轉一個設備場景中指定的矩形LineDDA枚舉指定線段中的所有點LineTo用當前畫筆畫一條線,從當前位置連到一個指定的點MoveToEx為指定的設備場景指定一個新的當前畫筆位置PaintDesk在指定的設備場景中描繪桌面墻紙圖案PathToRegion將當前選定的路徑轉換到一個區(qū)域里Pie畫一個餅圖PlayEnhMetaFile在指定的設備場景中畫一個增強型圖元文件PlayEnhMetaFileRecord回放單獨一條增強型圖元文件記錄PlayMetaFile在指定的設備場景中回放一個圖元文件PlayMetaFileRecord回放來自圖元文件的單條記錄PolyBezier描繪一條或多條貝塞爾〔Bezier〕曲線PolyDraw描繪一條復雜的曲線,由線段及貝塞爾曲線組成Polygon描繪一個多邊形Polyline用當前畫筆描繪一系列線段PolyPolygon用當前選定畫筆描繪兩個或多個多邊形PolyPolyline用當前選定畫筆描繪兩個或多個多邊形Rectangle用當前選定的畫筆描繪矩形,并用當前選定的刷子填充RoundRect用當前選定的畫筆畫一個圓角矩形,并用當前選定的刷子在其中填充SelectClipPath將設備場景當前的路徑合并到剪切區(qū)域里SelectObject為當前設備場景選擇圖形對象SetArcDirection設置圓弧的描繪方向SetBkColor為指定的設備場景設置背景顏色SetBkMode指定陰影刷子、虛線畫筆以及字符中的空隙的填充方式SetBrushOrgEx為指定的設備場景設置當前選定刷子的起點SetEnhMetaF

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論