Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Send("^V") как это работает . (http://forum.oszone.net/showthread.php?t=147459)

Str_ani_ck 08-08-2009 19:58 1188938

Send("^V") как это работает .
 
На сколько я понял эта функция закидывает в буфер обмена

Код:

ClipPut("12345678910")
а эта извлекает и буфера обмена
Код:

ClipGet()
по идее это тоже самое, или нет? С помощью последней можно извлечь из буфера в блокнот, или нет?
Код:

Send("^V")
Написал вот такой скриптик и ничего не вышло, поидее должно было вставиться в блокнот 12345678910, но в блокнот вставилась бувка V, в чем прикол.
Код:

Run("notepad.exe")
WinWait("Безымянный - Блокнот","")
ClipPut("12345678910")
Send("^V")


Nik_rus 08-08-2009 20:05 1188946

Да, по сути - одно и то же.
Но ClipGet нужен чтобы, например, послать текст в неактивное окно, в то время как Send() - в текущее активное.

Str_ani_ck 08-08-2009 20:11 1188950

Цитата:

Цитата Nik_rus
Да, по сути - одно и то же.
Но ClipGet нужен чтобы, например, послать текст в неактивное окно, в то время как Send() - в текущее активное. »

Код:

Run("notepad.exe")
WinWait("Безымянный - Блокнот","")
ClipPut("12345678910")
Send("^V")

Но почему тогда это не сработало?

И как тогда послать с помощью ClipGet ?

Nik_rus 08-08-2009 20:30 1188964

Send чувствителен к регистру. Очень ранимый к ниму :)
Если вместо V вставить v - все будет чики-пуки.
Кстати, небольшой совет - для более быстрой работы пиши в начале Opt("SendKeyDelay",0), хотя тут это не суть важно.
+ бонус шли ф5 в блокнот)

Через ClipGet шлеется так:
Код:

Opt("SendKeyDelay",0)
Run("notepad.exe")
WinWait("Безымянный - Блокнот")
ClipPut("1234567891048ry34r38ry9wery8weyrew9rywe8yrweiurweir")
ControlSetText("Безымянный - Блокнот","","[CLASS:Edit; INSTANCE:1]", ClipGet())


Str_ani_ck 08-08-2009 20:37 1188967

Send чувствителен к регистру. Очень ранимый к ниму
Если вместо V вставить v - все будет чики-пуки.
Кстати, небольшой совет - для более быстрой работы пиши в начале Opt("SendKeyDelay",0), хотя тут это не суть важно.
+ бонус шли ф5 в блокнот)

Всеравно теперь только маленькая v в блокноте))))

266903582 08-08-2009 20:41 1188970

Пробуй так:
Код:

Run("notepad.exe")
WinWait("Безымянный - Блокнот")
WinActivate("Безымянный - Блокнот")
ClipPut("1234567891048ry34r38ry9wery8weyrew9rywe8yrweiurweir")
Send("^{V}")


Str_ani_ck 08-08-2009 20:46 1188972

Цитата:

Цитата 266903582
Run("notepad.exe")
WinWait("Безымянный - Блокнот")
WinActivate("Безымянный - Блокнот")
ClipPut("1234567891048ry34r38ry9wery8weyrew9rywe8yrweiurweir")
Send("^{V}") »

Всеравно буква В, и все

Str_ani_ck 08-08-2009 21:06 1188983

Такой способ работает, проверил

Код:

Opt("SendKeyDelay",0)
Run("notepad.exe")
WinWait("Безымянный - Блокнот")
ClipPut("1234567891048ry34r38ry9wery8weyrew9rywe8yrweiurweir")
ControlSetText("Безымянный - Блокнот","","[CLASS:Edit; INSTANCE:1]", ClipGet())


А этот способ нет
Код:

Send("^{V}")
Send("^{v}")
Send("^V")
Send("^v")


Nik_rus 08-08-2009 21:19 1188995

У тебя винда плохая
Ставь тукс :)

