Xin chỉ cách viết chương trình tính thời gian chạy của máy tính từ khi bắt đầu bật máy đến khi tắt máy bằng Visual Basic?

Xin chỉ cách viết chương trình tính thời gian chạy của máy tính từ khi bắt đầu bật máy đến khi tắt máy bằng Visual Basic. Hàm API nào có khả năng thực hiện tính năng này?
Nguyen Ha My
Nguyen Ha My
Trả lời 15 năm trước
Một trong các ý tưởng hiện thực chương trình theo yêu cầu của bạn là viết 1 chương trình chạy trong nền Windows (ẩn giao diện), khi bắt đầu chạy thì ghi nhận thời điểm này và khi dừng chương trình thì ghi nhận thời điểm dừng rồi tính hiệu số thời gian giữa 2 thời điểm ghi nhận. Nếu ta khai báo chương trình vừa viết cho Windows chạy tự động mỗi khi boot máy thì thời gian chạy của chương trình cũng chính là thời gian chạy của Windows (vì khi shutdown Windows, chương trình sẽ bị hệ thống yêu cầu dừng). Có nhiều hàm API của Windows phục vụ cho việc lấy thời gian hiện hành, thí dụ như hàm GetSystemTime(), GetLocalTime()... Tuy nhiên nếu lập trình bằng VB thì bạn không cần gọi các hàm API này vì VB đã cung cấp hàm Now() có cùng chức năng. Sau đây là qui trình viết và cài đặt 1 ứng dụng VB ghi nhận thời gian chạy của Windows: 1. Viết ứng dụng VB: chạy môi trường lập trình VB, khi cửa sổ "New Project" hiển thị, hãy ấn button Open để tạo mới 1 project "Standard EXE", project này sẽ tạo ứng dụng VB có 1 form giao diện đơn giản. Bạn không cần vẽ bất kỳ phần tử giao diện nào cả mà chỉ cần chọn menu View.Code để hiển thị cửa sổ code của form rồi nhập đoạn lệnh sau: Option Explicit ' Khai báo biến lưu thời điểm bắt đầu Dim StartTime As Date ' Khai báo biến lưu thời điểm kết thúc Dim StopTime As Date ' Hiện thực thủ tục khởi động ứng dụng Private Sub Form_Load() ' Lưu thời điểm bắt đầu chạy StartTime = Now ' ẩn form để không làm phiền người dùng Form1.Hide End Sub ' Hiện thực thủ tục kết thúc ứng dụng Private Sub Form_Unload(Cancel As Integer) Dim timelog As String ' Lưu thời điểm bắt dừng StopTime = Now ' Tính thời gian chạy được timelog = "Windows chạy lúc : " & StartTime & _ ", dừng lúc : " & StopTime & _ ", chạy được : " & DateDiff("s", StartTime, StopTime) & "giay" ' Mở file chứa các thông báo eventlog Open "timelog.txt" For Append As #1 ' ghi thông báo timelog lên file Write #1, timelog ' đóng file Close #1 End Sub 2. Dịch ứng dụng VB ra dạng khả thi *.exe: vào menu File.Make Project1 để yêu cầu dịch ứng dụng VB ra file khả thi. Khi cửa sổ "Make Project" hiện ra, bạn hãy chọn thư mục và tên file chứa kết quả. 3. Khai báo cho Windows chạy ứng dụng tự động mỗi khi boot máy. Việc này có thể được khai báo ở hàng lệnh "load=" hay "run=" của file win.ini (trong thư mục Windows) hay thiết lập 1 key trong registry của Windows. Nếu khai báo trong file win.ini, bạn hãy dùng 1 trình soạn thảo văn bản nào đó (NotePad, WordPad...) mở file win.ini trong thư mục Windows, đưa cursor nhập liệu về phía phải của hàng lệnh "load=" hay "run=" rồi thêm đường dẫn file khả thi vừa xây dựng được trong bước 2. Nếu khai báo trong registry, bạn hãy chọn menu Start.Run rồi nhập regedit để chạy ứng dụng này, hãy dùng chuột để vào key sau "My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run". Lúc này bạn sẽ thấy các tiện ích được chạy tự động khi boot máy đã được khai báo trước đó trong cửa sổ ListControl bên phải. Hãy dời chuột vào ListControl này, ấn phải chuột rồi chọn New.String Value, nhập chuỗi nhận dạng chương trình, thí dụ là "Đếm thời gian chạy Windows" vào cột Name, ấn phải chuột lên chuỗi vừa nhập rồi chọn chức năng Modify. Khi cửa sổ "Edit String" hiển thị, bạn hãy nhập đường dẫn của file chương trình vào textbox "Value data" rồi ấn button OK. Từ đây trở đi, mỗi lần chạy xong 1 phiên làm việc Windows, chương trình sẽ ghi tiếp 1 hàng thông báo vào file timelog.txt (nằm cùng thư mục với file chương trình khả thi) để ghi nhận thời điểm bắt đầu chạy, thời điểm dừng, số thời gian tính bằng giây mà Windows đã chạy được.