First of all let’s make some definitions and introduce our working out.
This working out is written in Microsoft Visual Studio 2010 IDE, in Microsoft .NET Framework 2.0. The main description of the framework can be founded in ,  and . In MSVS terminology whole working out is called Solution. Every module, utility or library is MSVS Project. Let’s all projects call modules. Projects that have executable output let’s call utilities except "WinUtils" project that is not a utility, it just shows some common functionality and changes common settings and variables. Note that whole solution and one of its projects have the same name. Not to be confused we will call the solution and project working out and module correspondingly.
The worked out project is called WinUtils. The utilities included in it have their advantages and disadvantages; they are more useful for extraordinary cases.
The working out is based on the following ideology:
- to create some simple ways for the safety of the computer in order to prevent the simple tricks of cheating
- to create fundamental tools (classes, types, models), which again will be used in other modules
- Not to use Windows Registry, to have storage file, in order to make impossible reading registration data for third part programs.
Every module has a window, in which the sub windows are opened. The main window has a main menu and easy switch system to the sub windows. The user interface is Armenian, but the program gives an opportunity to change it and turn it to any language having a left to right writing system.
Every module has its main library and allows using its opportunities also in other modules as well. Therefore the project has a dependency tree. Each module (at this point only libraries) has dependent modules. All modules depend on WinUtilsLibrary.
DiskSpaceViewer, DiskSpaceViewerLibrary, FilesFoldersExplorer, FilesFoldersExplorerLibrary, PicturesViewer, PicturesViewerLibrary, WinUtils (application) and WinUtilsLibrary are the modules of WinUtils project's modules.
In «WinUtilsLibrary» base library several concepts are defined and declared including the following
- the deflation of constants
- the work with the registration file, data reading and writing
- changing of the modules
- some tool-functions
- the base type of the context menu
- the base types of the windows (such as the parent window, the child window, the dialog window)
- the file opening, saving and the folder opening dialog windows
- the "about the program" dialog window
- the window informing of the errors of the program
- the window creating a new folder
- the child window showing and changing the properties of files, folders, discs
- the ability of the program having many languages
- the description class declaration of the program’s excluding situations
All the context menus are in same type (class) which is and extension from the basic type (class). This provides default menu ability. The sub-menus are also enlarged in order that it will be possible that in case of double-click the "click event" of the silent pre-menu will work. Context-menus are designed as follows: one of the submenus should be marked as a default menu. It will be of the same font and size, but bold and in case of double clicking the left button of mouse, or in case of pressing "Enter" it will do the same as if that submenu would be chosen from the context-menu.
The working out has dialog windows for folder choosing, opening and saving file. The user has an opportunity of using the similar windows of Windows, but indirectly. One of its aims is that the user can use similar windows, irrespective the version of the Windows. The interface language of the utilities is Armenian. Because the users don't use the above-mentioned windows and the message window of Windows, all dialog window messages will be completely in Armenian. So under question in Armenian the options "Yes" or "No” wouldn't be given (As it will be if we will use standard Windows message box in English version of Windows).
Sometimes Windows Explorer freezes or just stops working. In such cases the FilesFoldersExplorer module can be used instead. This module lists the discs, folders, shows the sizes of the files, operates the file actions, and makes the files work. But there are also essential differences. One of them is that the files and folders are shown apart, as there are such virus programs, which create a virus file with the same name as the folder has, they hide the real folder. Thus the user is easily cheated thinking that he is opening the folder, but instead of it initiates the virus.
All the Icons, including those of the files, are taken from specially shown locations, the way of which is written in the registry file. As the image is not taken from the file and every type has a corresponding image, this way of cheating the user disappears too. The program tries to show the user as much information as possible. The discs are classified according to their types. While executing the disc or the folder it should be executed with "Միջավայրային կատարում" (Shell Execute) option. In this case we can also change the verb and another action will be performed. While making the file work we can also chose the level of privilege and the initial state of the main window. There is also another opportunity to make the file work as another user by typing the domain, the user's name and the password. This is another discomfort, but at first the user has an opportunity to execute the program with the parameters convenient to him and if a virus has been associated with a type of file, it still holds the user from danger. This time with the double click the virus will not be executed, execution window will be opened, and the user will assure, that he wants to make this program execute with these parameters.
While double-clicking on the disc the explorer sub-window is opened. In contract to the Windows, if mentioned certain program (in the file autorun.inf), which in case of double-clicking or just right after mounting a drive (CD, DVD, USB) should be executed by default (which is often used by viruses) in our case that won’t happen. It can be done manually. In the folder we can move back, forward according to the saved history. It is also possible to clean the history of the searcher and the searcher story of the module. There are also reductions of the user's and the computer's special folders. The computer and the hidden folders and files aren't shown by default, but we can show them changing the options. The copying, moving, removing of the files and folders and the moving them into the recycle bin is done by the "file operations" window, and the renaming is done in the same explorer window. The file operations' window does an estimation showing the number of files and folders, also the number of the system’s and the hidden files and folders, in order to inform the user about potential danger of removing, moving system's or hidden files, folders. The properties of the disc, folder and the file can be seen and changed clicking the "Հատկություններ" (properties) from the context-menu. This window gives an opportunity to see and change the date of creating, changing and using, also the attributes. By the way not any collations of descriptions can be changed. Some descriptions can be used only separately, some others are only for reading. You can use the "Կիրառել" (apply) button will make changes after which the window won't be closed, it will show the results.
FilesFoldersExplorerLibrary provides an easier fulfillment of the file actions. The interface of the user has a simple structure: it consists of the main menu, sub-menu part, the window passing converser and the status-bar. In the subway part the explorer, the property and many other windows are opened. It means, all the windows are opened in one basic window. The main window has a main menu, in which there always exists "Գլխավոր" (main) submenu, and the existence of other submenus depends on the current sub-window.
The "Գլխավոր" (main) submenu gives an opportunity to make actions, which either does not depend on the current sub window, or they are meant for all sub-windows, in particular the opening of the disc window, the searching window, the cleaning of the explorer history. The actions "Սկավառակներ" (discs), “Որոնում" (Search) and "Մաքրել ամբողջ պատմությունը" (clear whole history) serve to this aim.
The disc window gives an opportunity to work with discs. It includes the discs list, in which the name, the label, the format, capacity, the whole free memory and the available memory of each disc are mentioned. Discs are grouped according to their types. For the disc we can open the action window, see its properties or open the explorers’ window. Double-clicking the disc viewer is opened by the explorer. The explorer window consists of the tools menu, address, files and folders indices, the search tools and status bar. It provides file actions, particularly the files and folders list view, copy, transfer, disposal, transportation channels, properties view, the creation of new folders etc. Search tools are provided for cases when the list is very large and a specific folder or the file are in the inconspicuous position, you can write a filter (see details of line format in Windows documentation in MSDN, www.msdn.com), and click the button "Զտել" (filter). Only relevant files or folders will be shown in the list. Current browsing folder path is written in address bar. In the Toolbar the button "Ետ" (back) explores the previously explored folder, and then the button "Առաջ" (forward) becomes active, which allows you to return. "." key again explores the current folder, the key ".." explores parent folder of current folder. For each line of folder menu the folder name, creation date, modification date and attributes. For each line of file list the file name, description, size, creation date and time, change date and time, attributes are given. in order to receive the current state press F5 or hit on the "Տեսք" (view) \ "Թարմացնել" (refresh) action. With folders clicking on the right mouse the opened list offers the following actions:
The execution window provides files, in some cases also folders and drives execution.
Several windows, designed for action implementation are built to provide as much information as possible.
Some windows, which basic role is the implementation particularly: files or folders copping, moving, deleting, moving to the recycle bin. The main feature of these windows is that they show to the user as much information as possible, action to be undertaken during current condition and results.
FilesFoldersExplorerLibrary is ensures full functionality of FilesFoldersExplorer utility. There are all of the defined and declared measures, disks, performance, checks , file operations, main FilesFoldersExplorer windows, and the search manager. FilesFoldersExplorerLibrary in its turn is used by WinUtilsLibrary as a basic library, which allows the user to benefit from actions, such as loading of language, file round size, etc.
The DiskSpaceViewer provides ability to view files and folders disk usage size separately. It is shown the percentage of files and folders sizes as well as ratio based on the occupied space. The folder is defined as sum of all file sizes contained in the folder tree. After selecting the main folder it is starting the calculating sizes of folders and files in separated columns.
DiskSpaceViewerLibrary is a library of DiskSpaceViewer, it contains all the windows and all the tools. DiskSpaceViewerLibrary is using files and folder selection window of WinUtilsLibrary. Basic calculations are made in other thread, which allows the user to respond to the instructions on the windows. The user can see the number of errors. The program takes into account the peculiarities of some files systems, such as the maximum permissible length file .
PicturesViewer is for pictures and images viewing. It uses the library PicturesViewerLibrary. The utility has one main window, which in its turn has a "Գլխավոր" (main) menu. In that menu "Նոր" (new) submenu allows you to open images sub windows inspection.
PicturesViewerLibrary contains the necessary lessons of PicturesViewer, painting inspection window, the main window and image display manager. PicturesViewerLibrary in its turn, uses WinUtilsLibrary as a basic library.
WinUtils mainly provide WinUtils change registration, which enables the user to perform actions, such as files registration, registration of types, as well as indirectly, the language change.
WinUtilsLibrary provides all the basic actions of other users and libraries, such as registration, display errors, constants announcement ,the main modules, the program window, files opening, maintenance, and folder selection of windows, some auxiliary functions and tools. It carries out the registration data input / output operations, data encodings and the decoding so that it can be amended only by that program the data, to avoid of unnecessary mistakes, such as `XML-in, XML Schema spelling errors, etc. Error display is based on excluding Situations loading. Errors and errors in the display window show the tree sub error excluding situations in which choosing a particular error, the error message appears: It is also possible to obtain additional information about the error. When new error is occurs it is adding to the current error window. Clicking "OK" button (in other languages can be different) the window is closed, and the error information is deleted. If new errors are generated they had seen a new window. In this library the main modules such as the discretional icons, large and small Icons and etc. are described.