Làm thế nào để biết khi nào Windows và tất cả các chương trình khởi động đã hoàn thành khởi động?


37

Máy của tôi (Windows 7 64-bit) mất khoảng 3-4 phút để khởi động hoàn toàn. Có cách nào chỉ ra rằng khởi động đã hoàn tất, một số loại âm thanh / cửa sổ bật lên, bằng cách sử dụng tính năng dựng sẵn của Windows hoặc bởi bất kỳ ứng dụng bên thứ 3 nào không?

Tôi yêu cầu khi cả windows và tất cả các chương trình khởi động đã khởi động xong

Thỉnh thoảng tôi thường ngồi và đợi trước máy, thời gian đó có thể được tận dụng tốt hơn cho một chiếc quickie.

Đây là giao diện của nó, khi đèn cứng dừng nhấp nháy:

nhập mô tả hình ảnh ở đây


2
Sau khi quá trình đăng nhập ... Tất cả các quá trình nền vv .. Toàn bộ công việc
Firee

3
Bạn có thể muốn thêm những gì bạn có nghĩa là "khởi động hoàn thành": tất cả các chương trình được tải hoặc chỉ tải hệ điều hành Windows.
zurfyx

3
Tôi khá chắc chắn không có câu trả lời dứt khoát. Một số quy trình nền chờ PC trở nên nhàn rỗi trước khi chúng khởi động, một số chỉ chờ một khoảng thời gian cố định. Thật khó để dự đoán rằng FooUpdater.EXEsẽ ngủ trong 7 phút.
MSalters

2
Có lẽ thay vào đó, sẽ phát hiện khi các quá trình bận rộn cuối cùng trở thành công việc nhàn rỗi cho bạn? Nếu vậy, trình kích hoạt tác vụ "On Idle" của Windows Task Manager không đủ?
Ƭᴇcʜιᴇ007

2
Là 3-4 phút thực sự đủ thời gian cho một "quickie"? oO
Jason C

Câu trả lời:


25

Có một số câu trả lời có khả năng hữu ích ở đây, nhưng tôi nghĩ có hai điểm quan trọng chưa được thực hiện:

  1. Không, không thể xác định bằng lập trình rằng Windows và tất cả các chương trình khởi động đã khởi động xong. Đây thực chất là Sự cố Dừng và không có chương trình nào ngoài đó sẽ có thể trả lời câu hỏi "Đối với chương trình tùy ý này, chúng ta nên nói nó đã được tải vào thời điểm nào?".

  2. Vấn đề thực tế bạn đang cố gắng giải quyết là gì? Tất cả các câu trả lời ở đây đều cố gắng tìm giải pháp cho câu hỏi của bạn, nhưng bản thân câu hỏi cảm thấy có thể thiếu một số thông tin quan trọng. Chúng tôi muốn giải quyết vấn đề của bạn, không chỉ trả lời câu hỏi .

Đọc lại câu hỏi của bạn và tiếp tục những gì bạn đã nói, câu trả lời của tôi sẽ là một trong:

  • Đừng lo lắng về nó và bắt đầu sử dụng máy tính của bạn. Các nhiệm vụ tiền cảnh được ưu tiên và trừ khi bạn có điều gì đó thực sự bất thường đang diễn ra thì không nên quan trọng nếu các tác vụ nền đang chạy.

Hoặc là:

  • Theo dõi thủ công hệ thống một vài lần và tìm ra lượng thời gian tối đa trước khi hệ thống "sẵn sàng" theo bất kỳ số liệu nào bạn có. Nhận một chương trình hoặc kịch bản hẹn giờ nhỏ và thêm nó vào khởi động hệ thống của bạn. Nó có thể hiển thị một tin nhắn hoặc phát âm thanh khi thời gian bạn chọn đã trôi qua.

Điều này có thể không trực tiếp trả lời câu hỏi hiện tại của bạn, nhưng hy vọng nó hữu ích.


3
Đây là câu trả lời tốt nhất (và chính xác nhất về mặt kỹ thuật) vì một lý do IMO: nó nêu bật sự mơ hồ trong việc xác định "tất cả các chương trình khởi động đã khởi động xong". Tôi đồng ý rằng vấn đề tạm dừng là khá phù hợp, nhưng chỉ trong trường hợp các quy trình được đưa ra sắp hoàn thành. Mặc dù người ta có thể theo dõi mức tiêu thụ CPU của các chương trình khác nhau sau khi khởi động và sử dụng ngưỡng được xác định trước để ra lệnh khi máy tính đã "khởi động xong", nhưng điều này chỉ bao gồm một tập hợp nhỏ các trường hợp (đáng chú ý là các quá trình có hiệu suất tải chủ yếu là CPU) .
Đột phá

@BreakENC Điểm tốt và chỉnh sửa, cảm ơn. Tôi đã thực sự cố gắng diễn đạt ngắn gọn ý tưởng rằng đối với bất kỳ chương trình đã cho nào được thực hiện khi khởi động, nó có thể thực hiện bất kỳ số lượng điều không thể đoán trước nào: (1) bắt đầu và sau đó chấm dứt, (2) bắt đầu và tiếp tục chạy, (3) bắt đầu và sinh ra bổ sung các quá trình, sau đó làm (1) hoặc (2). Ngay cả việc dựa trên ý tưởng "hoàn thành" về tiêu thụ tài nguyên cũng không lý tưởng do tải chậm và thực tế là một số chương trình thậm chí có thể đợi cho đến khi hệ thống "không hoạt động" để bắt đầu thực hiện một số công việc bổ sung.
Nick

làm cho người ta tự hỏi rằng cờ "nhàn rỗi" hoặc "đã khởi động" sẽ hữu ích như thế nào đối với các quy trình / daemon liên tục (hãy cẩn thận, nó chỉ hữu ích nếu được thực hiện trong mọi quy trình bạn đang chờ ...).
Đột phá

@BreakENC Nếu tôi không nhầm, linux ' systemdcó cái này, về nguyên tắc, người ta có thể bắt đầu một dịch vụ sau khi tất cả những người khác đã bắt đầu thông qua cơ chế phụ thuộc của nó. Bạn sẽ phải chỉ định tất cả chúng theo cách thủ công ( systemdkiến thức của tôi không tốt lắm).
rubenvb

@Nick Cảm ơn lý do đằng sau cố gắng tìm giải pháp, nó thực sự cung cấp một viễn cảnh mới mẻ. Tôi cho rằng đó không phải là một giải pháp rất đơn giản, nhưng dường như không phải vậy ... Hiện tại tôi sẽ sử dụng một chương trình hẹn giờ nhỏ, cho tôi biết rằng thời gian quy định đã hết.
Firee

11

Tại sao không sử dụng Trình lập lịch tác vụ Windows và ID sự kiện 100 để phát âm thanh tùy chỉnh khi Windows thực sự kết thúc?

Trong Triggers chọn "On a event" và

  • Nhật ký: LogMicrosoft-Windows-Chẩn đoán-Hiệu suất / Hoạt động
  • Nguồn: Chẩn đoán-Hiệu suất
  • ID sự kiện: 100

Trong phần Hành động, chọn "Bắt đầu một chương trình" với


1
Tôi yêu cầu khi cả hai cửa sổ và tất cả các chương trình khởi động đã khởi động xong
Firee

2
FWIW: Tại thời điểm đưa ra câu trả lời này, OP chỉ đề cập đến "khởi động Windows". Phần thứ hai bao gồm tất cả các chương trình khởi động đã được thêm vào sau đó!
nixda 17/03/2016

Nhận xét của một người dùng ẩn danh: Phương pháp này hoạt động thực sự tốt nếu thời gian khởi động của bạn hơi chậm hoặc rất chậm. Nó là đơn giản và chính xác. Tuy nhiên, nếu thời gian khởi động của bạn nhanh, trong khoảng 3 phút, (hoặc trong giới hạn được xác định bởi thiết kế Windows), không có sự kiện 100 nào được ghi lại, vì vậy sẽ không có âm thanh nào phát ra
nixda

9

Windows sẽ xử lý khởi động xong nếu nó không hoạt động 80% (không bao gồm hoạt động của CPU và ổ đĩa có mức độ ưu tiên thấp) trong 10 giây sau khi đến Giao diện người dùng máy tính để bàn.

Để xem thời gian khởi động chính xác, hãy sử dụng xbootmgr để theo dõi lý do Windows khởi động chậm .


1
Câu hỏi của tôi không phải là để tốc độ lên khởi động, tôi chỉ muốn một dấu hiệu khi toàn bộ (với tất cả các chương trình khởi động vv) khởi động hoàn tất
Firee

5
bạn nên sửa lỗi khởi động chậm thay vì cố gắng phát âm thanh.
magicandre1981 17/03/14

8

Tôi đã cài đặt một chương trình miễn phí mà tôi đã sử dụng trong một thời gian dài, Soluto: https://www.soluto.com/

Tôi chỉ là một người dùng, không kết nối.

Nó làm việc cho tôi.

Nó thực hiện đếm ngược và cho phép bạn chọn chỉ những gì bạn muốn tải khi khởi động.

Nó cũng cho phép bạn trì hoãn bắt đầu.


Nó có hoạt động ngoại tuyến không?
Firee 16/03 '

Trang web / công ty này hiện cung cấp một ứng dụng di động cho các tính năng bảo mật từ xa; Tôi giả sử tên miền thuộc sở hữu của người khác bây giờ.
mbuc91

6

Chạy tập lệnh Python này khi khởi động. Nó sẽ phát âm thanh khởi động khi mức sử dụng cpu đã dưới 20 phần trăm trong 5 giây liên tiếp:

import subprocess
import time

# set these to whatever works for you
# sound will play when cpu load has been < IDLE_PERCENT for IDLE_TIME consecutive seconds
IDLE_TIME = 5
IDLE_PERCENT = 20

# you can execute any program you want by changing the alert function below


def get_load():
    output = subprocess.check_output('wmic cpu get loadpercentage', shell=True)
    load = output.split()[1]
    return int(load)

def alert():
    subprocess.call([
        r"c:\Program Files (x86)\Windows Media Player\wmplayer.exe",
        r"c:\Windows\Media\Windows Logon Sound.wav"])


idleSeconds = 0

while idleSeconds < IDLE_TIME:
    load = get_load()
    if load < IDLE_PERCENT:
        idleSeconds += 1
    else:
        idleSeconds = 0

    time.sleep(1)

alert()

2

Bạn có thể thêm một âm thanh để khởi động.

Bạn có thể trì hoãn các quá trình khởi động và đặt hiệu ứng âm thanh để được thực thi trước. Công cụ Startup Delayer thực hiện điều này.

nhập mô tả hình ảnh ở đây


Điều này sẽ phát hiện khởi động hoàn thành, hoặc tôi phải đặt một bộ đếm thời gian lý tưởng?
Firee 16/03

@Firee Không cần hẹn giờ, chỉ cần sử dụng tùy chọn "độ trễ tự động"
stderr

1

Điều này có thể không hiệu quả lắm, nhưng nó rẻ.

Tôi thường nhìn vào đèn led hoạt động của đĩa cứng (bạn có thể xác định nó trên vỏ bằng một cái gì đó giống như biểu tượng cơ sở dữ liệu), cho đến khi đèn led ổn định và nhấp nháy không thường xuyên, thì tôi biết bây giờ tôi có thể sử dụng PC mà không bị lag. Đĩa cứng thường là nút cổ chai của PC và nếu nó không được sử dụng nhiều, thì bạn có chỗ cho công việc.

Mong rằng sẽ giúp.


1
Điều đó đã được biết, nhưng tôi phải ngồi và chờ đợi ...
Firee 17/03/2016

4
Bạn không cần phải làm vậy. Bạn có thể ủy thác cho bất cứ ai trong nhà làm điều đó cho bạn. Hãy hình dung nó. dễ thôi!. : D
MadeOfAir 17/03/2016

0

Tôi chưa bao giờ sử dụng nó nhưng Bộ lập lịch tác vụ Windows sẽ cho phép bạn tạo một tác vụ được kích hoạt để chạy "Lúc khởi động" hoặc "Lúc đăng nhập". Bạn có thể lên lịch tác vụ để chạy tập lệnh powershell để truy cập phương thức Console.Beep () của .NET Framework. Bạn thậm chí có thể biến nó thành một giai điệu hay.

Từ Hey Scripting Guy! Blog

[console]::beep(500,300)

Thay đổi giá trị của số thứ nhất để thay đổi cường độ (không thể nghe thấy âm thanh nào thấp hơn 190 hoặc cao hơn 8500) và thay đổi giá trị của số thứ hai để thay đổi thời lượng

Chỉnh sửa: Vì hóa ra phương thức Console.Beep () có thể không hoạt động trên các hệ thống 64 bit theo tài liệu MSDN .NET. Đã kiểm tra tiếng bíp trong PowerShell Script và nó hoạt động tốt.

Bạn cũng có thể muốn kiểm tra các quy trình khởi động của bạn. Bạn có thể làm điều này bằng cách chạy msconfig và nhấp vào dịch vụ. Bạn cũng có thể sử dụng Autorun công cụ Sysiternals.


0

Bởi tài liệu windows cuối cùng theo thứ tự tải là registry currentuser / runOnce (sau thư mục khởi động) ... nhưng thứ tự tải bao giờ là gì, một số chương trình có thể mất nhiều thời gian khởi động.

Vì vậy, có thể xem hoạt động của CPU trong tệp bó có thể là giải pháp tốt:

@echo off
setlocal ENABLEDELAYEDEXPANSION
set cpuLimit=15
set /a lowCount=0

for /l %%i in (1,1,30) do (
   for /F %%c in ('wmic cpu get loadpercentage ^| findstr "[0-9]"') do (
       echo %%i cpu-Load: %%c  ...lowCnt: !lowCount!
      if %%c gtr %cpuLimit% ( set lowCount=0
      ) else ( set /a lowCount+=1
         if !lowCount! gtr 10 (
            ECHO BEEEEEEP ... mplay32 beep.wav... or something
            exit
         )
      )
   )
   ping -n1 127.0.0.1 >NUL
)

... và BẮT ĐẦU sau khi phát hiện ra rằng trong 10 lần kiểm tra tải cpu cuối cùng, đã có tải cpu dưới 15%. tập tin bó này có thể được bắt đầu bằng liên kết trong thư mục khởi động hoặc tốt hơn là trong sổ đăng ký HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run


0

Bạn đã viết:

«Máy của tôi (Windows 7 64-bit) mất khoảng 3-4 phút để khởi động hoàn toàn ...»

Khởi động "bình thường" mất khoảng 30 giây bao gồm quyền truy cập vào tài khoản người dùng. Có điều gì đó sai và điều này phải được sửa chữa. Để sửa nó, bạn phải lấy dữ liệu. Tôi đề nghị bạn hai tiện ích để khắc phục sự cố này:

1) Autoruns

Với cái này bạn có thể kiểm tra mọi tiến trình, chương trình, trình điều khiển được tải trong quá trình khởi động. Tka care: đây là một công cụ rất mạnh mẽ và KHÔNG xóa các mục trừ khi bạn biết bạn đang làm gì. Nhưng bạn có thể Bỏ chọn (vô hiệu hóa) một số chương trình đăng nhập khởi động ...

2) Hệ thống thám hiểm

Với công cụ này, bạn có thể thấy tất cả quá trình bắt đầu và lịch sử của chúng cho đến khi System Explorer được khởi động. Ngoài ra, có thể quét tất cả các quy trình này cho mục đích bảo mật (so với cơ sở dữ liệu quy trình ..)

Kiểm tra điều này đầu tiên họ cung cấp cho chúng tôi một số thông tin phản hồi.

Bạn cũng có thể kiểm tra các dịch vụ khi khởi động services.mscvà trạng thái của các thiết bị có devmgmt.msc(hình tam giác màu vàng cho các thiết bị bị lỗi, Đĩa cứng ở chế độ PIO thay vì DMA, v.v.) trong các công cụ quản trị Windows ...

Hy vọng điều này giúp đỡ. Hãy cho chúng tôi biết.


Lo lắng của tôi không phải là tại sao thời gian khởi động quá lâu. Tôi có thể có nhiều chương trình khởi động, v.v ... Tôi chỉ cần một dấu hiệu khi toàn bộ quá trình khởi động hoàn tất, bao gồm Windows, Logon, tất cả các chương trình khởi động, v.v.
Firee 17/03/2016

Chỉ cần kiểm tra với trình quản lý tác vụ ... Khi CPU ở trạng thái không hoạt động, nó đã hoàn tất. Mất 3,4 phút cho PC của bạn, phải không? : - /
clampleole 17/03/2016

Đây là giao diện của nó, sau khi đèn Đĩa cứng dừng nhấp nháy i.stack.imgur.com/nVToB.png
Firee 17/03/2016

"Một cái gì đó sai và điều này phải được sửa chữa". Hoặc đó chỉ là phần mềm chống vi-rút thực hiện công việc của mình rất kỹ lưỡng ...
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen Có thể. Như tôi đã nói, lo lắng của tôi không phải là mất bao lâu, tôi chỉ cần biết khi nào nó hoàn thành và tôi có thể bắt đầu sử dụng hệ thống mà không có độ trễ có thể do quá trình nền vẫn đang trong quá trình bắt đầu.
Firee

0

Tôi đã tìm kiếm một cái gì đó như thế này, và tôi đã tìm thấy câu trả lời

Tôi sẽ đăng mã thực tế sau này có lẽ, nhưng ở đây nó đi

http://msdn.microsoft.com/en-us/l Library / aa394226% 28v = vs85% 29.aspx

chỉ cần lưu nội dung của phần cuối cùng dưới dạng tệp vbs và chạy nó, bạn có thể thăm dò từng sự kiện hệ thống và trích xuất thông điệp của nó được hiển thị, đơn giản.

những gì người ta phải làm để tìm hoàn thành trình tự khởi động là chỉ có tập lệnh này chạy cho đến khi id sự kiện là '100' tương ứng với quá trình hoàn thành khởi động trong các sự kiện hệ thống

tham khảo: http://www.howtogeek.com/72420/how-to-use-event-viewer-to-find-your-pcs-boot-time/

Vì vậy, khi bạn có tập lệnh này khi khởi động, nó sẽ thăm dò tất cả các sự kiện và chờ id sự kiện là 100 và cảnh báo bạn. điều tương tự có thể được sử dụng trong bất kỳ công cụ kịch bản nào như autoit

Chỉ muốn tất cả để biết nó. bởi vì khi tôi tìm kiếm cái này tất cả những gì tôi tìm thấy là ý tưởng lập lịch tác vụ của windows hoặc soluto. Trên thực tế, soluto đã ngừng hoạt động trên pc x64 của tôi một thời gian trước vì một lý do kỳ lạ. Vì vậy, tôi muốn tự mình thực hiện một kịch bản dẫn tôi đến giải pháp cuối cùng này ....

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.