2009-06-03 34 views
5

Tôi đã từng sử dụng dòng lệnh SMTP mailer, như giới hạn của phiên bản dùng thử, cho phép bạn nhận tối đa 10 email với mỗi phiên Windows. Nếu bạn khởi động lại máy tính của mình, bạn có thể nhận thêm 10 máy tính khác. Tôi nghĩ loại cuống bừa này khá gọn gàng, và tôi muốn tái tạo nó trong ứng dụng của mình.Làm cách nào để biết máy tính đã được khởi động lại chưa?

Tôi chỉ bị mắc kẹt về cách thực hiện. Tôi biết cách giới hạn hành động của người dùng, nhưng làm cách nào tôi có thể biết liệu máy tính đã được khởi động lại từ khi ứng dụng được chạy lần cuối chưa?

Hệ điều hành là Windows và ngôn ngữ là C#.

+3

gì hệ điều hành và ngôn ngữ gì? –

+0

Q cho biết "Phiên Windows", vì vậy có vẻ như an toàn để giả sử Windows. – Cheeso

+0

os/lang là Windows/C# – ryeguy

Trả lời

2

Bạn sẽ có thể tìm thấy các sự kiện trong nhật ký sự kiện, chẳng hạn như bắt đầu dịch vụ nhật ký sự kiện sẽ cho bạn biết nếu máy tính đã khởi động lại.

Dưới đây là làm thế nào để đọc các bản ghi sự kiện trong C#: http://msdn.microsoft.com/en-us/library/k6b9a7h8%28VS.71%29.aspx

// C# 
foreach (System.Diagnostics.EventLogEntry entry in EventLog1.Entries) 
{ 
    Console.WriteLine(entry.Message); 
} 

Lưu ý: bạn nên cung cấp ngôn ngữ và hệ điều hành bạn đang sử dụng.

2

Nếu bạn đang sử dụng .NET, bạn có thể sử dụng Environment.TickCount cho việc này. Điều này cho bạn số lượng ms kể từ khi hệ thống khởi động. Lưu ý rằng nó cuộn trên mỗi ~ 24 ngày, vì vậy bạn sẽ phải bồi thường cho điều đó (nếu bạn quan tâm).

0

Bạn không thể chỉ giữ lại số lượng sự kiện mà ứng dụng của bạn đã thực hiện. Và sau đó dừng lại khi truy cập đạt ngưỡng? Nếu ứng dụng của bạn có chứa một dịch vụ thì nó có thể được nhúng như một phần của dịch vụ sẽ được khởi động lại với các phiên cửa sổ. Tôi nghi ngờ đó là cách máy chủ SMTP hoạt động, ít nhất đó là cách đơn giản nhất mà tôi sẽ thực hiện một cái gì đó như thế. Nó sẽ giữ cho hầu hết các quản trị viên hệ thống mới/trung gian khởi động lại hộp, và những người thông minh có lẽ xứng đáng để có phần mềm miễn phí anyway.

1

Đối với nền tảng Windows, bạn có thể sử dụng uptime.

C:\>uptime 
\\SPOCK has been up for: 2 day(s), 0 hour(s), 45 minute(s), 34 second(s) 
+1

Đây có phải là ứng dụng Windows Server không? Tôi dường như không có điều này trên WinXP. – ryeguy

+0

Không hoạt động trên XP có thể là các hệ thống khác – Anton

2

Đối với Windows, nếu bạn muốn kiểm tra máy tính khởi động

Loại trên Command Prompt
C:\>net statistics server

Một trong những thống kê này sẽ được
Statistics since 22-Jun-11 10:46:20 đó là lần cuối cùng máy tính được khởi động

1

Câu trả lời ở trên dành cho các hệ thống Pre-Windows Server 2008, b ut cho Windows 2008 có một cách dễ dàng hơn nhiều để tìm thời gian hoạt động cho máy chủ Windows 2008.

  • Task Manager> Performance> Up Time

Task Manager

Các vấn đề liên quan