Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java-программа и Windows-приложение, можно ли их как-то синхронизировать? 
V
    Опции темы
Metal_Heart
Дата 16.1.2007, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



Цитата(Alexandr87 @  15.1.2007,  15:41 Найти цитируемый пост)
По-любой для фокуса с определением координат контрола нужно испольозовать winapi функции, следоавтельно писать библиотеку и jni к ней


А что будет делать Java? Создавать форму с кнопочками и передавать управление нативному коду?
Нативный код всё-равно на Срр писать придется.

Выбранный тобою подход, в данном случае  может оправдать себя, только если пишешь кросс-платформенное приложение! Иначе - лучше не стоит, честное слово!



--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
Alexandr87
Дата 16.1.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 9
Всего: 39



код на с с использованием winapi для получения левого верхнего угла контрола
Код

#include <stdio.h>

#include <windows.h>





int main(int argc, char* argv[])

{



    HWND mainWnd = FindWindow("SciCalc",NULL);

    

    if (!mainWnd)

        return 1;



    HWND temp = FindWindowEx(mainWnd,NULL,"Static",NULL);



    int check = false;

    char title[100];

    while (true) {

        GetWindowText(temp,title,100);

        if (strcmp(title,"")!=0)

            break;

        temp = FindWindowEx(mainWnd,temp,"Static",NULL);

        if (!temp) 

            return 1;

    }





    RECT rect;



    GetWindowRect(temp,&rect);



    printf("left:%d,top:%d\n",rect.left,rect.top);





    return 0;

}




данная функция, ищет контрол для (ввода/вывода)  в стандратной windows-прогамме калькулятор.
Немного по коду
    HWND mainWnd = FindWindow("SciCalc",NULL);

каждое окно в windows имеет свой класс и имя, в данном случае SciCalc - класс окна программы калькулятора.
Для того, чтобы посмотреть какой класс у нужного тебе окна есть специальные программы типа Spy++

После того как ты окно контрола, нужно найти сам контрол

    HWND temp = FindWindowEx(mainWnd,NULL,"Static",NULL);

процедура расширенного поиска окна, первый параметр - окно предок, второй параметр предыдущее найденный контрол(класс и имя контролла не однозначно идентифицируют окно в в системе, поэтому просматриваются все контролы родительского окна данного класса), у окна, которое нас интересует имя окна изменяется динамечески, но никогда не равно пустоте, остальные два параметра как и у функции  FindWindow. Так, что правь код, под нужные тебе окна, делай dll, читай про JNI - и дерзай.
PM Jabber   Вверх
check
Дата 17.1.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 2
Всего: 23



Alexandr87,  я запустил этот код на Borland Builder 6, вот что выдает:
[
Код

Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

PM MAIL   Вверх
Alexandr87
Дата 17.1.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 9
Всего: 39



откомпилируй в Visual C++,  я ваще Borlфndom не пользовался, так что не знаю
PM Jabber   Вверх
Metal_Heart
Дата 17.1.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



check, сходи в раздел С++ там тебе быстрее помогут,  а что касаемо Явы - спрашивай сдесь.
А то как-то ... 


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
check
Дата 17.1.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 2
Всего: 23



Metal_Heart,  да,  я и сам уже собирался. 
Просто по инерции...
Тут будем считать тему как бы прикрытой.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.