Как разблокировать меню другого приложения.

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

Как разблокировать меню другого приложения.

Сообщение CoolTeapot » 24.12.2004 (Пт) 9:15

Возможно ли сделать програмку позволяющую разблокировать меню (и подменю) другого приложения. Т.е. задать для них свойства Enabled=True.
Как вытащить хэндлы менюшек я разобрался, а вот куда дальше копать не знаю.

Можно ли создать объект по известному хэндлу и затем работать с его свойствами?
Жизнь - борьба.
До обеда с голодом, после обеда со сном.

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

Сообщение GSerg » 24.12.2004 (Пт) 11:18

Нет. Хотя ничто не мешает добавить такой функционал к нашему PopupMenu2, причём парой строк кода :) Я просто в своё время решил, что это будет неправильно, поскольку не предназначал свою менюшку для контроля чужих менюшек :)

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

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

Сообщение tyomitch » 24.12.2004 (Пт) 16:11

GSerg писал(а):Копай в сторону SetMenuItemInfo.

Достаточно обычного EnableMenuItem
Изображение

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

Сообщение GSerg » 24.12.2004 (Пт) 16:23

Ну да...
Есть функции для индивидуальных команд...
А вдруг ему потом ещё чего захочется?

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

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

Сообщение tyomitch » 24.12.2004 (Пт) 16:32

GSerg, я по-моему ещё не рассказывал про одну удивительную шаровару... Незарегистрированная версия при старте выдаёт попап с тремя кнопками - "Register", "Try", "Quit". Через 30 дней кнопка "Try" дизаблится. Однако если закрыть попап крестиком в углу, то я остаюсь с работающей прогой! Вот, типа, взлом \m/
Изображение

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

Сообщение GSerg » 24.12.2004 (Пт) 16:41

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

CoolTeapot
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 123
Зарегистрирован: 28.06.2002 (Пт) 8:56
Откуда: Russia, Zelenogorsk

Сообщение CoolTeapot » 25.12.2004 (Сб) 9:10

GSerg писал(а):Ну да...
ЗЫ: чего ломаем? :P


Ну типа разблокирую свою прогу к которой потерял исходник :roll:

Всем спасиба.
Осталось найти декларацию на EnableMenuItem (в API-Guide нету) и как только доберусь до компьютера начну эксперименты.
Жизнь - борьба.
До обеда с голодом, после обеда со сном.

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

Сообщение tyomitch » 25.12.2004 (Сб) 9:19

Эх, CoolTeapot... Вводишь в гугл "Declare Function EnableMenuItem", получаешь 158 ответов. Выбирешь любой. Например:
Код: Выделить всё
Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
Изображение


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

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

Сейчас этот форум просматривают: Google-бот и гости: 13

    TopList