SendKey - что не так?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Nikolka
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 174
Зарегистрирован: 01.01.2004 (Чт) 2:06

SendKey - что не так?

Сообщение Nikolka » 01.06.2005 (Ср) 13:01

В общем какая-та лажа получается, мне нужно в окошке MSWordXP активировать окно поиска. Делаю:

Код: Выделить всё
AppActivate "ПРИВА!.DOC - Microsoft Word"

SendKey "%F"


И ничё не выходит. Смотрел - в ворде вроде бы CTRL+F работает. AppActivate тоже активизирует.
В чём дело? Или есть какие-нить АПИ для управления, клавы (уверен АПИ работает лучше чем родной SendKeys). Чё-то нашкрябал SetKeyboardState, но пользоваться не умею.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.06.2005 (Ср) 13:03

А раскладка клавиатуры при этом русская или английская?
Lasciate ogni speranza, voi ch'entrate.

Nikolka
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 174
Зарегистрирован: 01.01.2004 (Чт) 2:06

Сообщение Nikolka » 01.06.2005 (Ср) 13:10

упс... А как её поменять?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.06.2005 (Ср) 13:15

Зачем? Пишешь SendKeys "^а" ("а" русская) и все.
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.06.2005 (Ср) 14:51

А если там раскладка английская? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.06.2005 (Ср) 15:16

Тогда ^F :)
Это ведь не повод менять раскладку? Надо просто определить текущую, и какой символ (фонетический) в ней соответствует определенному скан-коду.
Lasciate ogni speranza, voi ch'entrate.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 01.06.2005 (Ср) 19:45

а горячим клавишам пофигу на раскладку
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Nikolka
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 174
Зарегистрирован: 01.01.2004 (Чт) 2:06

Сообщение Nikolka » 01.06.2005 (Ср) 19:54

Кстати верно. Так кто мне чё подскажет... (какой наглёж :D )

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 01.06.2005 (Ср) 19:56

Дык поджсказали уже вроде! ^ заменяет Ctrl и только так и больше никак. Какие символы заменяют Alt и Shift не помню... :roll:
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Nikolka
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 174
Зарегистрирован: 01.01.2004 (Чт) 2:06

Сообщение Nikolka » 01.06.2005 (Ср) 20:03

Так - э,

1. В хелпе сказано, что % - это CTRL.
2.Там жесказано, что в таких случаях надо использовать скобки, типа чтобы комбинацию совершить.
3.А по етаму метаду: SendKeys "^а",True ничё не пашет. Он просто выводит в Word букву a.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 01.06.2005 (Ср) 20:05

% - это ALT, ^ - это CTRL, + - это SHIFT. Только так :)

MSDN писал(а):To specify keys combined with any combination of the SHIFT, CTRL, and ALT keys, precede the key code with one or more of the following codes:

Key/Code
SHIFT/+
CTRL/^
ALT/%


To specify that any combination of SHIFT, CTRL, and ALT should be held down while several other keys are pressed, enclose the code for those keys in parentheses. For example, to specify to hold down SHIFT while E and C are pressed, use "+(EC)". To specify to hold down SHIFT while E is pressed, followed by C without SHIFT, use "+EC".
Моду создают модоки, а распространяют модозвоны.

Nikolka
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 174
Зарегистрирован: 01.01.2004 (Чт) 2:06

Сообщение Nikolka » 01.06.2005 (Ср) 20:55

Сорю, сорю, sorry. Вообще тема была ламерской, я выкачал из сети класс этой функции и пробовал использовать его. После многих и тчательных тестов, пришёл к простому старому Sendkeys (обычному), который выглядит:

SendKeys "(^а)", True

Всё работает. :D

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.06.2005 (Ср) 21:35

Не помню, что в Ворде делает Ctrl-F, но подозреваю, что надёжнее и проще сделать то же самое программно, через его объектную модель.
Изображение

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 01.06.2005 (Ср) 21:51

Темыч, в ворде Ctrl+F делает тоже самое, что и во всех других приложениях (да и всамой винде). Поиск это, батенька... А вот насчет проще... не знаю-не знаю... то,что sendkeys работать так просто не будет - и ежу ясно, ведь нада знать заголовок окна... а хер его узнаешь не зная имя документа и тд и тп... Но речь не об этом. Человеку надо так - пусть делает так. Наше дело помочь =)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 02.06.2005 (Чт) 7:43

kirrun писал(а):то,что sendkeys работать так просто не будет - и ежу ясно, ведь нада знать заголовок окна... а хер его узнаешь не зная имя документа и тд и тп...

Бред.
SendKeys не нужно знать заголовок окна.
Lasciate ogni speranza, voi ch'entrate.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 02.06.2005 (Чт) 10:03

aibek, надо фокус на окно установить :wink:
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 02.06.2005 (Чт) 10:07

А он же уже его активизировал. (в данном случае, вызвал AppActivate.) Так что фокус уже здесь :)
Моду создают модоки, а распространяют модозвоны.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 02.06.2005 (Чт) 10:32

В любом случае, hWnd окна можно найти не только по заголовку, но и по классу, так что знать имя документа не обязательно.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 02.06.2005 (Чт) 10:48

hCORe, ага, тока ему по-моему надо активировать ЛЮБОЕ окно ворда, а так он сможет активировать тока с конкретным названием документа ;)

uhm, мы говорим про ЭТОТ конкретный случай. Из любой ситуации есть выход! 8)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 180

    TopList