Hindi, just in case you didn't know, is only one of the 22 official languages spoken in India. It emerged from the ancient language Sanskrit and was at some point influenced and enriched by Turkish, Persian, Arabic, Portuguese, English, and South Indian Dravidian languages.
There are nearly 425 million people that speak and write Hindi as their first language, not to mention those 120-odd million using it as the second language. So, if you happen to be one of them, or in case you are presently learning Hindi as a foreign language, you would probably want to type Devanagari characters on your PC. I have spent some time picking out some of the neat solutions for enabling Hindi input without any additional hardware - check them out below.
Baraha
This application will let you generate and view Indian text content in any MS Office application. Baraha will modify your English keyboard layout, thus allowing you to type Indian words in any document, and also provide you with a rich-text editor and sorting utility that come in bundle with this software. This should cover most of your typing needs.
HindiTrans, VedicVidya Keyboards, and Azhagi+
These are Hindi transliteration utilities, they enable you to type text phonetically in English and turn it into the corresponding Hindi words and phrases. It is a real magic wand for those working with Hindi frequently, but who still feel confused about which Hindi character is where on the physical keyboard.
JR Hindi English Typing Tutor
Dream of typing on your keyboard at a blazing speed? In Hindi? JR Hindi English Typing Tutor can be of great assistance to you if you're looking to acquire touch-typing skills in both English and Hindi languages. There's even an on-screen keyboard in Hindi provided with certain exercises, which is sometimes exactly what you need to learn touch-typing.
E2H Character Converter
Generally speaking, E2H Character Converter is a typing tool that employs a translation approach. The idea is that you will type English texts and use their corresponding translations (these are displayed side by side), or input Hindi words as you hear them and the application will make all the necessary spelling corrections thus facilitating your workflow.
Universal Editor
Universal Editor is a multiple-language text editor that allows you to type in English or any of the Indian languages using your keyboard. What's more, the application also supports phonetic options, so it can automatically transliterate texts written down by ear.
Gujarati Phonetic, Sarasvati, and Gujarati Indic Input
There is nothing special in these software solutions, as the only feature they provide you with is an on-screen Hindi keyboard (you can still type using your regular keyboard, using the on-screen keyboard as a reference). To a large extent, this may be handy if you only occasionally deal with Hindi texts and documents and you are quite proficient in the language. Otherwise, may find yourself creating a Hindi document full of lexical or spelling mistakes.