Взаимодействие с другими приложениями

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

Взаимодействие с другими приложениями

Сообщение sashar2 » 02.03.2005 (Ср) 20:46

Вот я тут решил позабавиться и придумал... Мне хотелось бы написать собственную утилиту для ломания допустим пароля в rare, как мне это сделать? Вот как мне написать такую программу? Я не имею ввиду сам процесс подбора, а процесс взаимодействия. Подскажите пожалуйста.

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 02.03.2005 (Ср) 20:56

Имхо SendKeys, MouseEvent
Но не проще, но быстрее (значительно) разобраться в форматах!
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 02.03.2005 (Ср) 21:00

Пожалуйста можно по подробнее о SendKeys? И зачем нужно MouseEvent?

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 02.03.2005 (Ср) 21:10

sashar2 писал(а):Пожалуйста можно по подробнее о SendKeys? И зачем нужно MouseEvent?


Код: Выделить всё
SendKeys "Hello, world!{enter}"
SendKeys "{ctrl+alt+del}"


Эмулирует нажатия.

Код: Выделить всё
Private Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)


Можно кликать и творить лабуду.
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 02.03.2005 (Ср) 21:27

Насчет первого:
SendKeys "{ctrl+alt+del}" - а можно SendKeys "{tab+alt}" допустим.
Насчет второго:
Можно тоже, совсем малеьний примерчик ввиде первого...

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 02.03.2005 (Ср) 21:39

И еще достаточно простой вопрос, вот можно ли создать объект? Допустим звять и создать кнопку или она должна быть обязательно создана до этого в окне редактора?

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 03.03.2005 (Чт) 2:10

Второй вопрос:
1.Сделать в редакторе массив елементов, а потом
load a(1)
2. не помню, чо то вроде
dim a as commandbutton

3.Controls.add("VB.CommandButton","MyButton")
الفيجوال بيسك الرابح

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 03.03.2005 (Чт) 8:20

1) Так что насчет первого?
2) Что значит массив ЭЛЕМЕНТОВ? Просто массив я создам.... И насчет второго пункта, вспомни пожалуйста!

Костя
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 14.02.2005 (Пн) 6:45
Откуда: Новосибирск

Сообщение Костя » 03.03.2005 (Чт) 10:45

Для того, чтобы добавить элемент в массив элементов:
1.Создаём масссив. Для этого указываем число (0) в свойстве index уже существующего на форме объекта (напр., кнопка command1).
2.Добавляем в этот массив элемент. Для этого в коде пишем строчку
load command1(1)
Всё бывает!

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 03.03.2005 (Чт) 12:16

Тогда уж заодно, что б мне не искать : а как потом этот элемент удалить? :D

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

Сообщение alibek » 03.03.2005 (Чт) 12:56

Unload
Lasciate ogni speranza, voi ch'entrate.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 03.03.2005 (Чт) 15:59

:oops: блин, мог бы и сам догадаться :(

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 03.03.2005 (Чт) 23:34

Извиняюсь, но у меня ничего и не вышло...
Добавил я индекс 0.. и один пробовал добавлять.
Вроде бы вставил я этот элемент (во всяком случае все было без ошибок), но потом "показать" его я не смог.
Controls.add("VB.CommandButton","MyButton")
вообще никак не читается.
Думаю с добавлением в массив я справился, но вот с добавлением в форму нет. Подскажите уж пожалуйста!

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 03.03.2005 (Чт) 23:39

И зачем вообще создавать до этого элемент?
Как я понимаю добавлять элемент на форму надо для того, чтобы потом просто не указывать свойства другой кнопки в этом массие? Правильно я говорю?

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 04.03.2005 (Пт) 0:08

Код: Выделить всё
Option Explicit
Private WithEvents new_button As CommandButton
Private Sub Command1_Click()
Command1.Enabled = False
Set new_button = Me.Controls.Add("VB.CommandButton", "cmdNew")
With new_button
          .Move Command1.Left, Command1.Top + Command1.Height + 130
          .Caption = "Новая < кнопка "
          .Visible = True
          .Height = 590
End With
End Sub

Вот нашел пример, только объясните что такое With и все что в него входит....

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 04.03.2005 (Пт) 0:24

1) Нашел способ обойтись без with, но хотелось бы знать всетаки что это такое, хотя и предполагаю. Вот я упростил код до минимума:
Код: Выделить всё
Private Sub Form_Load()
Dim new_button As CommandButton
Set new_button = Me.Controls.Add("VB.CommandButton", "cmdNew")
new_button.Visible = True
End Sub

НО что такое cmdNew? Я не совсем понял...

