Windowsとすべてのスタートアッププログラムの起動が完了したことを確認する方法は?


37

私のマシン(Windows 7 64ビット)は、完全に起動するのに約3〜4分かかります。Windowsの組み込み機能を使用するか、サードパーティアプリケーションを使用して、ブートが完了したこと、何らかのサウンド/ポップアップを示す方法はありますか?

両方のウィンドウとすべてのスタートアッププログラムの起動が完了したときに必要です

私は通常、マシンの前に座って待つことがあります。

これは、ハードディスクのライトが点滅を停止したときの外観です。

ここに画像の説明を入力してください


2
ログオンプロセス後...すべてのバックグラウンドプロセスなど。シバン全体
Firee 14年

3
「ブートの完了」とはどういう意味ですか?すべてのプログラムをロードするか、Windows OSをロードするだけです。
zurfyx

3
明確な答えがないことはかなり確信しています。バックグラウンドプロセスには、PCがアイドルになるのを待ってから開始するものと、一定期間だけ待機するものがあります。FooUpdater.EXE7分間スリープすることを予測するのは困難です。
MSalters

2
おそらく代わりに、ビジーなプロセスが最終的にアイドル状態になるときを検出しますか?その場合、Windowsタスクマネージャーの「アイドル時」タスクトリガーでは不十分です。
Ƭᴇcʜιᴇ007

2
3〜4分で「急ごしらえ」をするのに十分な時間ですか?オブジェクト指向
ジェイソン・C

回答:


25

ここには潜在的に役立つ答えがいくつかありますが、まだ行われていない重要な点が2つあると思います。

  1. いいえ、 Windowsとすべてのスタートアッププログラムが起動を完了したことをプログラムで判断することはできません。これは本質的に停止問題であり、「この任意のプログラムの場合、どの時点でロードされたと言うべきですか?」という質問に答えることができるプログラムはありません。

  2. あなたが解決しようとしている実際の問題は何ですか? ここでの回答はすべて、あなたの質問の解決策を見つけようとしますが、質問自体は重要な情報が欠けているように感じます。質問に答えるだけでなく、問題を解決したいと考えています

あなたの質問をもう一度読んで、あなたが言ったことだけで行くと、私の応答は次のいずれかになります。

  • 心配しないで、コンピュータの使用を開始してください。フォアグラウンドタスクには優先順位が付けられており、バックグラウンドタスクが実行されているかどうかに関係なく、本当に異常なことが起こっている場合を除きます。

または:

  • システムを数回手動で監視し、システムが「準備完了」になるまでにかかる最大時間を把握してください。小さなタイマープログラムまたはスクリプトを取得し、システムの起動に追加します。選択した時間が経過すると、メッセージを表示したり、サウンドを再生したりできます。

これはあなたの現在の質問に直接答えないかもしれませんが、うまくいけば役に立つでしょう。


3
これがIMOの理由の1つである(そして技術的に最も正しい)最良の答えです。「すべてのスタートアッププログラムが起動を終了した」という定義の曖昧さを強調しています。停止する問題は非常に重要ですが、起動されたプロセスが終了する場合にのみ同意します。起動後、さまざまなプログラムのCPU消費を監視し、事前定義されたしきい値を使用してコンピューターが「起動完了」したことを判断することもできますが、これはケースの小さなサブセットのみを対象としています(特に、ロードパフォーマンスがほとんどCPUにバインドされているプロセス) 。
ブレークスルー14年

@Breakthrough良い点と編集、ありがとう。私は本当に、起動時に実行される任意のプログラムに対して、(1)開始してから終了する、(2)実行を開始して継続する、(3)開始して追加するその後、(1)または(2)を実行します。リソースの消費に基づいて「完全な」という考えに基づいても、遅延読み込みや、システムが「アイドル」状態になってから追加の作業を開始するまで待機するプログラムがあるため、理想的ではありません。
ニック14年

「アイドル」または「ブート済み」フラグが永続/デーモンプロセスにどれほど役立つのか不思議に思われます(注意が必要なのは、待機中のすべてのプロセスに実装されている場合のみです)。
ブレークスルー

@Breakthrough私が間違っていなければ、Linuxにsystemdはこれがあり、原則として、他のすべてが依存関係メカニズムを介して開始した後にサービスを開始できます。ただし、すべてを手動で指定する必要があります(私のsystemd知識はそれほど優れていません)。
rubenvb 14年

@Nick解決策を見つけようとする背後にある理由に感謝します。実際に新鮮な視点を提供します。私はそこに非常に簡単な解決策があると仮定しましたが、そうは思えません...とりあえず、私は小さなタイマープログラムを使用し、指定された時間が過ぎたことを知らせます。
14年

11

Windowsが本当に終了したときに、WindowsタスクスケジューラとイベントID 100を使用してカスタムサウンドを再生しないのはなぜですか?

[トリガー]で[イベント中]を選択し、

  • ログ:LogMicrosoft-Windows-Diagnostics-Performance / Operational
  • 出典:診断パフォーマンス
  • イベントID:100

[アクション]で[プログラムの開始]を選択します

  • プログラム/スクリプト: "%ProgramFiles(x86)%\Windows Media Player\wmplayer.exe"
  • 引数を追加します。 "%windir%\Media\Windows Logon Sound.wav"

    Event ID: 100   
    Decription: Windows has started up
    

    ソースイベントID 100:Windows Diagnostics-Performance


1
両方のウィンドウとすべてのスタートアッププログラムの起動が完了したときに必要です
Firee 14年

2
FWIW:この答えが出された時点で、OPは「Windowsスタートアップ」のみに言及していました。すべてのスタートアッププログラムを含む2番目の部分は後で追加されました!
nixda 14年

匿名ユーザーによるコメント:この方法は、起動時間が少し遅いか非常に遅い場合に非常に有効です。シンプルで正確です。ただし、起動時間が約3分未満(またはWindowsの設計で定義された制限内)の場合、イベント100は記録されないため、音は再生されません
nixda

9

Windowsは、デスクトップUIに到達してから10秒間(優先度の低いCPUとディスクアクティビティを除く)80%アイドルだった場合、ブートが終了したと見なします

正確な起動時間を確認するには、xbootmgrを使用して、Windowsの起動が遅い理由を追跡します


1
私の質問は、(すべてのスタートアッププログラムなどを含む)全体の起動が完了したとき、私はちょうど表示をしたい、起動を高速化することではありません
Firee

5
サウンドを再生するのではなく、スローブートを修正する必要があります。
magicandre1981 14年

8

Soluto:https ://www.soluto.com/長い間使用してきた無料のプログラムをインストールしています

私はただのユーザーであり、接続されていません。

わたしにはできる。

カウントダウンを実行し、起動時にロードするものだけを選択できるようにします。

また、開始を遅らせることもできます。


オフラインで動作しますか?
火災14年

このサイト/会社は、リモートセキュリティ機能用のモバイルアプリを提供しています。ドメインは現在、他の誰かが所有していると思います。
mbuc91

6

起動時にこのPythonスクリプトを実行します。CPU使用率が5秒間連続して20%を下回ると、起動音が再生されます。

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

起動時にサウンドを追加できます。

起動プロセスを遅らせて、効果音を最初に実行することができます。ツール Startup Startup Delayerはこれを行います。

ここに画像の説明を入力してください


これは起動完了を検出しますか、または理想的なタイマーを配置する必要がありますか?
火災14年

@Fireeタイマーは、単に「自動遅延」オプションを使用は必要ありません
stderrの

1

これはあまり効果的ではないかもしれませんが、安価です。

通常、LEDが安定して点滅する頻度が低くなるまで、ハードディスクのアクティビティLEDを確認します(データベースアイコンのようなものでケースで識別できます)。これで、PCを大幅に遅延なく使用できるようになります。ハードディスクは通常PCのボトルネックであり、頻繁に使用されていない場合は作業の余地があります。

お役に立てば幸いです。


1
それは知られているが、私は待つ...座ってする必要がある
Firee

4
する必要はありません。家の誰でもあなたのためにそれをするように委任できます。想像してみてください。それは簡単です!。:D
MadeOfAir 14年

0

私は自分で使ったことはありませんが、Windowsタスクスケジューラを使用すると、「起動時」または「ログオン時」を実行するようにトリガーされるタスクを作成できます。PowerShellスクリプトを実行して.NET FrameworkのConsole.Beep()メソッドにアクセスするタスクをスケジュールできる場合があります。あなたもそれをまともな曲に変えることができるかもしれません。

ねえこんにちは。ブログ

[console]::beep(500,300)

最初の数値の値を変更してピッチを変更し(190未満または8500を超えるものは聞こえません)、2番目の数値を変更して継続時間を変更します

