Небольшое приложение, которое должно висеть в трее и иметь доступ к:
— эмуляции нажатия клавиш клавиатуры
— знать имя активного процесса (того, чье окошко на экране активно в данный момент)
— доступ к сети, коннектится с мобильным устройством
Должно быть легковесным. Дожно содержать небольшое количество GUI для настройки. Сейчас приложение написано на java+swing. Из java работать с WinAPI это костыль, правда. Да и JRE приходится возить с собой.
Поэтому вопрос, на чем лучше написать такое приложение?
Мне пришли в голову варианты:
— Python + web-морда для GUI
— Adobe AIR
— Chrome extension
— Silverlight
Но не понятно, можно ли получить через них доступ к низкоуровневым функциям Windows. Что посоветуете?
Для питона есть пакет Win32, в котором есть все необходимое для программирования под винду. Для гуи — несколько библиотек на выбор (родной Tk, wx, Qt). Проект можно скомпилить в exe. Посмотрите на клиент Дропбокса — пример того, что можно поднять на питоне.
Звучит как наиболее интересный вариант.
Из википедии: Помимо стандартной библиотеки существует множество библиотек, предоставляющих интерфейс ко всем системным вызовам на разных платформах; в частности, на платформе Win32 поддерживаются все вызовы Win32 API
нет.
gui почти не нужен — стандартных средств должно хватить.
прямой доступ к API — быстрее будет работать
портировать куда-то не требуется
все это уже давно придумано и сделано в API, зачем нагромождать Qt, .Net и пр.?
Тоже за С#
Простенько и доков много. Нужна была как-то утилитка, за 5 минут гугления нашёл всю информацию, и ещё за 5 минут написал. Даже IDE не пользовался, в блокноте накатал, из командной строки скомпилил.
Меня вот пугает то, что нужно устанавливать какой нить C# Visual Studio монструозный. А рапостранять приложение можно будет просто архивом, без всяких инсталлеров?
Может потому-что проще? .net встроен в винду начиная со второго сервиспака XP. На нем все делается быстрей и удобней (доступ к апи не так удобен, но он есть и причем полноценный) Не думаю что человеку у которого приложение на java написано, составит большого труда использовать винапи в .net
Писал на c# приложение висящее в трее и перехватывающее нажатия кнопок, заняло 2 вечера, документации много, работать с WinAPI очень легко, писать приятно.
Если Windows, то либо C# (правда, возможно, придется немного повозиться с обращениями к WinAPI), либо C++/Delphi, ибо, в отличие от предложенных Вами вариантов, нативный код, плюс не требуется таскать за собой фреймворки (как в C#). C++ может потребовать установки C++ Redistributables.
А я буду нестандартным и в контексте моей рекламной кампании этого языка посоветую D. Либы для GUI есть, даже биндинг Qt есть, сам по себе язык очень приятен. Но это, конечно, не мэйнстрим (пока).