2

最後のシャットダウン時間を取得する必要があるアプリケーションがあります。EventLog クラスを使用してシャットダウン時間を取得しました。イベントログを読み書きするように設計された別のクラスファイルがあります。ReadPowerOffEvent 関数は、電源オフ イベントを取得するためのものです。

public void ReadPowerOffEvent()
    {
        EventLog eventLog = new EventLog();
        eventLog.Log = logName;
        eventLog.MachineName = machineName;

        if (eventLog.Entries.Count > 0)
        {
            for (int i = eventLog.Entries.Count - 1; i >= 0; i--)
            {
                EventLogEntry currentEntry = eventLog.Entries[i];

                if (currentEntry.InstanceId == 1074 && currentEntry.Source=="USER32")
                {
                    this.timeGenerated = currentEntry.TimeGenerated;
                    this.message = currentEntry.Message;
                }
            }
        }
    }

しかし、イベント エントリ カウントを取得しようとするたびに、「ネットワーク パスが見つかりません」という IOException がスローされます。解決しようとしましたが、失敗しました。私を助けてください...

4

2 に答える 2

0

自分のマシン(またはこのアプリを実行するマシン)で「リモートレジストリ」サービスを実行している必要があります。このサービスは、お使いのマシンで手動で開始するように設定されていると思われます。このサービスの設定を自動に変更する必要がある場合があります。

このアプリを他のマシンで実行する場合は、アプリにロジックを組み込んで、このサービスが最初に実行されていることを確認することをお勧めします。そうでない場合は、アプリから起動する必要があります。

ノート:

「リモートレジストリ」サービスを使用すると、リモートユーザーはコンピュータのレジストリ設定を変更できます。デフォルトでは、「リモートレジストリ」サービスの「起動タイプ」設定は「自動」または「手動」に設定されている場合があります。これは、シングルユーザー(または)ノートブックPCユーザーのセキュリティリスクです。したがって、コンピュータ上のユーザーのみがシステムレジストリを変更できるようにするには、この「リモートレジストリ」サービスを無効にします。

于 2012-06-25T03:45:49.790 に答える