Sendkeys не работает для управления редактированием dhtml на win xp

Приведенный ниже код будет отправлять нажатия клавиш в элемент управления редактирования DHTML в Windows Vista, но не в Windows XP.

DHTMLEdit1.SetFocus
MySendKeys ("zzz")

MySendKeys относится к замене ключей VB6 Sendkey, написанному Карлом Петерсоном для Windows Vista и более поздних версий. Но я не думаю, что это актуально, потому что следующий код не работает и на xp

DHTMLEdit1.SetFocus
SendKeys ("zzz")

В Windows XP элементом управления редактированием DHTML является «Управление редактированием DHTML для IE5» в соответствии с окном компонентов проекта в vb6. ://msdn.microsoft.com/en-us/library/aa663363.aspx" rel="nofollow">предоставляется Microsoft.

Кто-нибудь знает, как заставить его работать?


person kjack    schedule 15.08.2013    source источник


Ответы (2)


SendKeys() уже не так совместим. Редактор DHTML, вероятно, имеет другой метод ввода данных, который не требует, чтобы вы взломали что-то подобное. По большей части это обычно угроза безопасности.

Кроме того, скорее всего, это совсем другой элемент управления, и он может даже не реагировать должным образом на нажатия клавиш.

Возможно, вы сможете уточнить, что вы пытаетесь сделать - возможно, есть лучшее решение, чем отправка нажатий клавиш.

person Mike Weir    schedule 15.08.2013
comment
Спасибо, но хотя Sendkeys не работает на Vista, упомянутая замена работает. Также проблема не в более новой версии Windows, а в XP. Я пытаюсь вставить/вставить текст в текущую позицию в элементе управления dhtml. - person kjack; 16.08.2013

Я закончил тем, что использовал это неэлегантное решение

Clipboard.SetText "zzz"
DHTMLEdit1.ExecCommand DECMD_PASTE, OLECMDEXECOPT_DODEFAULT
DHTMLEdit1.SetFocus

В Vista и более поздних версиях эффект такой же, как у sendkeys.

На xp он вставляет текст правильно, но не оставляет вас с мигающим курсором (вы должны вручную щелкнуть элемент управления, чтобы возобновить ввод с клавиатуры).

person kjack    schedule 23.08.2013