Hi vinoth,
I'd say the two big groups of desktop apps in general are native desktop application or applications which need some "environment" like the
Java JVM. For Java based applications you could obviously use any programming language or technology which runs on the JVM. For native desktop applications there are lots of technologies ranging from portable toolkits which may be used to create applications for different platforms (Windows vs. Mac OS vs. Linux) or technologies which only support a specific operating system like windows. Qt for example is a framework to create GUI applications which exists on different platforms. Windows specific GUI frameworks like .NET are usually used to create applications which only run on Windows (although there are efforts like the Mono project to run such applications even on Linux for example).
For the said applications I don't know on which technology they are based as I only use Linux. But tools which need access to internals of the OS, like Kaspersky, you usually have to use one of the native technologies. I hope this information was more or less helpful even if I can't tell you the correct answer
Marco