Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 099

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Есть приложение с запрещенными пунктам меню. В инспекторе в свойствах меню выставлено Enabed:=False.

Как заставить данные пункты меню работать?

Пока остановился на данном коде.

Приложение:
  1. Procedure MyGetMenu (Wd:HWND);
  2. Var
  3. i,k,count_menu:integer;
  4. hnd_menu : HMENU;
  5. Nm:Array[0..255] of Char;
  6. Begin
  7.  
  8. hnd_menu:=GetMenu(Wd);
  9. if (hnd_menu = 0) then Exit;
  10. count_menu:=GetMenuItemCount(hnd_menu);
  11. For k:=0 to count_menu-1 do
  12. Begin
  13. i:=GetMenuString(hnd_menu,k,Nm,255,MF_BYPOSITION);
  14.  
  15. End;
  16. End;


Ins Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Ins (статус: 1-ый класс)
Вопрос отправлен: 25 апреля 2012, 13:54
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 9; последнее сообщение — 26 апреля 2012, 08:12; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 25 апреля 2012, 14:26 [#1]:

Цитата (Ins):

В инспекторе в свойствах меню выставлено Enabed:=False.
Как заставить данные пункты меню работать?

Может, выставить Enabled:= True?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ins

Ins (статус: 1-ый класс), 25 апреля 2012, 14:48 [#2]:

min@y™:
Идея конечно замечательная, если есть доступ к исходникам :-)
А в чужом приложении? ;-)
min@y™

min@y™ (статус: Доктор наук), 25 апреля 2012, 15:01 [#3]:

Цитата (Ins):

А в чужом приложении?

Перечитал вопрос 100500 раз. Упоминания про чужое приложение не нашёл.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ins

Ins (статус: 1-ый класс), 25 апреля 2012, 15:41 [#4]:

min@y™:
Но ведь и то что это свое - тоже не говорится 8-)
SOA

SOA (статус: Посетитель), 25 апреля 2012, 15:51 [#5]:

Ins:
Скачайте книгу "Delphi в шутку и в серьез, что умеют хакеры" и посмотрите главу "Управление свойствами окон", возможно поможет. 8-)
min@y™

min@y™ (статус: Доктор наук), 25 апреля 2012, 15:51 [#6]:

Цитата (Ins):

Но ведь и то что это свое - тоже не говорится

Ога, а человеки должны угадать: своё/чужое? Я подумал, что своё, т.к.:

Цитата (Ins):

В инспекторе в свойствах меню выставлено

А раз выставлено именно в инспекторе, значит своё!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ins

Ins (статус: 1-ый класс), 25 апреля 2012, 16:42 [#7]:

Скажем так: нужно сделать в чужом, но проверяю на своем)
min@y™

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™

min@y™ (статус: Доктор наук), 26 апреля 2012, 08:12 [#9]:

Цитата (Ins):


Спасибо за участие, пытался я сделать этой функцией. Пункт меню она разрешает, но он не работает.

Значит так было предусмотрено разработчиком программы, которую ты хакнуть собрался.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 16:48
Выполнено за 0.02 сек.