編集: 結局のところ、Console.Beep()メソッドは、MSDN .NETのドキュメントによると、64ビットシステムでは動作しない可能性があります。PowerShellスクリプトでビープ音をテストし、正常に動作します。

スタートアッププロセスをチェックインすることもできます。これを行うには、msconfigを実行し、サービスをクリックします。SysinternalsツールのAutorunsも使用できます。


0

ロード順の最後のWindowsドキュメントでは、レジストリcurrentuser / runOnce(起動フォルダーの後)です...しかし、ロード順が何であれ、一部のプログラムは起動に時間がかかる場合があります。

したがって、バッチファイルでCPUアクティビティを監視するのが良い解決策になる可能性があります。

@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
)

...そして、最後の10個のcpu-load-checksで15%未満のcpu-loadがあったことを発見した後、ビープします。このバッチファイルは、スタートアップフォルダー内のリンク、またはレジストリHKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Runで起動できます。


0

あなたが書いた:

«私のマシン(Windows 7 64ビット)を完全に起動するには約3〜4分かかります...»

「通常の」起動には、ユーザーアカウントへのアクセスを含めて約30秒かかります。何か問題があり、これは修正する必要があります。修正するには、データを取得する必要があります。この問題をトラブルシューティングする2つのユーティリティをお勧めします。

1)自動実行

これにより、ブートプロセス中にロードされたすべてのプロセス、プログラム、ドライバーをチェックできます。Tkaの注意:これは非常に強力なツールであり、何をしているのかわからない限りアイテムを削除しないでください。ただし、一部のスタートアップログオンプログラムのチェックを外す(無効にする)ことができます...

2)System Explorer

このツールを使用すると、System Explorerが開始されるまで、開始されたすべてのプロセスとそれらの履歴を確認できます。また、セキュリティ目的でこれらすべてのプロセスをスキャンすることも可能です(プロセスデータベースと比較して..)

最初にこれをチェックして、フィードバックをください。

また、Windows管理ツールで起動時のサービスservices.mscとデバイスの状態devmgmt.msc(欠陥デバイスの黄色の三角形、DMAではなくPIOモードのハードディスクなど)を確認することもできます...

この助けを願っています。知らせて下さい。


私の心配は、起動時間がそれほど長くない理由ではありません。私は、全体のブートプロセスが完了すると...私はちょうどWindowsの、ログオン、すべてのスタートアッププログラムなどが含まれていることを、表示を必要とするスタートアッププログラムなどの多くを持っていること
Firee

タスクマネージャで確認するだけです... CPUがアイドル状態になると完了です。PCに3,4分かかりますか?:-/
クリメノール14年

これは、ハードディスクのライトが点滅を停止した後の外観です。i.stack.imgur.com/nVToB.png
Firee

「何かが間違っているので、これは修正する必要があります」。それともそれだけでアンチウイルスは非常に非常に徹底的にその仕事をしている...
するThorbjörnRavnアンデルセン

@ThorbjørnRavnAndersenたぶん。私の心配はそれがどれほど時間がかかるかではないと言ったので、いつ完了したかを知る必要があり、バックグラウンドプロセスがまだ開始プロセスにあるために可能なラグなしでシステムを使用し始めることができます。
14年

0

私はこのようなものを探していましたが、答えを見つけました

私はおそらく実際のコードを後で投稿しますが、ここにそれが行きます

http://msdn.microsoft.com/en-us/library/aa394226%28v=vs.85%29.aspx

最後の部分の内容をvbsファイルとして保存して実行するだけで、各システムイベントをポーリングし、表示されているメッセージを簡単に抽出できます。

ブートシーケンスの完了を見つけるために行う必要があるのは、システムイベントのブート完了プロセスに対応するイベントIDが「100」になるまでのみこのスクリプトを実行することです。

参照:http : //www.howtogeek.com/72420/how-to-use-event-viewer-to-find-your-pcs-boot-time/

したがって、このスクリプトを起動すると、すべてのイベントをポーリングし、イベントIDが100になるのを待って警告します。autoitのようなスクリプトツールでも同じことが使用できます。

みんなにそれを知ってほしかった。私がこれを検索したとき。私が見つけたのは、せいぜいWindowsタスクスケジューラのアイデアまたはSolutoだけでした。実際、solutoはいくつかの奇妙な理由で私のx64 pcで動作しなくなりました。だから私はこの最終的な解決策に私を導いたスクリプトを自分でやりたかったのです...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.