Good day.

I want to write an application that will hang in the notification area and also have a standard opening window with information and settings. The settings will be in a file in the installation directory. Should work under Windows, Linux and Mac. It is desirable to look the same.

The minimum required functionality is access to mouse events (click, movement) and keyboard (click).

(PAY ATTENTION! Clicks need to receive absolutely everything within the OS, and not just in the program.)

You will also need to have access to the Internet and be able to share a message in the social. network.

I myself am a web programmer, no experience under OS. I am considering options for Java + Java FX or Swing, C # + mono, c ++ + QT or python. What other options are there?

Closed due to the fact that it is necessary to reformulate the question so that it was possible to give an objectively correct answer by the participants user194374, ߊߚߤߘ , αλεχολυτ , Kromster , Denis Bubnov 12 Feb '17 at 7:51 .

The question gives rise to endless debates and discussions based not on knowledge, but on opinions. To get an answer, rephrase your question so that it can be given an unambiguously correct answer, or delete the question altogether. If the question can be reformulated according to the rules set out in the certificate , edit it .

  • 3
    tray is a concept from Windows. a better option would be to call this the notification area. and all systems have their own characteristics. - Mikhail Vaysman
  • thanks, I will correct. Features - this is understandable. and yet what stack is best for me here? - Oleg Abrazhayev
  • 2
    Клики нужно получать абсолютно все в пределах ОС, а не только в программе - somehow it already looks like a trojan)) - Nick Volynkin
  • one
    @NickVolynkin as well as displaying all keystrokes on the screen or recording a screencast with sound from a microphone :) Many useful applications can be considered like a trojan, it's worth it) - andreymal
  • one
    Java and Python are good, but personally I would not be too lazy to compile anything with Qt (in C ++ or Rust) for each platform - andreymal

1 answer 1

I think Java is perfect here. Actually, why:

  1. Java works under all platforms without recompilation (C ++ requires recompilation, C # does not know how to work with anything other than Windows at all, and even if it can do it with problems, I don’t even know Python).
  2. Java has a tool (if I’m not mistaken, Robot ) that reads the mouse clicks and coordinates in any area of ​​the screen outside the program. It has problems with working in DirectX games, it did not work out for me to get the color of the screen in the game (I was wondering if it was possible to write a cheat like this - it did, but not completely :)).
  3. Java has a lot of network libraries and, again, it works the same everywhere.

You can try to use Swing, really beautiful things can come out on it, but I always managed to get a sea of ​​g *** okoda (only MVC-type patterns were saved), so you should better look towards JavaFX.

Just do not lose sight of Python , I am not familiar with it, but, as far as I know, it can also work in a virtual machine. Maybe it will suit you.

  • I looked at Robot, it looks like something like Selenium, just under the desktop. Those. to automate testing and it can simulate mouse clicks and keys, but read until it is found. - Oleg Abrazhayev February
  • @ OlegAbrazhayev, it means that I got confused after all. There is some kind of library that lets you listen to clicks. This profile has a question on this topic, where they give the name of the library - en.stackoverflow.com/users/189127/bukashka101?tab=topactivity - Rostislav Dugin