TASK 52 - KEYBOARD LANGUAGE SOUND MONITOR
==============================================

1. PROJECT PURPOSE
------------------
Keyboard Language Sound Monitor monitors keyboard input and plays different sounds
depending on the type of character entered.

The application supports:
- English letters -> Sound A
- Arabic and other non-ASCII letters -> Sound B
- Client-specified ASCII characters -> Sound C
- Independent mute controls for Sound A, Sound B, and Sound C
- Display of the ASCII code for Sound C characters

The application can monitor keyboard input while another application such as
Notepad, Notepad++, or a web browser is being used.


2. SOUND RULES
--------------
Sound A:
- English uppercase letters A-Z
- English lowercase letters a-z

Sound B:
- Arabic letters
- Other non-ASCII language letters

Sound C:
- ASCII values less than 65
- ASCII values from 91 to 96
- ASCII values from 123 to 126

Special keys remain silent:
- Enter
- Backspace
- Tab
- Shift
- Ctrl
- Alt
- Escape


3. ASCII DISPLAY
----------------
For characters assigned to Sound C, the application displays the ASCII number
of the character in the Last Key field.

Examples:

Character     ASCII
-------------------
Space         32
!             33
0             48
1             49
5             53
9             57
@             64
[             91
\             92
]             93
^             94
_             95
`             96
{             123
|             124
}             125
~             126

Example:
If the user types "123", the application processes each character separately.
The last character is "3", so the Last Key field displays:

Last Key: 51

because ASCII code 51 represents the character "3".


4. MUTE CHECKBOXES
------------------
The application provides three checkboxes:

Mute Sound A
- Name: Chk_SoundA
- When checked, Sound A is not played.

Mute Sound B
- Name: Chk_SoundB
- When checked, Sound B is not played.

Mute Sound C
- Name: Chk_SoundC
- When checked, Sound C is not played.

Muting a sound does not stop keyboard monitoring or ASCII display.


5. SOUND FILES
--------------
The application requires these three WAV files:

Sounds
  SoundA.wav
  SoundB.wav
  SoundC.wav

All three files must remain inside the "Sounds" folder beside the application.


6. APPLICATION SCREEN
---------------------
The main window contains:
- Keyboard Language Monitor title
- Status display
- Last Key display
- Mute Sound A checkbox
- Mute Sound B checkbox
- Mute Sound C checkbox
- Start Monitoring button
- Stop Monitoring button

The application also uses a system tray icon.


7. START MONITORING
-------------------
1. Open the application.
2. Click "Start Monitoring".
3. The status changes to "Status: Monitoring".
4. Start typing in another application.
5. The application detects the keyboard input and plays the appropriate sound.


8. STOP MONITORING
------------------
Click "Stop Monitoring" to stop keyboard monitoring.

The application does not play sounds while monitoring is stopped.


9. SYSTEM TRAY
--------------
When the application is minimized, it is hidden from the taskbar and continues
running from the system tray.

The system tray menu provides:
- Start
- Stop
- Exit


10. TESTING
-----------
The application has been tested with:
- Microsoft Notepad
- Notepad++
- Web browsers

English letters:
- Sound A

Arabic and other language letters:
- Sound B

ASCII characters in the specified ranges:
- Sound C

Special keys:
- No sound


11. MODERN NOTEPAD COMPATIBILITY
--------------------------------
Modern Windows Notepad may use a different text-input system from traditional
applications.

The application uses keyboard monitoring together with Windows UI Automation
text monitoring to detect the actual character entered where supported.

This allows Arabic and other language characters to be detected correctly in
modern Notepad while preserving keyboard monitoring for other applications.


12. REQUIREMENTS
----------------
- Windows operating system
- .NET 8.0 Windows Desktop runtime for framework-dependent published versions
- KeyboardLanguageSound.exe
- Sounds folder containing SoundA.wav, SoundB.wav, and SoundC.wav


13. PUBLISHED APPLICATION
-------------------------
The application is intended to be distributed as a Folder Publish application.

No setup.exe or ClickOnce installation is required.

When copying the published application to another computer, copy the complete
published folder, including the Sounds folder.


14. IMPORTANT
-------------
Do not rename or remove the application files required by the published output.

Do not remove the Sounds folder or any of the three WAV files.


15. QUICK CHECKLIST
------------------
[ ] KeyboardLanguageSound.exe is present
[ ] Sounds folder is present
[ ] SoundA.wav is present
[ ] SoundB.wav is present
[ ] SoundC.wav is present
[ ] Application starts successfully
[ ] Start Monitoring works
[ ] Stop Monitoring works
[ ] English letters play Sound A
[ ] Arabic/other language letters play Sound B
[ ] Required ASCII characters play Sound C
[ ] ASCII number is displayed for Sound C characters
[ ] Mute Sound A works
[ ] Mute Sound B works
[ ] Mute Sound C works
[ ] Special keys remain silent
[ ] System tray operation works


16. SUMMARY
-----------
Task 52 provides three separate keyboard sound categories:

Sound A -> English letters
Sound B -> Arabic and other non-ASCII letters
Sound C -> Client-specified ASCII ranges

The three sounds can be muted independently using the three mute checkboxes.
