Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Formex и wsh.SendKeys (число прочтений - 5463 )
IronDemon
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 27. Января 2007
Formex и wsh.SendKeys
27. Января 2007 :: 13:10
Печать  
Кто может объяснить следующую проблему.

Есть кнопка с кодом
wsh=СоздатьОбъект("WScript.Shell");
wsh.SendKeys("{F4}");

В форме есть ПриНажатииКнопкиКлавиатуры которая сообщает код клавиши.
По идее должно было сообщить "Код клавиши: 144", но имеем
Код клавиши: 144
Код клавиши: 144
Код клавиши: 115
Код клавиши: 115
Код клавиши: 144
Код клавиши: 144
Что это? Как бороться?

Проверял на 2.0.2 и на 2.0.5
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Formex и wsh.SendKeys
Ответ #1 - 27. Января 2007 :: 13:51
Печать  
Sub SendKeys(Keys As String, [Wait])

Все таки такое впечатление что тут дело в типе переменной Keys

PS не могу выложить тестовый пример так как движок форума автоматом переименовывает файл в *.ert_001 а такой формат естественно запрещен к загрузке

в тестовом примере сделано:

1. Реквизит диалога СтрокаДействий
2. флажок ЕстьСокрЛП

[code]
Перем счЗаходов;
//*******************************************
Процедура Сформировать()
   счЗаходов=0;
     
     wsh=СоздатьОбъект("WScript.Shell");
     wsh.SendKeys(?(ЕстьСокрЛП=1,СокрЛП(СтрокаДействия),СтрокаДействия));
     
     
   //Сообщить("количество заходов в процедуру"+счЗаходов);
КонецПроцедуры

Процедура ПриНажатииКнопкиКлавиатуры(КодКлавиши, Alt, Shift, Ctrl, Символ, ФСО)
     счЗаходов=счЗаходов+1;
     Сообщить(""+КодКлавиши+"    количество заходов в процедуру - "+счЗаходов);
     //Сообщить("количество заходов в процедуру"+счЗаходов);
КонецПроцедуры      // ПриНажатииКнопкиКлавиатуры

Процедура ПриОткрытии()
     СтрокаДействия= "{F4}";
КонецПроцедуры      // ПриОткрытии
[/code]



  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
IronDemon
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 27. Января 2007
Re: Formex и wsh.SendKeys
Ответ #2 - 27. Января 2007 :: 17:49
Печать  
Вот что получилось
Код клавиши: 144    количество заходов в процедуру - 1
Код клавиши: 144    количество заходов в процедуру - 2
Код клавиши: 145    количество заходов в процедуру - 3
Код клавиши: 145    количество заходов в процедуру - 4
Код клавиши: 115    количество заходов в процедуру - 5
Код клавиши: 115    количество заходов в процедуру - 6
Код клавиши: 144    количество заходов в процедуру - 7
Код клавиши: 144    количество заходов в процедуру - 8
Код клавиши: 145    количество заходов в процедуру - 9
Код клавиши: 145    количество заходов в процедуру - 10

Если обнулять ФСО то
Код клавиши: 144    количество заходов в процедуру - 1
Код клавиши: 145    количество заходов в процедуру - 2
Код клавиши: 115    количество заходов в процедуру - 3
Код клавиши: 144    количество заходов в процедуру - 4
Код клавиши: 145    количество заходов в процедуру - 5


Непонятно из-за чего нажимается NumLock?
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Formex и wsh.SendKeys
Ответ #3 - 28. Января 2007 :: 18:29
Печать  
А если НЕ использовать СокрЛП то заход в процедуру ПриНажатииКнопкиКлавиатуры будет вечным (по крайней мере у меня так)

- мое мнение вопроc возможно в несоответствие типов Строка (1C) и String (VB)
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Formex и wsh.SendKeys
Ответ #4 - 28. Января 2007 :: 19:21
Печать  
Тебе нужна Защита_От_Альфа  Очень довольный. (например в 1СQA посмотри)
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать