Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Creat0R
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 19
Зарегистрирован: 19.07.2006 (Ср) 2:51
Откуда: Univers://Earth.man

Сообщение Creat0R » 19.07.2006 (Ср) 18:59

Всем привет!

Подскажите пожалуйста, можно ли имитировать зажатие двух клавиш (ctrl shift), но чтобы они оставались зажатыми до тех пор, пока не будет закрыт определённый процесс в системе?

А ещё лучше, чтобы они оставались зажатыми до тех пор, пока заданное окно программы (не мсдос, а обычная прога, точнее браузер opera) будет активным, и как только оно не активно, эти клавиши как бы будут отжиматься, а скрипт как бы будет уходит в спячку до тех пор, пока опять не активируется то самое окно проги - И этот цыкл пусть будет пока в системе висит определённый процесс (opera.exe), как только процесс закрывается, скрипт пусть завершает свою работу.
CreatoR это не ник, CreatoR это стиль жизни!
Мой девиз - Умри, но будь!!!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 19.07.2006 (Ср) 19:10

Да, написать можно.
За тебя писать никто не будет.
Никрофилия(поднятие старых топиков) на этом форуме иногда поощрается предупреждениями.
Если что непонятно - разбей на НОРМАЛЬНЫЕ вопросы и задавай... В НОВЫХ темах...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Creat0R
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 19
Зарегистрирован: 19.07.2006 (Ср) 2:51
Откуда: Univers://Earth.man

Сообщение Creat0R » 19.07.2006 (Ср) 21:50

ANDLL
А что значит Нормальные вопросы? разве я задал не нормальный вопрос? или имеется ввиду писать на каждую функцию отдельный вопрос (и также новую тему на него)?
CreatoR это не ник, CreatoR это стиль жизни!
Мой девиз - Умри, но будь!!!

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

Сообщение GSerg » 19.07.2006 (Ср) 21:54

Creat0R
А правда было непонятно, что та тема не имеет никакого отношения к твоему вопросу?
Отделяю. Первый и, надеюсь, последний раз.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Creat0R
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 19
Зарегистрирован: 19.07.2006 (Ср) 2:51
Откуда: Univers://Earth.man

Сообщение Creat0R » 19.07.2006 (Ср) 22:12

GSerg
А правда было непонятно, что та тема не имеет никакого отношения к твоему вопросу?

Я действительно не обратил внимания (что та тема именно по вопросу касающимуся dos'а) - Тогда извините, погаречился :oops:

Первый и, надеюсь, последний раз.

Спасибо, буду стараться быстро адаптироваться к форуму!
CreatoR это не ник, CreatoR это стиль жизни!
Мой девиз - Умри, но будь!!!

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 20.07.2006 (Чт) 23:48

Юзай виртуальные клавиши (VK)

Shift - Private(Public) Const VK_SHIFT As Long = &H10
Ctrl(L) - Private(Public) Const VK_LCONTROL As Long = &HA2

В коде (например Button1) пишешь:
Код: Выделить всё
keybd_event VK_SHIFT, 0, 0, 0 'зажимаем клавишу
keybd_event VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 'отжимаем клавишу



Дальше сам догодаешься?

Creat0R
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 19
Зарегистрирован: 19.07.2006 (Ср) 2:51
Откуда: Univers://Earth.man

Сообщение Creat0R » 21.07.2006 (Пт) 1:49

neic
Дальше сам догодаешься?

Не совсем :oops: не получается у меня :( .

Как я понял, нажатие клавиш, должно быть в каком то цикле, и также в этом цикле нужно поставить проверку существования процесса, и если существует, то выходить из цикла... а после цикла поставить отжатие этих клавишь... хм.. в теории довольно просто, но на практике не получается, я про vbs, знаю столько-же, сколько учёный про любовь...

Я пробовал так (но это ооочень далеко от правильности):

Код: Выделить всё
var = 0
Do
Shift - Private(Public) Const VK_SHIFT As Long = &H10
Ctrl(L) Private(Public) Const VK_LCONTROL = &HA2
keybd_event VK_CTRL, 0, 0, 0
keybd_event VK_SHIFT, 0, 0, 0
if ProcessExists("process.exe") Then
var=1
EndIf
Until var = 1
keybd_event VK_SHIFT, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_CTRL, 0, KEYEVENTF_KEYUP, 0


Кстати, мне нужно чтобы это всё произошло не при нажатии кнопки, а просто после запуска скрипта.
CreatoR это не ник, CreatoR это стиль жизни!
Мой девиз - Умри, но будь!!!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.07.2006 (Пт) 2:18

Вот так вот :lol: Научишь одного, а он научит другого... И таким образом обучается подпольное сообщество программистов :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 21.07.2006 (Пт) 11:13

Creat0R
Код: Выделить всё
Private Const VK_LCONTROL = &HA2
Private Const VK_SHIFT As Long = &H10
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
__________________________________
Private Sub Timer1_Timer()
if ProcessExists("process.exe") Then
keybd_event VK_LCONTROL, 0, 0, 0
keybd_event VK_SHIFT, 0, 0, 0
Else
keybd_event VK_SHIFT, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0
End If
End Sub
__________________________________


Вот, так вот!

Хакер
Надо пользоваться тем, что научился ;) :)

Creat0R
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 19
Зарегистрирован: 19.07.2006 (Ср) 2:51
Откуда: Univers://Earth.man

Сообщение Creat0R » 21.07.2006 (Пт) 13:35

neic
Я записал код который ты привёл в своём посте, в файл vbs, и когда запустил его, мне выдалось следующее сообщение:

Изображение

Как исправить? я пытался убирать слова после знаков ровно (=), но другие ошибки стали всплывать.. :( что я не так делаю?
CreatoR это не ник, CreatoR это стиль жизни!
Мой девиз - Умри, но будь!!!

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 21.07.2006 (Пт) 13:48

2Creat0R А ты вообще понимаешь различие между VisualBasic и VBScript? Код предложенный здесь предназначен для Visual Basic. Из этого и делай выводы.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Creat0R
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 19
Зарегистрирован: 19.07.2006 (Ср) 2:51
Откуда: Univers://Earth.man

Сообщение Creat0R » 21.07.2006 (Пт) 14:06

Oxygen писал(а):2Creat0R А ты вообще понимаешь различие между VisualBasic и VBScript? Код предложенный здесь предназначен для Visual Basic. Из этого и делай выводы.


Хм.. ну если честно, я действительно думал что Visual Basic это тоже что и VBScript - Ведь асоциативно совпадают первые две буквы V и B, а скрипт это типа дополнения... :oops:

Тогда вопрос такой, а как пользоваться Visual Basic? т.е как запускать скрипт чтобы он сработал? нужно ставить какие-то внешние программы (компиляторы?), или можно средствами виндоус? - Направьте плиз заблудшего на путь верный, ибо сошёл я с него (или не наступал на него никогда :) )
CreatoR это не ник, CreatoR это стиль жизни!
Мой девиз - Умри, но будь!!!

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 21.07.2006 (Пт) 14:15

VB и VBScipt это несколько разные вещи. Имеют они схожий синтаксис. Разумеется нужна среда, которая включает в себя компилятор. И средствами Windows ты здесь никак не обойдешься. Идешь в магазин, покупаешь диск с Visual Basic 6. Устанавливаешь его. Там создаешь новый проект и добавляешь на него таймер. Открываешь просмотр кода. И вставляешь туда нужный тебе код. Это если вобщем.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 21.07.2006 (Пт) 15:40

Ну ещё можно
Код: Выделить всё
rundll32 user32,keybd_event , 16, 0, 0, 0

Запустить как обычную программу.
Если всё делать своими ручками, они скоро отвалятся !

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 21.07.2006 (Пт) 15:51

2Creat0R: Запусти программу winword, нажми Alt+F11... Вот тебе Visual Basic.. Ну не VB6 конечно, но тебе для начала хватит... Я именно на этом учился программировать первые полгода наверное :)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

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

Сообщение tyomitch » 21.07.2006 (Пт) 16:15

Kovu писал(а):Ну ещё можно
Код: Выделить всё
rundll32 user32,keybd_event , 16, 0, 0, 0

Запустить как обычную программу.

Ничего подобного: так нельзя.
См. http://blogs.msdn.com/oldnewthing/archi ... 58973.aspx
Изображение

Creat0R
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 19
Зарегистрирован: 19.07.2006 (Ср) 2:51
Откуда: Univers://Earth.man

Сообщение Creat0R » 21.07.2006 (Пт) 19:52

ANDLL
Запусти программу winword, нажми Alt+F11... Вот тебе Visual Basic..

Спасибо на совете, но у меня нет возможности на данный момент установить ворд (мало места на диске), может быть есть альтернативы?
Последний раз редактировалось Creat0R 21.07.2006 (Пт) 20:17, всего редактировалось 1 раз.
CreatoR это не ник, CreatoR это стиль жизни!
Мой девиз - Умри, но будь!!!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.07.2006 (Пт) 20:00

Creat0R.
- Хм... а я думал что мотоцикл и автомобиль одно и тоже.
- Мотоцикл и автомобиль это несколько разные вещи. Оба работают на бензине. Идёшь в автомагазин и покупаешь себе машину.
- Ну можно ещё ходить пешком.
- Сходи автопрокат. Вот тебе и машина. Не собственная конечно. Но для начала хватит.
- [Цитата: - Ну можно ещё ходить пешком. ] Ничего подобного.
- [Цитата: - Сходи автопрокат. ] Спасибо на совете. Но у меня и прав то нет. Есть какая нибудь альтернатива?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


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

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

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

    TopList