| 
| 
 | Вопрос # 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 doBegin 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |