Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Microsoft C# Professional Projects - Premier Press.pdf
Скачиваний:
177
Добавлен:
24.05.2014
Размер:
14.65 Mб
Скачать

INTERACTING WITH A MICROSOFT WORD DOCUMENT

Chapter 17

 

377

 

 

 

 

 

 

After the application writes the data to the Summary.xml document, the application is ready to process the next document. Therefore, you need to again change the notification icon to Ready.ico. To do this, type the following statement in the

Created event.

icoNotify.Icon=m_Ready;

Figure 17-6 shows the Ready.ico notification icon in the status area of the taskbar.

FIGURE 17-6 Ready.ico notification icon in the status area of the taskbar

However, while processing a document, the application might detect an error, such as incorrect or incomplete data in the cash memo document. In such a case, the application generates an error message in Event Log.

Displaying an Error Message in the Event Log

Event logging is a method by which the Microsoft Windows operating system keeps track of all the important software and hardware events running on the system. Tracking the events helps the system administrator to detect the cause of any error that occurs on the system. You can view these software and hardware events in Event Viewer provided by Microsoft Windows. To access Event Viewer, perform the following steps:

1.Point to the Settings option on the Start menu.

2.In the displayed list, click on the Control Panel option. The Control Panel window is displayed.

3.In the Control Panel window, click on the Administrative Tools option. The Administrative Tools window is displayed.

378Project 3 CREATING A CREATIVE LEARNING PROJECT

4.In the Administrative Tools window, click on the Event Viewer option.

The Event Viewer window is displayed. Figure 17-7 displays the Event Viewer window.

FIGURE 17-7

 

 

Y

 

L

 

F

 

M

 

A

 

E

 

T

 

 

The Event Viewer window

 

The EventLog Component

Visual Studio .NET provides you with the EventLog component to view the events logged in Event Viewer. In addition to reading existing events, you can write event logs to Event Viewer by using the EventLog component.The EventLog component allows you to connect to Microsoft Windows Event Viewer on your local machine or on a remote machine.

You can access the EventLog component from the Components toolbox. Figure 17-8 shows the EventLog component in the Components toolbox.

Team-Fly®

INTERACTING WITH A MICROSOFT WORD DOCUMENT

Chapter 17

379

 

 

 

 

FIGURE 17-8 The EventLog component in the Components toolbox

Adding the EventLog Component to the Form

To include the EventLog component, drag the EventLog component from the Components toolbox to the Creative Learning form. The EventLog component with a name eventLog1 is added to the component tray. Change the Name property of the control to eventLog. Figure 17-9 shows the eventLog component added to the component tray.

FIGURE 17-9 The eventLog component added to the component tray

380 Project 3 CREATING A CREATIVE LEARNING PROJECT

In addition to tracking events, Event Viewer can track the errors that are generated by the application while processing the cash memo document. When an error occurs, you can change the notification icon to Error.ico by creating an instance of the Error.ico file by adding the following statement to the frmCreative class:

private System.Drawing.Icon m_Error= new System.Drawing.Icon(“Error.ICO”);

TIP

Remember to add the Error.ico file to the bin folder of your application.

To add an error entry to the EventLog component, you need to catch any exception that is generated by the application. The exception can then be written to Event Viewer by using the WriteEntry() method.

The WriteEntry() method is a void method of the EventLog class in the System.Diagnostics namespace.The WriteEntry() method is used to write a message to Event Viewer. The message to be displayed is passed as a parameter to the WriteEntry() method. You can now add code to the Created event that writes error logs to Event Viewer.

catch (Exception catchException)

{

icoNotify.Icon=m_Error;

icoNotify.Text=”Error in “ + e.Name;

if (optGenerateLog.Checked==true)

eventLog.WriteEntry(e.Name + “: “ + catchException.Message);

}

In the preceding code, the Error.ico notification icon is displayed and a ToolTip displaying the error message is added to the notification icon. The code then checks whether the optGenerateLog check box is checked. If the user has selected the check box, the error entry is written to Event Viewer. However, the user may choose to clear the check box.This would prevent the error entry from being written to Event Viewer.

INTERACTING WITH A MICROSOFT WORD DOCUMENT

Chapter 17

381

 

 

 

 

Figure 17-10 shows the Error.ico notification icon with an error message displayed in the status area.

FIGURE 17-10 The Error.ico notification icon with an error message

Figure 17-11 displays the error entry in Event Viewer.

FIGURE 17-11 The error entry in Event Viewer

After writing the data to an XML document, you need to close the object of the XmlTextWriter class by using the Close() method.In addition, you need to exit the Word application. You can do this by using the Quit() method. You can then instantiate the object of the Word.Application class to null so that the object can refer to another Word document in the source directory. In addition, you need to enable the directory watcher component to monitor the source directory.

finally

{

xmlWrite.Flush();

xmlWrite.Close();

382 Project 3 CREATING A CREATIVE LEARNING PROJECT

wdApp.Quit(ref optional, ref optional, ref optional);

wdApp=null;

watchDir.EnableRaisingEvents=true;

}

After the file is processed, you can move it the directory specified in the txtProcessedFile text box. To do this, add the following code to the Created event.

tryagain: try

{

File.Move(e.FullPath,txtProcessedFile.Text+e.Name);

}

catch

{

goto tryagain;

}

The File.Move() method call statement is enclosed in the try loop so that the application tries to move the processed file to the processed directory until the time the file closes and can be moved. The Move() method is used to move the processed file to the directory specified in the txtProcessedFile text box.The path of the source directory and destination directory are passed as parameters to the Move() method.

NOTE

The Move() method is used to move a specified object from the source directory to the destination directory. In addition, you can change the name of the object in the destination directory by passing the new name as a parameter to the Move() method.

The events that were generated are visible in Event Viewer. You can also create a list box that displays the event entries that are generated in Event Viewer for your Creative Learning application.