Форум: "WinAPI";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];
ВнизПодскажите пожалуйста! Найти похожие ветки
← →
ggsoft (2001-11-29 19:54) [6]to Alex870.
Например, вот так, если с меню чужого окна.
procedure TForm2.N1Click(Sender: TObject);
var
hwndWindow: HWND;
hmnClassMenu, hmnSubMenu: HMENU;
dwDummy: DWORD;
begin
//получяем Handle нужного окна
hwndWindow := FindWindow("Some cool class", "And window name");
//если нашли его
if hwndWindow <> 0 then begin
//получить описатель меню класса, т. е. искомого окна
hmnClassMenu := GetMenu(hwndWindow);
//получить описатель первого подменю (например - 0 т. е. обычно "File")
hmnSubMenu := GetSubMenu(hmnClassMenu, 0{for example});
//послать сообщение окну. Почему не SendMessage(...)? А вдруг это общение окно будет очень долго обрабатывать и твое приложение "зависнет", так что в любом случае через 5 секунд продолжим работу.
SendMessageTimeout(hwndWindow,
WM_COMMAND,
//в старшем слове WPARAM - содержится ID меню.
//так и получим его из известного субменю("File")
MAKEWPARAM(0, GetMenuItemID(hmnSubMenu, 1{for example})),
0,
SMTO_ABORTIFHUNG,
5000,
dwDummy);
end
else ShowMessage("No requsted window found");
end;
Да только зачем все это - какой интерес.
С уважением, Евгений!
PS. Не проверял, но должно работать!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c