2) И я не понял можно в сэнд кейс написать {tab+alt} например?

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 04.03.2005 (Пт) 15:38

Что, никто не знает ответа на мой вопрос?

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

Сообщение GSerg » 04.03.2005 (Пт) 16:48

1. Имя кнопки.
2. Ну попробуй, кто ж мешает...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение uhm » 04.03.2005 (Пт) 17:25

А With - это просто удобный способ записи. Если собираешься много обрашаться к propert'ям и method'ам одного и того же объекта, вместо

object.method1 ...
object.method2 ...
object.property=...

написать

With object
.method1 ...
.method2 ...
.property=...
End With
Быть... или не быть. Вот. В чём вопрос?

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 04.03.2005 (Пт) 22:17

GSerg
1) Это не имя кнопки... Имя кнопки здесь будет new_button.
2) Попробую
uhm
Спасибо.

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

Сообщение tyomitch » 04.03.2005 (Пт) 22:22

sashar2 писал(а):GSerg
1) Это не имя кнопки... Имя кнопки здесь будет new_button.

Ошибаешься. Попробуй посмотреть new_button.Name - там будет "cmdNew"
Изображение

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 04.03.2005 (Пт) 22:36

Почемуже тогда cmdNew нельзя назначить какие-либо свойства? От куда два имени то взялось?

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

Сообщение tyomitch » 04.03.2005 (Пт) 23:13

sashar2 писал(а):Почемуже тогда cmdNew нельзя назначить какие-либо свойства? От куда два имени то взялось?
Да чего ты гонишь? Всё можно!
Код: Выделить всё
Private Sub Form_Load()
Dim new_button As CommandButton
Set new_button = Me.Controls.Add("VB.CommandButton", "cmdNew")
new_button.Visible = True
Me!cmdNew.Caption = "cmdNew"
End Sub


А имени тут действительно два. Если хочешь - можешь сделать хоть три, хоть десять; в чём проблема-то?
Изображение

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 05.03.2005 (Сб) 0:32

Проблема в том, что я плохо знаю язык =).
А имени кажется я понял почему два... Одно нормальное, а другое обозначает его в контроле что ли...вообщем сложно сказать, но для себя я понял.

Кстати, надеюсь не приеться создавать еще одну темку:
Как сделать commandbuttоn круглой? Я видел пример, как делается форма круглой, а как сделать тоже самое с кнопкой?

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 05.03.2005 (Сб) 2:58

sashar2 писал(а): Я видел пример, как делается форма круглой, а как сделать тоже самое с кнопкой?
Ну так так же и сделать...

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 05.03.2005 (Сб) 3:10

Код: Выделить всё
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Sub Form_Load()
SetWindowRgn hWnd, CreateEllipticRgn(80, 0, 300, 200), True
End Sub

Вот этот код, но из него я не думаю, что смогу сделать круглую кнопку... Здесь надо в Declare изменять что-то точно.

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

Сообщение GSerg » 05.03.2005 (Сб) 3:18

SetWindowRgn cmdNew.hWnd, CreateEllipticRgn(80, 0, 300, 200), 1 ?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 05.03.2005 (Сб) 3:52

GSerg писал(а):SetWindowRgn cmdNew.hWnd, CreateEllipticRgn(80, 0, 300, 200), 1 ?
И даже в declare ничего изменять не пришлось... cmdNew - соответственно имя твоей кнопки, ну а уж с циферками поэкспериментируй сам...

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 05.03.2005 (Сб) 14:01

Код: Выделить всё
SetWindowRgn new_button.hWnd, CreateEllipticRgn(10, 10, 200, 200), True
new_button.Height = 20000
new_button.Width = 20000

И получается большая Круглая кнопка, кстати я выяснил параметры
SetWindowRgn имя_объекта.hWnd, CreateEllipticRgn (отступ слева, отступ сверху, ширина, высота)
Бок кнопки может получиться обрезаным, если выстота или ширина кнопки малы.

Вот так вот!
Кстати мне это нужно было для того, чтобы двигать круги/квадраты без мерцания, но не используя DirectX или BitBlt. Ведь кнопка один из самых подходящик немерцающих объектов. Мне кажеться мой выход обсалютно нормален для простых элементов.

sashar2
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 170
Зарегистрирован: 06.02.2005 (Вс) 19:58

Сообщение sashar2 » 05.03.2005 (Сб) 14:04

И вот еще один уже вопрос, который будет попроще, почему у созданой кнопки нельзя имзменить style на графический?
new_button.style = 1 ? Писал полностью графикал, тоже не помогло...

След.

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

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

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

    TopList