ΠΠΎΠ΄ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»ΡΠΆΠ±ΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π°Π»Π΅Π΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°, ΠΎΡΡΠ°Π½ΠΎΠ²Π°, ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΡΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΎΠΊ:
protected void buttonCommand_Click(object sender, System.EventArgs e) {
Cursor Current = Cursors.WaitCursor;
ServiceController controller =
(ServiceController)listBoxServices.SelectedItem;
if (sender == this.buttonStart) {
controller.Start();
controller.WaitForStatus(ServiceControllerStatus.Running);
} else if (sender == this.buttonStop) {
controller.Stop();
controller.WaitForStatus(ServiceControllerStatus.Stopped);
} else if (sender == this.buttonPause) {
controller.Pause();
controller.WaitForStatus(ServiceControllerStatus.Paused);
} else if (sender == this.buttonContinue) {
controller.Continue();
controller.WaitForStatus(ServiceControllerStatus.Running);
}
int index = listBoxService.SelectedIndex;
RefreshServiceList();
listBoxServices.SelectedIndex = index;
Cursor.Current = Cursors.Default;
}
protected void buttonExit_Click(object sender, System.EventArgs e) {
Application.Exit();
}
protected void buttonRefresh_Click(object sender, System.EventArgs e) {
RefreshServiceList();
}
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΡΡΡΠΎΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΊΡΡΡΠΎΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° WaitForStatus() ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ 10 Ρ, ΠΏΠΎΠΊΠ° ΡΠ»ΡΠΆΠ±Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΡΡΠ°ΡΡΡ Π½Π° Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΠΎΠΊΠ½Π΅ ΡΠΏΠΈΡΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ, ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠ° ΠΆΠ΅ ΡΠ»ΡΠΆΠ±Π°, ΡΡΠΎΠ±Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΡΠ»ΡΠΆΠ±Ρ.
ΠΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠΎΠΈΡΠΊ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠ΅ΠΉ
ΠΠΎΠΈΡΠΊ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΡΠ»ΡΠΆΠ± ΠΈΠ½Π°ΡΠ΅, ΡΠ΅ΠΌ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠ»Π°Π΄ΠΊΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΡΠ±ΠΎΡΠΊΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎ ΡΠ»ΡΠΆΠ±ΠΎΠΉ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
β‘ Π ΡΠ»ΡΠΆΠ±Π΅ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΎΠΊΠ½Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ»ΡΠΆΠ±, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°). ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΌ ΡΠ»ΡΠΆΠ±Ρ.
β‘ Π‘Π»ΡΠΆΠ±Ρ Π½Π΅Π»ΡΠ·Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ· ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°, Π½ΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΌΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠ»ΡΠΆΠ±Ρ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ»ΡΠΆΠ±Ρ ΠΈ Π·Π°Π΄Π°ΠΉΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. Π ΠΌΠ΅Π½Ρ Visual Studio.NET Debug Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Processes ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ»ΡΠΆΠ±Ρ.
β‘ ΠΠ»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ»ΡΠΆΠ± ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ ΡΠ»ΡΠΆΠ±Π΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ Π΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠΈΡΠ°Ρ, Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Ρ.Π΄.
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ
ΠΡΠ»ΠΈ ΡΠ»ΡΠΆΠ±Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΠΊΠ½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ ΡΠ»ΡΠΆΠ±Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠ΅ΡΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΌ Π·Π°Π»Π΅, ΡΠ»ΡΠΆΠ±Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΠ³Π΄Π° ΠΎΡΠΊΡΡΡΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ Π²Π²ΠΎΠ΄, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄Π½Π΅ΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅Ρ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΌ Π·Π°Π»Π΅; Π½ΠΎ Π²ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π΄Π°ΠΆΠ΅ Ρ ΡΠΆΠ΅ β Π΅ΡΠ»ΠΈ ΡΠ»ΡΠΆΠ±Π° Π½Π΅ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΡΠ»ΡΠΆΠ±Π°, ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ, ΡΠΊΡΡΡΠΎΠΉ, ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ°Π½ΡΠΈΠΈ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΎ ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈ ΡΠ»ΡΠΆΠ±Π° Π±ΡΠ΄Π΅Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π°.
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°ΠΉΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° Π΄Π»Ρ ΡΠ»ΡΠΆΠ±, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠΈΠΊΡΠΎ Π½Π΅ ΠΎΡΠ²Π΅ΡΠΈΡ Π½Π° ΡΡΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
Π ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , Π³Π΄Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ»ΡΠΆΠ±Ρ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ»ΡΠΆΠΈ ΡΠ²Π»ΡΡΡΡΡ Print Spooler, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° Π±ΡΠΌΠ°Π³Π΅, ΠΈ ΡΠ»ΡΠΆΠ±Π° NetMeeting Remote Desktop Sharing.
Π§ΡΠΎΠ±Ρ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ»ΡΠΆΠ±Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Allow service to interact with desktop (Π Π°Π·ΡΠ΅ΡΠΈΡΡ ΡΠ»ΡΠΆΠ±Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π±ΠΎΡΠΈΠΌ ΡΡΠΎΠ»ΠΎΠΌ) Π² Computer Management. ΠΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠΏ ΡΠ»ΡΠΆΠ±Ρ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΠΊ ΡΠΈΠΏΡ ΡΠ»Π°ΠΆΠΎΠΊ SERVICE_INTERACTIVE_PROCESS.
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ
Π‘Π»ΡΠΆΠ±Ρ ΠΌΠΎΠ³ΡΡ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈ Π΄ΡΡΠ³ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΎΡΠΌΠ΅ΡΠ°Ρ Π΅Π΅ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΡΠΎΠ±ΡΡΠΈΠΉ. Π‘Π»ΡΠΆΠ΅Π±Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΈΠ· ServiceBase, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ AutoLog Π·Π°Π΄Π°Π½ΠΎ ΠΊΠ°ΠΊ true. ΠΠ»Π°ΡΡ ServiceBase ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈ Π·Π°Π½ΠΎΡΠΈΡ Π·Π°ΠΏΠΈΡΡ Π² ΠΆΡΡΠ½Π°Π» ΠΏΡΠΈ ΡΠΎΠ±ΡΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊΠ°, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΏΠ°ΡΠ·Ρ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΆΡΡΠ½Π°Π»ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ ΡΠ»ΡΠΆΠ±ΠΎΠΉ.
ΠΠ»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ System.Diagnostics.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Event Log (ΠΡΡΠ½Π°Π» ΡΠΎΠ±ΡΡΠΈΠΉ) Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΡΠ΅Ρ ΡΠ°ΠΉΠ»Π°Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ²: Application, Security ΠΈ System. ΠΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅Π΅ΡΡΡΠ° ΡΠ»ΡΠΆΠ±Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² HKLM\System\CurrentControlSet\Services\EventLog Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌΠΈ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. Π€Π°ΠΉΠ» ΠΆΡΡΠ½Π°Π»Π° System ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ· Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ»ΡΠΆΠ±Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π² ΠΆΡΡΠ½Π°Π» Application. Security ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΆΡΡΠ½Π°Π»ΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Π°ΡΠ΄ΠΈΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΆΡΡΠ½Π°Π» Security.
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ Event Viewer. Event Viewer Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· Server Explorer, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² Visual Studio.NET. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ΅Π»ΡΠΎΠΊ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π½Π° ΠΏΡΠ½ΠΊΡΠ΅ Event Logs ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΡ Launch Event Viewer ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ:
Π ΠΆΡΡΠ½Π°Π»Π΅ ΡΠΎΠ±ΡΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
β‘ Type ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Information, Warning ΠΈ Error. Information β ΡΡΠΎ ΡΠ΅Π΄ΠΊΠ°Ρ ΡΡΠΏΠ΅ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Warning β ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π½Π°ΡΠΈΠΌΠΎΠΉ, ΠΈ Error β ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ FailureAudit ΠΈ SuccessAudit, Π½ΠΎ ΡΡΠΈ ΡΠΈΠΏΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΆΡΡΠ½Π°Π»Π° Security.
β‘ Date ΠΈ Time ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠ΅.
β‘ Source β ΠΈΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅. Source Π΄Π»Ρ ΠΆΡΡΠ½Π°Π»Π° Application ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΡΡΡ Π² HKLM\System\CurrentControlSet\Services\EventLog\Application. ΠΠΎΠ΄ ΡΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ EventMessageFile Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° DLL ΡΠ΅ΡΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ .
β‘ Category ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΆΡΡΠ½Π°Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°Π»ΠΈΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Event View.
β‘ ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΠΎΠ±ΡΡΠΈΠΈ.
ΠΠ»Π°ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ System.Diagnostics ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ:
β‘ Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° EventLog ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈ Π²Π½Π΅ΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΆΡΡΠ½Π°Π» ΡΠΎΠ±ΡΡΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ.
β‘ EventLogEntry ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²Ρ ΠΎΠ΄ΠΎΠΌ Π² ΠΆΡΡΠ½Π°Π» ΡΠΎΠ±ΡΡΠΈΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ EventLogEntryCollection ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ EventLogEntry.
β‘ ΠΠ»Π°ΡΡ EventLogInstaller ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° EventLog. EventLogInstaller Π²ΡΠ·ΡΠ²Π°Π΅Ρ EventLog.CreateEventSource() Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ.
β‘ Π‘ ΠΏΠΎΠΌΠΎΡΡΡ EventLogTraceListener ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² ΠΆΡΡΠ½Π°Π» ΡΠΎΠ±ΡΡΠΈΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ TraceListener.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ
ΠΡΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ AutoLog ΠΊΠ»Π°ΡΡΠ° ServiceBase Π·Π°Π΄Π°Π½ΠΎ ΠΊΠ°ΠΊ true, ΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠ»Π°ΡΡ ServiceBase ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΡΠΎΡΠ°Ρ ΡΠ»ΡΠΆΠ±Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΏΠ°ΡΠ·Ρ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ. Π ΠΊΠ»Π°ΡΡΠ΅ ServiceInstaller ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ EventLogInstaller, ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΆΡΡΠ½Π°Π»Π° ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΡΠΎΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΆΡΡΠ½Π°Π»Π° ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΈΠΌΡ, ΠΊΠ°ΠΊ ΠΈ ΡΠ»ΡΠΆΠ±Π°. ΠΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ WriteEntry() ΠΊΠ»Π°ΡΡΠ° EventLog. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Source Π±ΡΠ»ΠΎ ΡΠΆΠ΅ Π·Π°Π΄Π°Π½ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ ServiceBase:
EventLog.WriteEntry("event log message");
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅. ΠΡΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠΎ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ WriteEvent():
EventLog.WriteEntry("event log message", EventLogEntryType.Warning);
EventLog.WriteEntry("event log message", EventLogEntryType.Error);
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΠΠ»Ρ ΡΠ»ΡΠΆΠ± ΠΊΠ»Π°ΡΡ ServiceBase Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΡΠ»ΠΈ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Visual Studio.NET.
β‘ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ToolBox Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° EventLog Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ.