亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        PC屏幕加解鎖無(wú)線控制程序設(shè)計(jì)與實(shí)現(xiàn)

        2015-12-20 01:09:42邢海峰
        電子科技 2015年3期
        關(guān)鍵詞:鉤子控制程序服務(wù)端

        邢海峰

        (內(nèi)蒙古財(cái)經(jīng)大學(xué)計(jì)算機(jī)信息管理學(xué)院,內(nèi)蒙古呼和浩特 010050)

        隨著計(jì)算機(jī)系統(tǒng)的普及,人們工作學(xué)習(xí)基本均可通過(guò)計(jì)算機(jī)系統(tǒng)的輔助完成,而大量的工作學(xué)習(xí)資料和成果將以虛擬數(shù)字資料的形式保存,這對(duì)提高人們的工作學(xué)習(xí)效率、節(jié)約工作學(xué)習(xí)成本有較大的幫助,但其也帶來(lái)了諸多負(fù)面影響,如非法入侵、信息泄露、未授權(quán)使用計(jì)算機(jī)等,所以計(jì)算機(jī)安全成為數(shù)字化時(shí)代面臨的嚴(yán)峻問(wèn)題。

        基于此,本文提出了一種基于Socket數(shù)據(jù)傳輸技術(shù),用于實(shí)現(xiàn)個(gè)人計(jì)算機(jī)屏幕加解鎖的無(wú)線控制程序設(shè)計(jì)方法,該程序是為了幫助提高個(gè)人計(jì)算機(jī)安全性,允許使用者通過(guò)個(gè)人手機(jī)來(lái)完成對(duì)個(gè)人計(jì)算機(jī)屏幕的鎖屏及解鎖控制。這不但有效地防止了外人對(duì)他人計(jì)算機(jī)的非法使用,保證個(gè)人信息安全,同時(shí),由于計(jì)算機(jī)的主人在無(wú)線局域網(wǎng)覆蓋的任何位置均可方便的控制計(jì)算機(jī),所以計(jì)算機(jī)控制不受空間的約束,為使用者帶來(lái)便利。

        1 設(shè)計(jì)原理

        1.1 框架設(shè)計(jì)

        設(shè)計(jì)實(shí)現(xiàn)的控制程序主要利用Android平臺(tái)作為控制端,通過(guò)WiFi方式接收信息并傳送進(jìn)入局域網(wǎng),然后通過(guò)局域網(wǎng)將信號(hào)傳遞到受控端的PC機(jī)實(shí)現(xiàn)對(duì)個(gè)人計(jì)算機(jī)屏幕加鎖及解鎖控制。控制程序原理框架如圖1所示。

        圖1 控制程序原理框架圖

        由控制程序原理框架圖可知,該程序有兩部分:移動(dòng)客戶端實(shí)現(xiàn)接收用戶控制信息;被控端接收用戶發(fā)送控制信息。被控信息傳輸過(guò)程為:移動(dòng)終端發(fā)送控制信息到無(wú)線路由器,無(wú)線路由器接收控制信息并路由,控制信息通過(guò)局域網(wǎng)傳送到被控計(jì)算機(jī)。

        由于Android移動(dòng)平臺(tái)隨處可得,常見(jiàn)的如用戶手中的Android手機(jī)就是最佳選擇,所以將用戶的手機(jī)作為客戶端即經(jīng)濟(jì)又不影響便攜性,則可將客戶端的控制程序部署到用戶的手機(jī)中,而被控計(jì)算機(jī)端可以開(kāi)發(fā)部署一個(gè)負(fù)責(zé)接受、解析客戶端信息,然后根據(jù)解析信息來(lái)實(shí)現(xiàn)用戶控制意圖的服務(wù)端程序即可。因?yàn)橛脩艨刂朴?jì)算機(jī)數(shù)量不一定是1臺(tái),有可能工作中需要兩臺(tái)或以上同時(shí)工作,為保證多臺(tái)計(jì)算機(jī)同時(shí)得到控制,可采用基于UDP/IP協(xié)議的數(shù)據(jù)報(bào)方式的Socket技術(shù)來(lái)實(shí)現(xiàn)客戶端與服務(wù)端的數(shù)據(jù)傳輸??刂瞥绦驑I(yè)務(wù)流程如圖2所示。

        圖2 控制程序業(yè)務(wù)流程

        1.2 核心技術(shù)

        1.2.1 Socket套接字

        Socket[1]也稱(chēng)為“套接字”,應(yīng)用程序通過(guò)“套接字”向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。Socket有兩種實(shí)現(xiàn)方式,即流式Socket(SOCK_STREAM)和數(shù)據(jù)報(bào)式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對(duì)于面向連接的TCP服務(wù)應(yīng)用,一般多用于實(shí)現(xiàn)可靠的點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸;數(shù)據(jù)報(bào)式Socket是一種面向無(wú)連接的UDP服務(wù)應(yīng)用,通常多用在實(shí)現(xiàn)具有廣播功能的數(shù)據(jù)傳輸。

        因在實(shí)際工作學(xué)習(xí)中可能出現(xiàn)一個(gè)用戶同時(shí)使用多臺(tái)計(jì)算機(jī)的情況,所以計(jì)算機(jī)屏幕加解鎖控制程序要實(shí)現(xiàn)客戶終端到被控設(shè)備的一對(duì)多數(shù)據(jù)傳輸,所以最佳的“套接字”傳輸方式應(yīng)為非面向連接的數(shù)據(jù)報(bào)“套接字”。非面向連接的數(shù)據(jù)報(bào)“套接字”傳輸數(shù)據(jù)的工作過(guò)程無(wú)需建立可靠連接,因此數(shù)據(jù)傳輸過(guò)程要比面向連接少一個(gè)建立連接的環(huán)節(jié),客戶端僅需要向被控服務(wù)端直接發(fā)送信息即可。

        由于服務(wù)端程序除了要負(fù)責(zé)接收客戶端通過(guò)Socket發(fā)來(lái)的控制信息之外,更重要的是還需要根據(jù)控制信息實(shí)現(xiàn)對(duì)被控服務(wù)端的屏幕鎖屏及解鎖操作,而實(shí)現(xiàn)屏幕加解屏必須重寫(xiě)Windons系統(tǒng)的相應(yīng)鉤子函數(shù)來(lái)實(shí)現(xiàn)系統(tǒng)硬件層的屏蔽工作,則選擇C語(yǔ)言實(shí)現(xiàn)服務(wù)端程序。在C語(yǔ)言中提供了數(shù)據(jù)報(bào)方式Socket[2]的接口函數(shù)及Socket數(shù)據(jù)存放結(jié)構(gòu),它們被定義在winsock.h或winsock2.h頭文件中。

        客戶端是Android平臺(tái)的手機(jī),所以使用Java語(yǔ)言開(kāi)發(fā)較方便。在Java中對(duì)兩種方式的Socket[3]均提供了支持。Java中用于支持流式Socket有Socket和ServerSocket類(lèi),Socket類(lèi)為客戶端提供全部接口,ServerSocket類(lèi)為服務(wù)端提供全部接口。Java用于支持?jǐn)?shù)據(jù)報(bào)方式的Socket被封裝在DatagramSocket類(lèi)中,同時(shí)提供了DatagramPacket類(lèi)來(lái)封裝Socket數(shù)據(jù)。

        需要注意的是,由于客戶端和服務(wù)端實(shí)現(xiàn)Socket的語(yǔ)言不同,而不同語(yǔ)言在獲取Socket數(shù)據(jù)的類(lèi)型可能存在差異,所以當(dāng)發(fā)送接收數(shù)據(jù)時(shí)需要對(duì)數(shù)據(jù)進(jìn)行一些必要的類(lèi)型處理。

        1.2.2 屏幕加解鎖原理

        屏幕加鎖是通過(guò)屏蔽系統(tǒng)標(biāo)準(zhǔn)輸入外設(shè)的輸入來(lái)實(shí)現(xiàn)。理論上有兩種方法可以實(shí)現(xiàn)該項(xiàng)功能:(1)直接修改處理器內(nèi)部負(fù)責(zé)管理輸入中斷的寄存器值,將管理外部輸入設(shè)備的中斷位屏蔽,使硬件系統(tǒng)不能得到外部中斷,進(jìn)而實(shí)現(xiàn)鎖屏功能。(2)不修改任何硬件寄存器值,僅是通過(guò)一些軟件技術(shù),使操作系統(tǒng)忽略外設(shè)的輸入中斷請(qǐng)求,從而實(shí)現(xiàn)鎖屏的功能。由于實(shí)現(xiàn)鎖屏功能時(shí),操作系統(tǒng)已經(jīng)處于運(yùn)行狀態(tài),其會(huì)通過(guò)自身定義的安全策略對(duì)底層的硬件加以保護(hù),所以要采用直接修改硬件寄存器的方法來(lái)實(shí)現(xiàn)鎖屏難度較大。再者,即使能夠突破操作系統(tǒng)的保護(hù)直接修改硬件寄存器值,對(duì)系統(tǒng)本身的安全性也是一種潛在威脅,所以第2種是較好的選擇方案。而解鎖功能與加鎖正好相反。

        Windows系統(tǒng)在設(shè)計(jì)時(shí)就為高級(jí)用戶預(yù)留了一項(xiàng)稱(chēng)為鉤子[4-5]的功能,用戶可通過(guò)調(diào)用鉤子安裝函數(shù)SetWindowsHookEx將自己實(shí)現(xiàn)的鉤子掛到Windows系統(tǒng)中。正是通過(guò)自身定義的鉤子函數(shù),無(wú)論是系統(tǒng)的開(kāi)發(fā)維護(hù)人員,還是系統(tǒng)高級(jí)外圍程序員均可完成一些能夠影響系統(tǒng)的行為工作。如本文要實(shí)現(xiàn)的加減鎖控制程序便可使用Windows的鉤子來(lái)實(shí)現(xiàn)。

        Windows中鉤子的實(shí)現(xiàn)有兩種方式:內(nèi)部鉤子、全局鉤子。內(nèi)部鉤子只能影響當(dāng)前運(yùn)行的進(jìn)程行為,而全局鉤子可影響所有運(yùn)行進(jìn)程,但全局鉤子實(shí)現(xiàn)需要采用動(dòng)態(tài)鏈接庫(kù)方式,所以在本文所實(shí)現(xiàn)的服務(wù)端程序的核心鎖屏及解鎖功能要以動(dòng)態(tài)連接庫(kù)的方式連接到主程序中。

        分析了所使用的加鎖及解鎖技術(shù)原理后,為了提高控制程序自身的安全性,防止非法用戶通過(guò)使用用戶手機(jī)來(lái)控制用戶計(jì)算機(jī),提出一種簡(jiǎn)單有效的方法來(lái)保證控制程序的安全性。

        首先,服務(wù)端程序開(kāi)始運(yùn)行時(shí)需要用戶輸入一組密碼,該密碼的生存期從輸入結(jié)束開(kāi)始,到服務(wù)端程序結(jié)束終止;其次,當(dāng)用戶需要啟動(dòng)手機(jī)客戶端程序控制計(jì)算機(jī)時(shí),需要用戶提供服務(wù)端密碼。當(dāng)用戶提供了正確的密碼,客戶端程序會(huì)將密碼和控制信號(hào)封裝發(fā)送到服務(wù)端;服務(wù)端接收到數(shù)據(jù)后,按照數(shù)據(jù)封裝順序解析密碼和控制信號(hào),根據(jù)密碼驗(yàn)證身份,身份正確后執(zhí)行相應(yīng)的屏幕控制行為。數(shù)據(jù)封裝及解析過(guò)程如圖3所示。

        圖3 數(shù)據(jù)封裝及解析

        1.2.3 Android應(yīng)用開(kāi)發(fā)原理

        (1)Android應(yīng)用程序組成。Android應(yīng)用程序是由組件組成,而組件是可調(diào)用的基本功能模塊。Android系統(tǒng)有4 個(gè)重要組件分別是[6]:Activity、Service、BroadcaseReceiver和ContentProvider;Activity是Android程序的呈現(xiàn)層,顯示可視化的用戶界面,并接收與用戶交互所產(chǎn)生的界面事件;Service用于沒(méi)有用戶界面,但需要長(zhǎng)時(shí)間在后臺(tái)運(yùn)行的應(yīng)用;ContentProvider是Android系統(tǒng)提供的一種標(biāo)準(zhǔn)的共享數(shù)據(jù)的機(jī)制,應(yīng)用程序可通過(guò)ContentProvider訪問(wèn)其他應(yīng)用程序存儲(chǔ)在文件系統(tǒng)中的文件,也可以是SQLite中數(shù)據(jù)庫(kù)的私有數(shù)據(jù);Broadcase-Receiver是用于接受并響應(yīng)廣播消息的組件,不包含任何用戶界面,可通過(guò)啟動(dòng)Activity或Notification通知用戶接收到重要信息。

        (2)組件生命周期。所有Android組件都具有自己的生命周期[7],是從組件建立到組件銷(xiāo)毀的整個(gè)過(guò)程。在生命周期中,組件會(huì)在可見(jiàn)、不可見(jiàn)、活動(dòng)、非活動(dòng)等狀態(tài)中不斷變化。介紹控制系統(tǒng)中使用的Activity生命周期,如圖4所示。

        圖4 Activity生命周期

        Activity生命周期指Activity從啟動(dòng)到銷(xiāo)毀的過(guò)程,Activity表現(xiàn)為4種狀態(tài),分別是活動(dòng)狀態(tài)、暫停狀態(tài)、停止?fàn)顟B(tài)和非活動(dòng)狀態(tài)。

        活動(dòng)狀態(tài):Activity在用戶界面中處于最上層,用戶可見(jiàn),實(shí)現(xiàn)用戶交互。

        暫停狀態(tài):Activity在界面上被部分遮擋,該Activity不再處于用戶界面的最上層,且不能夠與用戶進(jìn)行交互。

        停止?fàn)顟B(tài):Activity在界面上完全不能被用戶看到,也就是說(shuō)這個(gè)Activity被其他Activity全部遮擋。

        非活動(dòng)狀態(tài)不在以上3種狀態(tài)中的Activity則處于非活動(dòng)狀態(tài)。

        (3)組件的回調(diào)函數(shù)。Android系統(tǒng)的Activity組件提供了7個(gè)回調(diào)函數(shù)來(lái)控制該組件的創(chuàng)建、狀態(tài)變化及銷(xiāo)毀,分別為 onCreate、onStart、onRestart、onResume、onPause、onStop、onDestroy。

        (4)Android應(yīng)用程序間消息傳遞。Android系統(tǒng)中采用稱(chēng)為意圖的Intent類(lèi)來(lái)實(shí)現(xiàn)不同應(yīng)用程序間的信息傳遞。Intent[8]可劃分為顯式意圖和隱式意圖兩種。顯式意圖:調(diào)用Intent.setComponent()或Intent.setClass()方法指定組件名或類(lèi)對(duì)象。隱式意圖:Android系統(tǒng)會(huì)根據(jù)隱式意圖中設(shè)置的動(dòng)作(Action)、類(lèi)別(Category)、數(shù)據(jù)(URI和數(shù)據(jù)類(lèi)型)找到最合適的組件來(lái)處理這個(gè)意圖。

        2 程序?qū)崿F(xiàn)

        2.1 客戶端實(shí)現(xiàn)

        客戶端功能由Java語(yǔ)言封裝的控制主類(lèi)MainActivity來(lái)實(shí)現(xiàn),主類(lèi)繼承了Android組件Activity。

        客戶端主控制類(lèi)MainActivity中使用的MangicPackage類(lèi)封裝了數(shù)據(jù)報(bào)Socket的操作。

        public class MangicPackage{

        public boolean sendMessages(String str)throws IOException{

        int port=9999;//端口號(hào)大于1024

        String destIP=“255.255.255.255”;//廣播地址

        //檢測(cè)地址,并將其轉(zhuǎn)換為二進(jìn)制

        InetAddress destHost=null;

        try{destHost=InetAddress.getByName(destIP);

        }

        catch(UnknownHostException e){e-.printStackTrace();}

        //建立Socket數(shù)據(jù)包

        byte[]magicBytes=str.getBytes();

        DatagramPacket dp=null;

        dp=new DatagramPacket(magicBytes,magicBytes.length,destHost,port);

        DatagramSocket ds=new DatagramSocket();

        ds.send(dp);//發(fā)送數(shù)據(jù)

        ds.close();//關(guān)閉 Socket

        return true;

        }

        }

        2.2 服務(wù)端實(shí)現(xiàn)

        服務(wù)端程序主要任務(wù)有兩個(gè),首先利用Socket來(lái)監(jiān)聽(tīng)客戶端的控制信息,然后解碼信息,根據(jù)解碼信息來(lái)實(shí)現(xiàn)鎖屏或解屏操作。采用動(dòng)態(tài)連接庫(kù)方式實(shí)現(xiàn)全局鉤子,鉤子中完成鎖屏及解屏。

        HHOOK hKey=NULL;//保存鍵盤(pán)消息鉤子句柄

        HHOOK hMouse=NULL;//保存鼠標(biāo)消息鉤子句柄

        HINSTANCE hInst=NULL;

        BOOL WINAPI DllMain(HINSTANCE hInstance,DWORD reason,LPVOID lpVoid)

        {hInst=hInstance;

        return true;

        }

        //屏蔽鼠標(biāo)的鉤子

        LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM wParam)

        {

        if(nCode<0)//wParam和wParam中沒(méi)有關(guān)于鼠標(biāo)的消息

        return CallNextHookEx(hMouse,nCode,wParam,lParam);

        //屏蔽鼠標(biāo)右鍵按下及彈起信息

        if(wParam==WM_RBUTTONDOWN||wParam==WM_RBUTTONUP)

        return 1;

        //屏蔽鼠標(biāo)移動(dòng)

        if(wParam==WM_MOUSEMOVE)

        return 1

        //屏蔽鼠標(biāo)左鍵按下及彈起信息

        if(wParam==WM_LBUTTONDOWN||wParam==WM_LBUTTONUP)

        return 1;

        else

        return CallNextHookEx(hMouse,nCode,wParam,lParam);

        }

        //屏蔽鍵盤(pán)鉤子

        LRESULT CALLBACK KeyBoardProc(int nCode,WPARAM wParam,LPARAM lParam)

        {

        if(VK_F2==wParam && (lParam > >29&1)==1)

        {

        UnhookWindowsHookEx(hMouse);hMouse=NULL;

        UnhookWindowsHookEx(hKey);hKey=NULL;

        }

        return 1;

        }

        //掛載鉤子

        EXPORT BOOL CALLBACK HookOn()

        {

        if(!hInst)

        return false;

        if(hKey||hMouse)

        return false;

        //函數(shù)的第四個(gè)參數(shù)為0,表示全局鉤子

        hMouse=SetWindowsHookEx(WH_MOUSE_LL,MouseProc,hInst,0);

        hKey=SetWindowsHookEx(WH_KEYBOARD_LL,KeyBoardProc,hInst,0);

        return hKey&& hMouse;

        }

        //卸載鉤子

        EXPORT BOOL CALLBACK HookOff()

        {

        BOOL bRetMouse=false,bRetKey=false;

        if(hMouse)

        bRetMouse = UnhookWindowsHookEx(hMouse);

        if(hKey)

        bRetKey=UnhookWindowsHookEx(hKey);

        if(bRetKey&& bRetMouse)

        {

        hKey=hMouse=NULL;

        return true;

        }

        return false;}

        注意鎖鍵盤(pán)鉤子,本文特意留出解鎖后門(mén),防止因不可預(yù)料意外導(dǎo)致屏幕無(wú)法解鎖,后門(mén)熱鍵是“Alt+F2”,當(dāng)然可設(shè)為任意。把動(dòng)態(tài)鏈接庫(kù)文件編譯生成dll文件,然后拷貝到服務(wù)端主控程序的目錄中,開(kāi)始實(shí)現(xiàn)服務(wù)端主控程序,主控程序核心控制功能通過(guò)創(chuàng)建一個(gè)線程ControlThread來(lái)處理。

        void ControlThread(HINSTANCE hInstance)

        {TCHAR Tmp[256]=“”;

        char ctrl;

        WSADATA wWsadata;

        WORD wWord;

        wWord=MAKEWORD(1,1);

        if(!WSAStartup(wWord,&wWsadata))//裝載指定Socket

        {//創(chuàng)建數(shù)據(jù)報(bào)SOCKET

        SOCKET sock;

        if((sock=socket(AF_INET,SOCK_DGRAM,0))!=INVALID_SOCKET)

        {//本地地址與端口綁定

        SOCKADDR_IN addr;

        addr.sin_addr.s_addr=htonl(INADDR_ANY);//轉(zhuǎn)換本地地址格式

        addr.sin_family=AF_INET;

        addr.sin_port=htons(9999);//端口號(hào)大于1024

        //綁定

        bind(sock,(SOCKADDR*)&addr,sizeof(SOCKADDR));

        SOCKADDR_IN addrClient;//收到數(shù)據(jù)后,存儲(chǔ)客戶端的地址

        int len=sizeof(SOCKADDR);

        while(1)

        {//接收數(shù)據(jù)開(kāi)始,buf是定義的全局字符串變量

        recvfrom(sock,buf,RECVLEN,0,(SOCKADDR*)&addrClient,&len);

        int len=strlen(buf);

        strcpy(Tmp,buf);

        ctrl=Tmp[len-1];

        switch(ctrl)

        {case‘1’:if(屏幕沒(méi)有鎖)HookOn();

        break;

        case‘2’:if(屏幕被鎖)HookOff();

        break;

        }

        }

        closesocket(sock);

        WSACleanup();

        }//卸載 Socket

        }}

        3 程序部署測(cè)試

        3.1 程序部署

        手機(jī)客戶端:首先確定手機(jī)Android平臺(tái)版本為2.3或以上,因客戶端程序開(kāi)發(fā)基于Android 2.3版本的開(kāi)發(fā)包,然后下載該系統(tǒng)客戶端生成的apk文件,直接點(diǎn)擊安裝即可??蛻舳顺绦虬惭b及運(yùn)行如圖4所示。

        圖4 客戶端界面

        PC服務(wù)端:將C語(yǔ)言編寫(xiě)的主程序編譯的可執(zhí)行程序和主程序調(diào)用的全局鉤子動(dòng)態(tài)鏈接庫(kù)dll文件一同復(fù)制到C盤(pán)根目錄下即可。然后點(diǎn)擊啟動(dòng)主程序,服務(wù)端程序處于接收客戶端信號(hào)狀態(tài)。服務(wù)端程序運(yùn)行如圖5所示。

        圖5 服務(wù)端程序界面

        3.2 程序測(cè)試

        首先保證局域網(wǎng)當(dāng)中的無(wú)線WiFi暢通,打開(kāi)手機(jī)的無(wú)線連接且查驗(yàn)連接成功,然后啟動(dòng)PC端的服務(wù)程序,最后打開(kāi)手機(jī)終端的控制程序,進(jìn)入控制頁(yè)面。該控制程序在Android 2.3及以上版本手機(jī)上進(jìn)行測(cè)試,全部可以正常使用,具體測(cè)試結(jié)果如表1所示。

        表1 測(cè)試結(jié)果

        4 結(jié)束語(yǔ)

        在數(shù)據(jù)報(bào)Socket數(shù)據(jù)傳輸技術(shù)支撐下,使用C和Java兩種開(kāi)發(fā)語(yǔ)言共同設(shè)計(jì)實(shí)現(xiàn)了一個(gè)無(wú)線控制的屏幕加解鎖程序。該程序既能有效防止用戶正在運(yùn)行的計(jì)算機(jī)被非法使用,又可保證用戶操作的方便性。其設(shè)計(jì)思想及實(shí)現(xiàn)方法將對(duì)逐步完善用戶個(gè)人計(jì)算機(jī)安全性工作起到積極作用。

        [1]Richard Stevens W.Advance programming in the UNIX environment[M].New York:Addison Wesley,1992.

        [2]孫鑫.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.

        [3]魔樂(lè)科技軟件實(shí)訓(xùn)中心.Java從入門(mén)到精通[M].北京:人民郵電出版社,2010.

        [4]金花.鉤子函數(shù)在Windows鍵盤(pán)鎖中的應(yīng)用初探[J].福建電腦,2007(4):181-183.

        [5]劉雄恩.捕捉和模擬Windows環(huán)境中鼠標(biāo)和鍵盤(pán)操作的方法[J].福建農(nóng)業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2003,32(2):256-260.

        [6]董曉剛.淺析Android系統(tǒng)的四大基本組件[J].中國(guó)電子商務(wù),2013(1):39.

        [7]關(guān)晶鑫,李永全.Android中的Activity生命周期[J].電腦知識(shí)與技術(shù),2013(11):2713-2715.

        [8]Cowley N.The relevance of intent to human -android strategic interaction and artificial consciousness[J].Robot and Human Interactive Communication,2006(5):480 -485.

        猜你喜歡
        鉤子控制程序服務(wù)端
        基于PLC的變電站備用電源自動(dòng)投入裝置控制程序的研究
        誰(shuí)和誰(shuí)好
        云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
        新時(shí)期《移動(dòng)Web服務(wù)端開(kāi)發(fā)》課程教學(xué)改革的研究
        在Windows Server 2008上創(chuàng)建應(yīng)用
        幸福的一家
        《脈望館鈔校本古今雜劇》穿關(guān)之“鉤子困帶”考
        中華戲曲(2017年2期)2017-02-16 06:53:24
        精鉤子
        金山(2016年5期)2016-05-30 14:18:17
        基于PLC數(shù)值處理模塊的PID控制程序研究
        紙機(jī)傳動(dòng)控制程序的復(fù)用性研究
        亚洲综合av一区二区三区| 我和丰满老女人性销魂| 美腿丝袜网址亚洲av| 男人的天堂一区二av| 国产精品久久国产精品99 | aa片在线观看视频在线播放| 免费a级毛片无码a| 亚洲国产剧情在线精品视| 国产一区二区三区蜜桃 | 高潮内射双龙视频| 中文字幕人妻丝袜美腿乱| 亚洲电影一区二区| 精品视频手机在线免费观看| 精品卡一卡二卡3卡高清乱码| 丰满少妇大力进入av亚洲| 香蕉国产人午夜视频在线观看| 久久亚洲一区二区三区四区五| 曰韩少妇内射免费播放| 久久综合精品国产一区二区三区无码 | 国产一级一厂片内射视频播放| 中文字幕在线乱码一区| 日本人与黑人做爰视频网站| 中文字幕少妇AV| 日本熟妇免费一区二区三区| 女人被狂躁的高潮免费视频| 伊人狠狠色丁香婷婷综合| 精品一区二区三区久久久| 激情五月六月婷婷俺来也| 亚洲综合网站久久久| 四虎影院在线观看| 国产日韩亚洲中文字幕| 精品人妻一区二区三区在线观看| 国产精品美女久久久久久| 麻豆国产av尤物网站尤物| 口爆吞精美臀国产在线| 欧美肥婆性猛交xxxx| 欧美色aⅴ欧美综合色| 亚洲国产色图在线视频| 精品亚洲国产成人av色哟哟| 国产日韩精品中文字无码| 国产精品国产自线拍免费 |