操作系統(tǒng)安全課程設(shè)計報告_第1頁
操作系統(tǒng)安全課程設(shè)計報告_第2頁
操作系統(tǒng)安全課程設(shè)計報告_第3頁
操作系統(tǒng)安全課程設(shè)計報告_第4頁
操作系統(tǒng)安全課程設(shè)計報告_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

課程設(shè)計報告第10頁共22頁操作系統(tǒng)安全課程設(shè)計報告學(xué)生姓名指導(dǎo)教師學(xué)院信息科學(xué)與工程學(xué)院專業(yè)班級完成時間2015年12月19日

目錄TOC\o"1-3"\h\u第一章概述 2第二章需求分析 3第三章總體設(shè)計 5第四章詳細設(shè)計 6一.界面設(shè)計 6二.獲取正在運行的進程及其信息 8三.結(jié)束進程 9四.獲取其他信息 10五.繪制圖表 11第五章調(diào)試分析 15第六章使用說明 16第七章測試結(jié)果 17第八章課程設(shè)計總結(jié) 21第九章參考文獻 22操作系統(tǒng)安全課程設(shè)計概述操作系統(tǒng)安全是整個計算機系統(tǒng)安全的重要基礎(chǔ),主要針對操作系統(tǒng)層面的安全進行剖析,是上層運行的重要保證。與計算機原理、編譯原理、匯編語言、計算機網(wǎng)絡(luò)、程序設(shè)計等專業(yè)課程關(guān)系十分密切。本課程設(shè)計的目的綜合應(yīng)用學(xué)生所學(xué)知識,建立安全系統(tǒng)的概念,理解和鞏固操作系統(tǒng)基本理論、原理和方法,掌握安全操作系統(tǒng)開發(fā)的基本技能。任務(wù)管理器是在Windows系統(tǒng)中管理應(yīng)用程序和進程的工具,通常由Windows操作系統(tǒng)自帶,也有提供增強功能的第三方軟件。通過任務(wù)管理器用戶可以方便的查看當前運行的程序、進程、用戶、網(wǎng)絡(luò)連接以及系統(tǒng)對內(nèi)存和CPU的資源占用,并可以強制結(jié)束某些程序和進程,此外還可以監(jiān)控系統(tǒng)資源的使用狀況。Windows任務(wù)管理器首次出現(xiàn)是在1998年美國微軟公司發(fā)行的Windows98操作系統(tǒng)中,此后微軟的各個版本的Windows操作系統(tǒng)都集成了任務(wù)管理器。任務(wù)管理器并不是Windows系統(tǒng)的專利,它廣泛運用于各種操作系統(tǒng)中,在蘋果公司的MacOS操作系統(tǒng)中有類似的活動監(jiān)視器(ActivityMonitor),在基于Linux的ubuntu操作系統(tǒng)有相類似功能的系統(tǒng)監(jiān)視器。Windows任務(wù)管理器提供了有關(guān)計算機性能的信息,并顯示了計算機上所運行的程序和進程的詳細信息;如果連接到網(wǎng)絡(luò),那么還可以查看網(wǎng)絡(luò)狀態(tài)并迅速了解網(wǎng)絡(luò)是如何工作的。它的用戶界面提供了文件、選項、查看、窗口、關(guān)機、幫助等六大菜單項,其下還有應(yīng)用程序、進程、性能、聯(lián)網(wǎng)、用戶等五個標簽頁。課題設(shè)計就是模擬Windows任務(wù)管理器,開發(fā)的一個Windows進程管理軟件。主要設(shè)計的是一個基于窗體的C#程序,在主對話框上面放置了一個標簽控件,并創(chuàng)建了應(yīng)用程序、進程和性能三個頁面,標簽控件用于選擇并顯示頁面。三個頁面分別用于顯示當前運行的窗口程序、進程及進程模塊、系統(tǒng)資源使用情況。程序還實現(xiàn)了結(jié)束任務(wù)、等對進程管理的基本功能。在的設(shè)計過程中,通過調(diào)用WindowsAPI函數(shù)而獲得任務(wù)、進程、線程模塊,以及系統(tǒng)資源使用情況等信息。最后在Windows10系統(tǒng)上進行測試,實現(xiàn)了進程管理的基本功能。需求分析設(shè)計一個Windows或Linux下的進程管理與監(jiān)控程序,要求該程序完成以下功能:可獲取當前正在運行的所有進程,包括進程PID、進程名稱、CPU使用情況、當前用戶名、內(nèi)存占用量等;能進一步獲取各進程的所有線程情況;能通過命令終止某個進程的執(zhí)行,終止時能將其子孫進程全部終止;要求界面友好。關(guān)于Windows任務(wù)管理器:任務(wù)管理器的用戶界面提供了文件、選項、查看、窗口、關(guān)機、幫助等六大菜單項,例如“關(guān)機”菜單下可以完成待機、休眠、關(guān)閉、重新啟動、注銷、切換等操作,其下還有應(yīng)用程序、進程、性能、聯(lián)網(wǎng)、用戶等五個標簽頁,窗口底部則是狀態(tài)欄,從這里可以查看到當前系統(tǒng)的進程數(shù)、CPU使用比率、更改的內(nèi)存<容量等數(shù)據(jù),默認設(shè)置下系統(tǒng)每隔兩秒鐘對數(shù)據(jù)進行1次自動更新,當然你也可以點擊“查看→更新速度”菜單重新設(shè)置。1.應(yīng)用程序這里顯示了所有當前正在運行的應(yīng)用程序,不過它只會顯示當前已打開窗口的應(yīng)用程序,而QQ、MSNMessenger等最小化至系統(tǒng)托盤區(qū)的應(yīng)用程序則并不會顯示出來。你可以在這里點擊“結(jié)束任務(wù)”按鈕直接關(guān)閉某個應(yīng)用程序,如果需要同時結(jié)束多個任務(wù),可以按住Ctrl鍵復(fù)選;點擊“新任務(wù)”按鈕,可以直接打開相應(yīng)的程序、文件夾、文檔或Internet資源,如果不知道程序的名稱,可以點擊“瀏覽”按鈕進行搜索,其實這個“新任務(wù)”的功能看起來有些類似于開始菜單中的運行命令。2.進程這里顯示了所有當前正在運行的進程,包括應(yīng)用程序、后臺服務(wù)等,那些隱藏在系統(tǒng)底層深處運行的病毒程序或木馬程序都可以在這里找到,當然前提是你要知道它的名稱。找到需要結(jié)束的進程名,然后執(zhí)行右鍵菜單中的“結(jié)束進程”命令,就可以強行終止,不過這種方式將丟失未保存的數(shù)據(jù),而且如果結(jié)束的是系統(tǒng)服務(wù),則系統(tǒng)的某些功能可能無法正常使用。Windows的任務(wù)管理器只能顯示系統(tǒng)中當前進行的進程,而ProcessExplorer可以樹狀方式顯示出各個進程之間的關(guān)系,即某一進程啟動了哪些其他的進程,還可以顯示某個進程所調(diào)用的文件或文件夾,如果某個進程是Windows服務(wù),則可以查看該進程所注冊的所有服務(wù),需要的朋友可以從下載。3.性能從任務(wù)管理器中我們可以看到計算機性能的動態(tài)概念,例如CPU和各種內(nèi)存的使用情況。CPU使用情況:表明處理器工作時間百分比的圖表,該計數(shù)器是處理器活動的主要指示器,查看該圖表可以知道當前使用的處理時間是多少。CPU使用記錄:顯示處理器的使用程序隨時間的變化情況的圖表,圖表中顯示的采樣情況取決于“查看”菜單中所選擇的“更新速度”設(shè)置值,“高”表示每秒2次,“正?!北硎久績擅?次,“低”表示每四秒1次,“暫停”表示不自動更新。PF使用情況:正被系統(tǒng)使用的頁面文件的量。頁面文件使用記錄:顯示頁面文件的量隨時間的變化情況的圖表,圖表中顯示的采樣情況取決于“查看”菜單中所選擇的“更新速度”設(shè)置值??倲?shù):顯示計算機上正在運行的句柄、線程、進程的總數(shù)。執(zhí)行內(nèi)存:分配給程序和操作系統(tǒng)的內(nèi)存,由于虛擬內(nèi)存的存在,“峰值”可以超過最大物理內(nèi)存,“總數(shù)”值則與“頁面文件使用記錄”圖表中顯示的值相同。物理內(nèi)存:計算機上安裝的總物理內(nèi)存,也稱RAM,“可用”表示可供使用的內(nèi)存容量,“系統(tǒng)緩存”顯示當前用于映射打開文件的頁面的物理內(nèi)存。內(nèi)核內(nèi)存:操作系統(tǒng)內(nèi)核和設(shè)備驅(qū)動程序所使用的內(nèi)存,“頁面”是可以復(fù)制到頁面文件中的內(nèi)存,由此可以釋放物理內(nèi)存;“非分頁”是保留在物理內(nèi)存中的內(nèi)存,不會被復(fù)制到頁面文件中。4.聯(lián)網(wǎng)這里顯示了本地計算機所連接的網(wǎng)絡(luò)通信量的指示,使用多個網(wǎng)絡(luò)連接時,我們可以在這里比較每個連接的通信量,當然只有安裝網(wǎng)卡后才會顯示該選項。5.用戶這里顯示了當前已登錄和連接到本機的用戶數(shù)、標識(標識該計算機上的會話的數(shù)字ID)、活動狀態(tài)(正在運行、已斷開)、客戶端名,可以點擊“注銷”按鈕重新登錄,或者通過“斷開”按鈕連接與本機的連接,如果是局域網(wǎng)用戶,還可以向其他用戶發(fā)送消息??傮w設(shè)計我決定用java語言完成本次課程設(shè)計的題目。設(shè)計思路:java可以通過一些命令拿到所需要的信息,比如系統(tǒng)版本名稱、內(nèi)存使用情況、CPU使用情況、進程狀況、線程狀況等等,拿到這些信息以后就可以制作一個簡易的任務(wù)管理器了。相對來說,java語言寫界面是比較簡單的,因此任務(wù)管理器的界面可以完全仿照Windows自帶任務(wù)管理器的界面來完成。下圖為主要的設(shè)計方案,java中可以通過如下兩個包來獲取所需的信息,所以這些信息采用get、set方法獲取后直接打印的方法展示。進程的信息則需要獲取權(quán)限,我采用用system函數(shù)調(diào)dos命令的方法來實現(xiàn)。進程的新建、關(guān)閉也同樣用dos命令完成。Windows任務(wù)管理器由性能、進程、應(yīng)用程序三大部分組成。其實這三大部分是有機的聯(lián)系在一起的,尤其是性能和進程,性能中除了CPU使用率以外,其余的數(shù)據(jù)都是由進程模塊順便取得的。Windows的任務(wù)管理器通過NtQuerySystemInformation的調(diào)用來獲取各類信息,如CPU使用率,內(nèi)存使用率,句柄總數(shù),線程總數(shù),進程總數(shù)等等。在任務(wù)管理器中的幾乎所有信息都是來自該函數(shù)。我的理解中,這兩個包里的函數(shù)和方法都會用到這個函數(shù)。java.lang.management.ManagementFactorycom.sun.management.OperatingSystemMXBean在這個任務(wù)管理器中,除了應(yīng)該可以顯示上面提到的信息之外,還要有新建和結(jié)束進程、畫出內(nèi)存和CPU使用情況圖的功能。詳細設(shè)計界面設(shè)計預(yù)計設(shè)計為類似Windows自帶的任務(wù)管理器的界面,需要用到j(luò)ava自有包java.awt.*,javax.swing.*。這兩個包中包含了許多制作窗口所需的方法。這里需要用到許多控件來實現(xiàn),如JTabbedPane控件,用于加入選項卡。還需要放置表格用來顯示進程的各項信息。JTabbedPanejtp; JPanelprocess_tab; JPanelservice_tab; JPanelfunction_tab; //顯示進程的表格 JTablepTable=newJTable(); //顯示服務(wù)的表格 JTablesTable=newJTable(); //中間面板 JPanelmainpanel;finalVectorpb=newVector(5); finalVectorsb=newVector(5); //進程信息面板 JLabelprocess_num;各個面板的各項配置也在界面設(shè)計中完成,如選項卡出現(xiàn)的位置、名稱以及顏色等。//選項卡布局publicvoidsetTab()throwsException{ jtp=newJTabbedPane(JTabbedPane.TOP); process_tab=newJPanel(); process_tab.setLayout(null); ProcessTab(); service_tab=newJPanel(); //service_tab.setLayout(null); ServiceTab(); function_tab=newJPanel(); function_tab.setLayout(null); FunctionTab(); process_tab.setBackground(Color.WHITE); service_tab.setBackground(Color.WHITE); function_tab.setBackground(Color.WHITE); jtp.add("進程",process_tab); jtp.add("待定",service_tab); jtp.add("性能",function_tab); mainpanel=newJPanel(); mainpanel.setBounds(0,0,545,580); mainpanel.add(jtp); this.getContentPane().add(mainpanel); southPanel(); }接著只要取到各項選項卡所需的信息,將其加入各個選項卡內(nèi)即可,進程選項卡還需添加表格中各個選項,這里用一個字符串數(shù)組來完成。Stringcname[]={"映像名稱","用戶名","優(yōu)先權(quán)","PID","線程數(shù)"}; for(inti=0;i<5;i++)pb.add(cname[i]);獲取正在運行的進程及其信息獲得進程及其信息采用通過命令行獲取的方式,在此之前必須先建立一個類(命名為ProcessImformation)來放置取到的信息,所需信息有:進程名稱、用戶名、優(yōu)先權(quán)、進程PID、線程數(shù),建立一個函數(shù),再增加該函數(shù)變量的get方法。ProcessImformation(Stringcaption,Stringcsname,Stringpriority, StringprocessId,StringthreadCount){ this.caption=caption; this.csname=csname; this.priority=priority; cessId=processId; this.threadCount=threadCount;取進程信息的命令:StringprocCmd=System.getenv("windir")+"\\system32\\wbem\\wmic.exeprocessgetCaption,CSName,Priority,ProcessId,ThreadCount";//取進程信息readProcess(Runtime.getRuntime().exec(procCmd));StringhandCmd=System.getenv("windir")+"\\system32\\wbem\\wmic.exeprocessgetName,HandleCount";//取句柄信息readHandle(Runtime.getRuntime().exec(handCmd));hand.getOutputStream().close();InputStreamReaderir=newInputStreamReader(hand.getInputStream());LineNumberReaderinput=newLineNumberReader(ir);Stringline=input.readLine();intcn=line.indexOf("Name");intch=line.indexOf("HandleCount"); while((line=input.readLine())!=null){ if(line.length()<cn)continue; inthandle=Integer.parseInt(line.substring(ch,cn-1).trim()); i+=handle; }proc.getOutputStream().close();InputStreamReaderir=newInputStreamReader(proc.getInputStream());LineNumberReaderinput=newLineNumberReader(ir);Stringline=input.readLine();intcapidx=line.indexOf("Caption");intcmdidx=line.indexOf("CSName");intprioidx=line.indexOf("Priority");intpid=line.indexOf("ProcessId");inttc=line.indexOf("ThreadCount");while((line=input.readLine())!=null){ if(line.length()<tc)continue; //字段出現(xiàn)順序:Caption,CommandLine,Priority,ProcessId,ThreadCount Stringcaption=line.substring(capidx,cmdidx-1).trim(); Stringcaname=line.substring(cmdidx,prioidx-1).trim();Stringpriority=line.substring(prioidx,pid-1).trim(); StringprocessId=line.substring(pid,tc-1).trim(); StringThreadCount=line.substring(tc,line.length()-1).trim(); proce[i]=newProcessImformation(caption,caname,priority,processId,ThreadCount); //intth=Integer.parseInt(ThreadCount); i=i+1; //t+=th; }結(jié)束進程結(jié)束進程同樣通過命令行實現(xiàn),在進程表格中選中某進程后點擊結(jié)束進程按鈕,彈出對話框顯示“確定要結(jié)束進程(加入進程名稱)嗎?”,點擊“是”后可以結(jié)束進程。//結(jié)束進程按鈕JButtonkill=newJButton("結(jié)束進程(E)");kill.setBounds(400,425,98,23);kill.addActionListener(this);process_tab.add(kill);用戶點擊按鈕之后轉(zhuǎn)到如下函數(shù):publicvoidactionPerformed(ActionEventargs){if(args.getActionCommand().equals("結(jié)束進程(E)")){ if(pTable.getSelectedRow()!=-1){ if(pTable.getValueAt(pTable.getSelectedRow(),0)!=null){ //Toolkit.getDefaultToolkit().beep(); Stringpname=pTable.getValueAt(pTable.getSelectedRow(),0).toString(); pname=pname.replace("\"",""); pname=pname.trim(); intn=JOptionPane.showConfirmDialog(this,"確定要結(jié)束進程"+pname+"嗎?","確認對話框",JOptionPane.YES_NO_OPTION); if(n==JOptionPane.YES_OPTION){ try{ Stringkill="wmicprocesswherename=\""+pname+"\"callterminate"; Runtime.getRuntime().exec(kill); }catch(Exceptionex){ } JOptionPane.showMessageDialog(this,pname+"已結(jié)束!","消息", JOptionPane.WARNING_MESSAGE); } }}elseJOptionPane.showMessageDialog(this,"沒有選中項!","消息",JOptionPane.WARNING_MESSAGE);}獲取其他信息獲得其他信息的方式與獲得進程及其信息的方式相同,在此之前必須先建立一個類(命名為OSInformation)來放置取到的信息,所需信息有:操作系統(tǒng)名稱及版本、總物理內(nèi)存、已使用物理內(nèi)存、剩余物理內(nèi)存、CPU使用情況,建立一個函數(shù),再增加該函數(shù)變量的get、set方法。由于方法與獲得進程及其信息的方法相同,不再贅述。intkb=1024;OperatingSystemMXBeanosmxb=(OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean();//操作系統(tǒng)StringosName=System.getProperty("");StringosVersion=System.getProperty("os.version");//總的物理內(nèi)存longtotalMemorySize=osmxb.getTotalPhysicalMemorySize()/(kb*kb);//剩余的物理內(nèi)存longfreePhysicalMemorySize=osmxb.getFreePhysicalMemorySize()/(kb*kb);//已使用的物理內(nèi)存LongusedMemory=(osmxb.getTotalPhysicalMemorySize()-osmxb.getFreePhysicalMemorySize())/(kb*kb);if(osName.toLowerCase().startsWith("windows")){ this.getProcessForWindows(); }//構(gòu)造返回對象OSInformationinfoBean=newOSInformation();infoBean.setFreePhysicalMemorySize(freePhysicalMemorySize);infoBean.setOsName(osName+""+osVersion);infoBean.setTotalMemorySize(totalMemorySize);infoBean.setUsedMemory(usedMemory);returninfoBean;繪制圖表繪制CPU和內(nèi)存使用情況。首先需要建立一個坐標類,由于要繪制兩個圖,所以需要x1、x2、y1、y2四個坐標變量。繪制圖表需要用到時鐘函數(shù),令其可以自動刷新,自動取到所需的信息并且繪圖。每取到新的結(jié)果,舊的結(jié)果(上一個結(jié)果)則向左移動一格。publicvoidupdateChart(){//物理內(nèi)存使用記錄中的表格for(inti=0;i<10;i++){ XYxy=newXY(); xy.x1=0; xy.y1=(i+1)*13; xy.x2=500; xy.y2=(i+1)*13; if(!checkEqual(xy,X_memory_record))X_memory_record.add(xy); }Y_memory_record.clear();for(inti=0;i<70;i++){ XYxy=newXY(); xy.x1=(i+1)*13-move; xy.y1=0; xy.x2=(i+1)*13-move; xy.y2=200; if(!checkEqual(xy,Y_memory_record))Y_memory_record.add(xy);}//物理內(nèi)存使用記錄中的數(shù)據(jù)List<XY>temp_memory_record=newArrayList<XY>();for(inti=0;i<D_memory_record.size();i++){ XYxy=D_memory_record.get(i); xy.x1=xy.x1-2; xy.x2=xy.x2-2; if(!checkEqual(xy,temp_memory_record))temp_memory_record.add(xy);}D_memory_record=temp_memory_record;//物理內(nèi)存使用百分量floatused_memory=((float)monitorInfo.getUsedMemory()/(float)monitorInfo.getTotalMemorySize())*100;floatpoint_memory=130-(used_memory/100*130);XYxy_memory_record=newXY();xy_memory_record.x1=480;xy_memory_record.y1=(int)point_memory;xy_memory_record.x2=480+2;xy_memory_record.y2=(int)point_memory;if(!checkEqual(xy_memory_record,D_memory_record)){D_memory_record.add(xy_memory_record); }//CPU使用記錄中的表格for(inti=0;i<10;i++){ XYxy=newXY(); xy.x1=0; xy.y1=(i+1)*13; xy.x2=500; xy.y2=(i+1)*13; if(!checkEqual(xy,X_cpu_record))X_cpu_record.add(xy); }Y_cpu_record.clear();for(inti=0;i<70;i++){ XYxy=newXY(); xy.x1=(i+1)*13-move; xy.y1=0; xy.x2=(i+1)*13-move; xy.y2=200; if(!checkEqual(xy,Y_cpu_record))Y_cpu_record.add(xy); }//CPU使用記錄中的數(shù)據(jù) List<XY>temp_cpu_record=newArrayList<XY>(); for(inti=0;i<D_cpu_record.size();i++){ XYxy=D_cpu_record.get(i); xy.x1=xy.x1-2; xy.x2=xy.x2-2; if(!checkEqual(xy,temp_cpu_record))temp_cpu_record.add(xy); } D_cpu_record=temp_cpu_record; //CPU使用百分量 floatused_cpu=(float)(os.getSystemCpuLoad()*100); floatpoint_cpu=130-(used_cpu/100*130); XYxy_cpu_record=newXY(); xy_cpu_record.x1=480; xy_cpu_record.y1=(int)point_cpu; xy_cpu_record.x2=480; xy_cpu_record.y2=(int)point_cpu; if(!checkEqual(xy_cpu_record,D_cpu_record))D_cpu_record.add(xy_cpu_record); //CPU兩次數(shù)據(jù)之間的連接線 XYxy_cpu_record_connect=newXY(); xy_cpu_record_connect.x1=temp_cpu_x; xy_cpu_record_connect.y1=temp_cpu_y; xy_cpu_record_connect.x2=480; xy_cpu_record_connect.y2=(int)point_cpu; if(!checkEqual(xy_cpu_record_connect,D_cpu_record)){ D_cpu_record.add(xy_cpu_record_connect); } temp_cpu_x=480; temp_cpu_y=(int)point_cpu; } //檢查隊列中是否有重復(fù)數(shù)據(jù) publicbooleancheckEqual(XYcheck_xy,List<XY>list){ XYxy; for(inti=0;i<list.size();i++){ xy=list.get(i); if((xy.x1==check_xy.x1)&&(xy.y1==check_xy.y1)&&(xy.x2==check_xy.x2)&&(xy.y2==check_xy.y2))returntrue; } returnfalse; } //輸出隊列中的數(shù)據(jù) publicvoidshowData(List<XY>list){ XYxy; for(inti=0;i<list.size();i++){ xy=list.get(i); System.out.println("第"+i+"個:"+xy.x1+""+xy.y1+""+xy.x2+""+xy.y2); } }publicvoidautoFlush()throwsException{ TimertimeCount=newTimer(1000,newActionListener(){ publicvoidactionPerformed(ActionEventevt){ try{ //刷新得到系統(tǒng)信息的工具 monitorInfo=service.getMonitorInfoBean(); m.getHandleCount(); //圖標每次左移的像素點 move=move+2; updateProcess(); southPanel(); updateChart(); FunctionTab(); p_memory_record.repaint(); p_cpu_record.repaint(); p_cpu_used.repaint(); }catch(Exceptionupdate){ } } }); timeCount.start();}調(diào)試分析如何在進程的表格中選中一個進程結(jié)束是我設(shè)計時遇到的問題之一。一開始結(jié)束進程總是不很順利,后來我加入了如下函數(shù):記錄上次選中的行,從選中的行中得到進程的名稱,將名稱傳給結(jié)束進程的按鈕,再通過結(jié)束進程的函數(shù)actionPerformed結(jié)束進程。后續(xù)調(diào)試分析表明,這個函數(shù)可實現(xiàn)選中進程后結(jié)束進程的功能。publicvoidupdateProcess()throwsException{ intflag=0; Stringname=""; introwIndex=0; //記錄上次選中的行 if(pTable.getSelectedRow()!=-1){ flag=1; name=pTable.getValueAt(pTable.getSelectedRow(),0).toString(); }else{ flag=0; } m.getProcessForWindows(); Stringc[][]=newString[cessCount][5]; intj=0; Vectorsrcdata=newVector(); while(j<cessCount){ c[j][0]=ce[j].getCaption(); c[j][1]=ce[j].getCSName(); c[j][2]=ce[j].getPriority(); c[j][3]=ce[j].getProcessId(); c[j][4]=ce[j].getThreadCount(); if(c[j][0].eq

溫馨提示

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

最新文檔

評論

0/150

提交評論