Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Эмуляция нажатий клавиш клавиатуры Добавлено: 24.04.09 08:45  

Автор вопроса:  ofolfa
Всем привет!
Только не кричите что тема обсуждалась уже много раз.
Перепробовал все что нашел. Не работает.
Есть виртуальная машина пробовал и с Virtual PC и с Virtual Box.
На вирт машине блокнот, нужно там набрать текст.
Не хочет работать. Помогите!!! Очень нужно, весь день сидел, ничего не придумал (((
Может кто может протестить на своей машине или может подскажите какие способы должные работать.
Пишу на VB.net, но возможны любые решения, даже на VB6.

А можно ли как-то узнать по какому принципу работает экранная клавиатура? Она без проблем отправляем нужные события.

Зарание всем спасибо!

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #1
Добавлено: 24.04.09 09:22
Клавиатуцра работает наверно по такому принцыпу.
  1. [Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
  2.     Const VK_BACK = &H8
  3.     Const KEYEVENTF_KEYUP = &H2
  4.  
  5.  
  6. Private Sub BACKSPACE()
  7.     Call keybd_event(VK_BACK, 0, 0, 0) 'press BACKSPACE
  8.     Call keybd_event(VK_BACK, 0, KEYEVENTF_KEYUP, 0) 'Up BACKSPACE
  9. End Sub /source]
  10. В текстовом  поле напиши что нибудь, до открытия формы.
  11. [source]Private Sub Text1_Change()
  12.     If Text1<> "" Then BACKSPACE
  13. End Sub

Ответить

Номер ответа: 2
Автор ответа:
 ofolfa



Вопросов: 1
Ответов: 3
 Профиль | | #2 Добавлено: 24.04.09 10:02
Да, именно по таком, еще в vb.net есть SendKeys но я ж говорю, в моем случае не работает. Программа должна отправить кнопки блокноту, которые находится в другой ОС, запущеной через вирт машину. Весь прикол в том, что экранная клавиатура работает без проблем, я перепробовал все средства, ничего не помогает (

Ответить

Номер ответа: 3
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #3
Добавлено: 24.04.09 10:13
А обязательно передавать нажатие клавиатуры, нельзя по сети??

Ответить

Номер ответа: 4
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #4 Добавлено: 24.04.09 14:45
Сначала виртуалку надо сделать активной, а потом вызывать события и все это через апи, но чет неверится, что в дотнэте нет подходящих классов.

Ответить

Номер ответа: 5
Автор ответа:
 ofolfa



Вопросов: 1
Ответов: 3
 Профиль | | #5 Добавлено: 24.04.09 17:51
А что значит активной? Того, что я ее вручную активирую недостаточно?

По сети нельзя (

Ответить

Номер ответа: 6
Автор ответа:
 ofolfa



Вопросов: 1
Ответов: 3
 Профиль | | #6 Добавлено: 24.04.09 18:28
активирую через SetForegroundWindow, не помогает

Ответить

Номер ответа: 7
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #7 Добавлено: 27.04.09 04:52
Сказал про апи и дотнэтчики забили на тему, ну народ.
Чтото было еще кроме форэграунда, чтото вроде активэйтвиндоу.
У меня вмвара нормально принимает с экранной клавы, а клава вроде на апи.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам