2012-03-10 28 views
7

Một vài ứng dụng trên PC của tôi đã thực hiện phát hiện khi khởi động lại Windows Update hay chưa. Điều này có thể quan sát được do chúng khởi động lại sau khi khởi động lại Windows Update tự động.Phát hiện xem khởi động lại Windows có phải do các bản cập nhật Windows

Điều này rất hữu ích vì các ứng dụng đó tải lại thay đổi, thậm chí chưa lưu thay đổi hoặc khôi phục tab (trong trường hợp trình duyệt). Ví dụ về các ứng dụng mà làm điều này:

  • Google Chrome
  • Microsoft Visual Studio
  • Microsoft Paint

Trong mọi trường hợp các ứng dụng lưu bang họ ở trước khi khởi động lại.

(PC của tôi thực sự thức dậy từ trạng thái chờ tự động, và khởi động lại bản thân trong khi instaling cập nhật Quá xấu nó didnt quay trở lại chế độ chờ sau khi làm điều này..)

Câu hỏi của tôi là: Làm thế nào để lập trình phát hiện này loại khởi động lại? Dường như nó có thể được phát hiện một cách đáng tin cậy trước khi khởi động lại.

Câu hỏi How can I get the Windows last reboot reason có thể có vẻ giống như một bản sao, nhưng không có câu trả lời nào nói về nội dung cập nhật.

Tôi viết mã bằng C#, vì vậy câu trả lời trong C# sẽ hữu ích, mặc dù tôi cũng có thể đọc C và C++.

+0

Bạn cũng có thể thử hỏi tại ServerFault. Tôi đã thấy một số câu hỏi về việc khởi động lại Windows ở đó. Hãy thử http://serverfault.com/search?q=windows+reboot – DOK

+0

Tôi muốn lập trình (sử dụng ngôn ngữ lập trình) phát hiện khởi động lại ... Hỏi tại ServerFault có lẽ không đúng thì – sinni800

+0

Tôi nghĩ rằng họ có thể cung cấp một số thông tin mà bạn có thể sử dụng để viết một số mã.Giống như bạn nói, bạn "chỉ cần biết nơi để tìm và cho những gì nhà nước". Nếu bạn đang thực sự tìm kiếm câu trả lời, tôi sẽ không nhanh chóng từ chối một câu trả lời có khả năng hữu ích. – DOK

Trả lời

4

Xem Application Restart:

Một ứng dụng có thể sử dụng ứng dụng phục hồi và Restart (ARR) để lưu dữ liệu và thông tin trạng thái trước khi thoát khỏi ứng dụng do một ngoại lệ unhandled hoặc khi ứng dụng ngừng đáp ứng

và:

hoặc nếu máy tính cần khởi động lại do cập nhật.

Ứng dụng không phát hiện lý do khởi động lại sau sự kiện - chúng đã được kiến ​​trúc để sử dụng API này. Không có (cho đến nay như tôi biết) một API được quản lý cho việc này.


Một vài lần nhấp chuột là Saving data and application state when application is being closed due to a software update. Một lần nữa, không có API được quản lý.

0

Thông thường khi Windows khởi động lại, nó thực hiện khởi động lại bằng cách sử dụng shutdown.exe và cờ/g để lưu trạng thái của tất cả các chương trình đang chạy đã đăng ký trước khi khởi động lại. Những gì bạn muốn làm là Đăng ký ứng dụng của bạn để khởi động lại. Có một tài liệu good sample với tài liệu này bởi MSDN. Nó có sẵn trong C# và C++.

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