《操作系统课程设计---Windows系统资源管理器与任务管理器》由会员分享,可在线阅读,更多相关《操作系统课程设计---Windows系统资源管理器与任务管理器(49页珍藏版)》请在金锄头文库上搜索。
1、XX 大学计算机学院操作系统课程设计报告XX 大学课程设计报告课程设计题目: Windows 系统资源管理器与任务管理器 学 院: 专业班级: 年 级: 2008 级 姓 名: 学 号: 完成时间: 2012 年 7 月 3 日成 绩: 指导教师: 教务处XX 大学计算机学院操作系统课程设计报告I课程设计指导教师评定成绩表优秀(100x90)良好(90x80)中等(80x70)及格(70x60)不及格(x 0i = i + 1打开指定的进程序,并得到进程的句柄lngHwndProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM
2、_READ, 0, proc.th32ProcessID)If lngHwndProcess 0 Then枚举系统中正在运行的进程模板lngReturn = EnumProcessModules(lngHwndProcess, lngModules(1), 200, lngCBSize2)If lngReturn 0 Then返回特定数目空格的strModuleName = Space(MAX_PATH)获取一个已装载模板的完整路径名称lngReturn = GetModuleFileNameExA(lngHwndProcess, lngModules(1), strModuleName, 5
3、00)strProcessName = Left(strModuleName, lngReturn)strProcessName = CheckPath(Trim$(strProcessName)If strProcessName ThenXX 大学计算机学院操作系统课程设计报告12判断 ITEM 是否已经存在j = HaveItem(proc.th32ProcessID)If j = 0 Then 如果没有该进程获取短文件名exename = Dir(strProcessName, vbNormal Or vbHidden Or vbReadOnly Or vbSystem)If exena
4、me = hh.exe ThenMsgBox SetProClass(proc.th32ProcessID, IDLE_PRIORITY_CLASS)End If添加进程 itemSet item = List1.ListItems.Add(, ID: & CStr(proc.th32ProcessID), exename)进程 IDitem.SubItems(1) = proc.th32ProcessID内存使用pmc.cb = LenB(pmc)获得进程的内存信息,在这里就是计算该进程占用内存多少lret = GetProcessMemoryInfo(lngHwndProcess, pmc
5、, pmc.cb)n = n + pmc.WorkingSetSizeWKSize = pmc.WorkingSetSize / 1024item.SubItems(3) = WKSize & K进程序 IP 号item.SubItems(2) = GetProClass(proc.th32ProcessID)进程图标将获取的图标加到 IMAGE 控件中IM1.ListImages.Add , strProcessName, GetIcon(strProcessName)item.SmallIcon = IM1.ListImages.item(strProcessName).KeyElse 如
6、果已经有该进程pmc.cb = LenB(pmc)获得进程的内存信息,在这里就是计算该进程占用内存多少lret = GetProcessMemoryInfo(lngHwndProcess, pmc, pmc.cb)n = n + pmc.WorkingSetSizeWKSize = pmc.WorkingSetSize / 1024 计算占用内存If CLng(List1.ListItems.item(j).SubItems(3) WKSize Then List1.ListItems.item(j).SubItems(3) = WKSize & K获得进程的类名ProClass = GetP
7、roClass(proc.th32ProcessID)If ProClass List1.ListItems.item(j).SubItems(5) Then List1.ListItems.item(j).SubItems(5) = ProClassEnd IfEnd IfEnd IfEnd Iftheloop = ProcessNext(snap, proc)WendXX 大学计算机学院操作系统课程设计报告13CloseHandle snap显示总进程数 Label3If i ProCount ThenLabel3.Caption = 进程数: & iProCount = iEnd IfI
8、f n RamUse Then 这里的130 是后来加上去的.是为了和系统自带的数值一样Label5.Caption = Val(FormatLng(n) + 130 & MBRamUse = nFor i = 950 To Val(FormatLng(n) + 400 Step -90rampic.Line (0, i)-Step(1200, 20), &HFF00&, BFNext iEnd IfEnd Sub调用系统的关于 窗Private Sub about_Click()On Error Resume NextShellAbout Me.hwnd, App.Title, 谭建&文程&
9、 张源, ByVal 0&End Sub退出本程序员Private Sub close_Click()tmrRefresh.Enabled = FalseUnload MeEnd SubPrivate Sub CloseSystem_Click()tmrRefresh.Enabled = FalseUnload MeEnd Sub应用程序切换程序Private Sub cmdSwitch_Click()Dim hwnd As LongDim X As LongDim lngWW As LongIf LstApp.ListIndex 0 ThenXX 大学计算机学院操作系统课程设计报告15End
10、Pro idEnd IfListProcessEnd SubPrivate Sub Command5_Click()Dim AboutRet As LongAboutRet = ExitWindowsEx(EWX_LOGOFF, 0)End Sub注销用户功能实现Private Sub Command6_Click()Dim AboutRet As LongAboutRet = ExitWindowsEx(EWX_LOGOFF, 0)End Sub切换至功能实现Private Sub cutoverto_Click()cmdSwitch_ClickMe.WindowState = 1End S
11、ub改变进程显示方式Private Sub Detailed_Click()List1.View = lvwReportEnd Sub结束应用程序功能实现Private Sub endprograme_Click()Command3_ClickEnd Sub关机功能实现Private Sub Exit_Click()frmclose.Show vbModalEnd SubCPU 效率监视CpuPicture(0).ScaleMode = vbPixelsCpuPicture(1).ScaleMode = vbPixelsSet QueryObject = New CCpuwatch对象初始化Q
12、ueryObject.Initialize打开时间控件tmrRefresh.Enabled = True调用刷新过程tmrRefresh_TimerXX 大学计算机学院操作系统课程设计报告16*获得所有系统进程ListProcess窗体总在前SetTop Me, front.Checked*获得系统的当前用户cnt& = 199s$ = String$(200, 0)dl& = GetUserName(s$, cnt)Set item = ListView3.ListItems.Add(, , s$, , 2)item.SubItems(2) = 正在运行.item.SubItems(1) =
13、 WorkstationID设置系统托盘If WindowState = vbMinimized ThenLastState = vbNormalElseLastState = WindowStateEnd IfAddToTray Me, TrayEnd SubPrivate Sub Form_Resize()Select Case WindowStateCase vbMinimizedMe.Visible = FalseCase vbMaximizedMe.Visible = TrueEnd SelectIf WindowState vbMinimized ThenLastState = W
14、indowStateMe.Visible = TrueEnd IfEnd SubPrivate Sub Form_Unload(Cancel As Integer)RemoveFromTray 关闭托盘tmrRefresh.Enabled = FalseUnload MeEnd SubPrivate Sub front_Click()front.Checked = Not front.CheckedSetTop Me, front.CheckedEnd SubXX 大学计算机学院操作系统课程设计报告17Private Sub jsjc_Click()Command4_ClickEnd SubP
15、rivate Sub List1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)On Error Resume NextWith List1设置 Sorted 为 True 以将列表排序。If (ColumnHeader.Index - 1) = .SortKey Then.SortOrder = (.SortOrder + 1) Mod 2.Sorted = TrueElse.Sorted = False.SortOrder = 0.SortKey = ColumnHeader.Index - 1.Sorted = True