А по теме - я не знаю почему не работает... у меня все прекрасно...
Проверь версию интерпретатора - может в ней дело

Str_ani_ck 08-08-2009 21:22 1188997

А по русски без мата можно, куда лезть что смотреть?

Цитата:

Цитата Nik_rus
У тебя винда плохая
Ставь тукс
А по теме - я не знаю почему не работает... у меня все прекрасно...
Проверь версию интерпретатора - может в ней дело »


Nik_rus 08-08-2009 21:27 1189003

Это не мат :)
По теме - смари личку.
И не шли туда, все равно все сдесь пишеш, а я тут топики мониторю :)

Str_ani_ck 08-08-2009 21:30 1189006

v3.2.12.1

©1999-2008 Jonathan Bennett & AutoIt Team

AutoIt v3 Homepage

Nik_rus 08-08-2009 21:32 1189008

Ну вроде норм версия.
Я не знаю что у тебя там такого не правильного...

266903582 08-08-2009 21:32 1189009

Цитата:

Цитата Str_ani_ck
Всеравно буква В, и все »

Поставь английский по умолчанию и буквы v не будет.

Nik_rus 08-08-2009 21:46 1189019

Ну вроде норм версия.
Я не знаю что у тебя там такого не правильного...

Ы попробуй Send("^м")

Str_ani_ck 08-08-2009 21:59 1189030

Вложений: 1
Вот иформация по окну в которое хочу вставить код, фото внизу

Str_ani_ck 08-08-2009 22:00 1189032

Цитата:

Цитата Nik_rus
Ну вроде норм версия.
Я не знаю что у тебя там такого не правильного...
Ы попробуй Send("^м") »

Смейтесь Смейтесь

266903582 08-08-2009 22:15 1189047

Цитата:

Цитата Str_ani_ck
Вот иформация по окну в которое хочу вставить код, фото внизу »

Данная задача к указанной теме (Send("^V") как это работает) отношение имеет косвенное. Дальнейшее рассмотрение случая будет уже отклонением от темы.
Пример работы отправки по ctrl+v я привел. Условия работы (при включенной английской раскладке) указал. Все остальное можно решить функцией ControlSetText. Удачи.

Str_ani_ck 08-08-2009 22:21 1189055

Цитата:

Цитата 266903582
Данная задача к указанной теме (Send("^V") как это работает) отношение имеет косвенное. Дальнейшее рассмотрение случая будет уже отклонением от темы.
Пример работы отправки по ctrl+v я привел. Условия работы (при включенной английской раскладке) указал. Все остальное можно решить функцией ControlSetText. Удачи. »

Смотрите какая мелочь и правда работает ,если поставить аннглийскую раскладку по умолчанию.

Nik_rus 09-08-2009 12:09 1189286

Ухахааха

Medic84 09-08-2009 15:24 1189383

Есть такая кнопка "Тема решена"...

Creat0R 09-08-2009 15:42 1189389

А есть ещё альтернатива, независящая от раскладки клавиатуры:

Код:

Send("+{INS}")
(Shift + Ins)

evg64 16-11-2009 17:49 1271849

У меня тоже Send("^V") начал работать только после того, как я поставил по умолчанию англ. раскладку. Когда по умолчанию поставил китайский, Send("^V") работала как положено. Видимо, проблема в русской раскладке, а не в том, что непременно должна стоять английская. Знает ли кто-нибудь, что может быть не так с русской? А то не хочется выбирать между Send("^V") и русск раскладкой по уолчанию)

kaster 16-11-2009 18:30 1271896

evg64,
так сказали же,
Ctrl+Ins = Ctrl+C
Shift+Ins = Crtl+V

sashadeg 18-11-2009 07:50 1273163

Я тоже долго думал, как вставить из буфера обмена именно комбинацией клавиш.
Send("+{INS}")
Creat0R, спасибо!


Время: 14:35.

Время: 14:35.
© OSzone.net 2001-