Jak wł/wył pozycje menu w innych aplikacjach

0

Mam problem, mianowicie:
Jak w innej aplikacji w podmenu (np. Plik) głownego menu odblokować lub zablokować (włączyć/wyłączyć) daną pozycję tak by była ona niemożliwa do naciśnięcia lub odwrotnie ???

Przykład: mam aplikację powiedzmy WINZIP-a. W tejże aplikacji jest menu. W podmenu Plik jest pozycja "zamknij archiwum". Jest ona nieaktywna, gdyż nie ma otwartego archiwum. Czy i jak można odblokować tą opcję aby była ona możliwa do naciśnięcia. Dotyczy to nietylko tej aplikacji.

Moje próby:

var
  WndHandle: THandle;
  H,SubH: hMenu;
  ID: Word;
 
begin
  WndHandle := FindWindow(nil,'WINZIP');
  H := GetMenu(WndHandle);
  SubH := GetSubMenu(H, 1);
  ID := GetMenuItemID(SubH, 1);
  {tu mam ID np. elementu "Otwórz archiwum", i co dalej - jak go wyłączyć}
end;
 

lub

 
var
  MII: TMenuItemInfo;
begin
  MII.cbSize := SizeOf(MII);
  GetMenuItemInfo(H, 1, True, MII);
  MII.fMask := MIIM_STATE;
  MII.fState := MII.FState or MFS_DISABLED;
  SetMenuItemInfo(H, 1, True, MII);
  {to działa, lecz tylko dla elementów głównego menu np. Plik/Edycja a nie elementów podmenu np. Nowy/Otwórz/Kopiuj/Wytnij itp. }
end;
 

Jest mi to niezmiernie potrzebne do szkoły na egzamin z Pascala!!

1 użytkowników online, w tym zalogowanych: 0, gości: 1