Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ПриАктивацииОкна (число прочтений - 2120 )
MaxPiter
Full Member
***
Отсутствует


I Love 1C++

Сообщений: 187
Местоположение: Санкт-Петербург
Зарегистрирован: 20. Ноября 2008
Пол: Мужской
ПриАктивацииОкна
20. Ноября 2008 :: 15:55
Печать  
Добрый день.
[ОФФ] огромнейший респект АЛЬФу за сие творение [/ОФФ]

задача такая
вариант 1
через внешний exe файл перебираю окна 1С по именам и когда нахожу нужное, делаю
BringWindowToTop и ShowWindow(wnd,SW_SHOWMAXIMIZED)
в результате окно с 1С разворачивается если свернуто и становится самым верхним

вопрос: Есть ли событие типа ПриАвтивацииОсновногоОкна1С ? потому как ПриАктивацииОкна работает только на форму.

вариант 2
через внешний exe файл перебираю окна 1С по именам и когда нахожу нужное, то посылаю
ShowMessage(wnd, WM_KEYDOWN,ord('a'),0)
sleep(10)
ShowMessage(wnd, WM_KEYUP,ord('a'),0)
т.е. имитирую нажатие кнопок на окне

Если поместить ПриНажатииКнопкиКлавиатуры в глобальный модуль, то интерактивно все работает, но при вызове из exe ноль эмоций, хотя если посылаю WM_CLOSE или какие другие команды, 1С их выполняет
вопрос: как поймать нажатия выполненные во внешнем exe файле

Подскажите пожалуйста как решить задачку любым из способов Улыбка

  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ПриАктивацииОкна
Ответ #1 - 21. Ноября 2008 :: 04:46
Печать  
1. Внешний файл обязателен? что за задача? почему нельзя сделать внутри 1С?
2. Посылай весь набор событий клавы - как нажатие, так и отпускание.
Или юзай спец.функции типа SendKeys - есть как для Дельфи, так и для С++, так и для 1С (в ФормЕкс)
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
MaxPiter
Full Member
***
Отсутствует


I Love 1C++

Сообщений: 187
Местоположение: Санкт-Петербург
Зарегистрирован: 20. Ноября 2008
Пол: Мужской
Re: ПриАктивацииОкна
Ответ #2 - 21. Ноября 2008 :: 06:16
Печать  
1) Задача, если упростить, то: запускаю test.exe который передает в 1С значение, наличие test.exe - обязательное условие

2) ShowMessage - в Delphi и есть аналог VBшного SendKeys, тока формекс не отлавливает это сообщение
2.1) посылаю вроде все что нужно, сначало DOWN потом UP пробовал и WM_CHAR посылать и WM_COMMAND и че тока не пробовал Улыбка
как уже говорил, WM_CLOSE и WM_QUIT отрабатывает без вопросов, а вот нажатие увы Печаль

вариант 3
может как то через ВншнееСобытие это можно организовать.
  
Наверх
www  
IP записан
 
MaxPiter
Full Member
***
Отсутствует


I Love 1C++

Сообщений: 187
Местоположение: Санкт-Петербург
Зарегистрирован: 20. Ноября 2008
Пол: Мужской
Re: ПриАктивацииОкна
Ответ #3 - 21. Ноября 2008 :: 07:42
Печать  
решил вторым вариантом
BringWindowToTop()
ShowWindow(wnd,SW_SHOWMAXIMIZED)
keybd_event(VK_NUMPAD0,0,KEYEVENTF_EXTENDEDKEY,0);

извиняюсь за наговоры на FormEx, все прекрасно отработало, нужно было не посылать нажатие кнопки, а просто нажимать, так как окно в фокусе.

и все же про ПриАвтивацииОсновногоОкна1С, было бы удобно чтобы срабатывало это событие а не посылать набор символов и потом по нему определять то нажато или не то Улыбка
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ПриАктивацииОкна
Ответ #4 - 25. Ноября 2008 :: 09:55
Печать  
MaxPiter писал(а) 21. Ноября 2008 :: 07:42:
и все же про ПриАвтивацииОсновногоОкна1С, было бы удобно чтобы срабатывало это событие а не посылать набор символов и потом по нему определять то нажато или не то Улыбка

Напиши в багзиллу, сделаем.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать