|
Вопрос # 6 099/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Есть приложение с запрещенными пунктам меню. В инспекторе в свойствах меню выставлено Enabed:=False.
Как заставить данные пункты меню работать?
Пока остановился на данном коде.
Приложение: Переключить в обычный режим- Procedure MyGetMenu (Wd:HWND);
- Var
- i,k,count_menu:integer;
- hnd_menu : HMENU;
- Nm:Array[0..255] of Char;
- Begin
-
- hnd_menu:=GetMenu(Wd);
- if (hnd_menu = 0) then Exit;
- count_menu:=GetMenuItemCount(hnd_menu);
- For k:=0 to count_menu-1 do
- Begin
- i:=GetMenuString(hnd_menu,k,Nm,255,MF_BYPOSITION);
-
- End;
- End;
 |
Вопрос задал: Ins (статус: 1-ый класс)
Вопрос отправлен: 25 апреля 2012, 13:54
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 9; последнее сообщение — 26 апреля 2012, 08:12; участников в обсуждении: 3.
|
min@y™ (статус: Доктор наук), 25 апреля 2012, 14:26 [#1]:
Цитата (Ins):
В инспекторе в свойствах меню выставлено Enabed:=False.
Как заставить данные пункты меню работать?
Может, выставить Enabled:= True?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 25 апреля 2012, 15:01 [#3]:
Цитата (Ins):
А в чужом приложении?
Перечитал вопрос 100500 раз. Упоминания про чужое приложение не нашёл.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Ins (статус: 1-ый класс), 25 апреля 2012, 15:41 [#4]:
min@y™:
Но ведь и то что это свое - тоже не говорится
|
|
SOA (статус: Посетитель), 25 апреля 2012, 15:51 [#5]:
Ins:
Скачайте книгу "Delphi в шутку и в серьез, что умеют хакеры" и посмотрите главу "Управление свойствами окон", возможно поможет.
|
|
min@y™ (статус: Доктор наук), 25 апреля 2012, 15:51 [#6]:
Цитата (Ins):
Но ведь и то что это свое - тоже не говорится
Ога, а человеки должны угадать: своё/чужое? Я подумал, что своё, т.к.:
Цитата (Ins):
В инспекторе в свойствах меню выставлено
А раз выставлено именно в инспекторе, значит своё!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Ins (статус: 1-ый класс), 25 апреля 2012, 16:42 [#7]:
Скажем так: нужно сделать в чужом, но проверяю на своем)
|
|
min@y™ (статус: Доктор наук), 25 апреля 2012, 17:05 [#8]:
Цитата (Ins):
Скажем так: нужно сделать в чужом, но проверяю на своем)
Оригинально!
Короче, есть функция SetMenuItemInfo():
BOOL WINAPI SetMenuItemInfo(
HMENU hMenu,
UINT uItem,
BOOL fByPosition,
LPMENUITEMINFO lpmii
);
// lpmii - нужный параметр-указатель на структуру:
typedef struct tagMENUITEMINFO {
UINT cbSize;
UINT fMask;
UINT fType;
UINT fState; // <------ оно!
UINT wID;
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
DWORD dwItemData;
LPTSTR dwTypeData;
UINT cch;
} MENUITEMINFO, FAR *LPMENUITEMINFO;
Вперёд и с песней!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 26 апреля 2012, 08:12 [#9]:
Цитата (Ins):
Спасибо за участие, пытался я сделать этой функцией. Пункт меню она разрешает, но он не работает.
Значит так было предусмотрено разработчиком программы, которую ты хакнуть собрался.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|