Dimoniusis
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Aladdinych 1. Читай про FindWindow и EnumWindows 2. if IsIconic(handle) or (not IsWindowVisible(handle)) then ShowWindow(handle, SW_RESTORE); SetForegroundWindow(handle); SetActiveWindow(handle); где handle - идентификатор окна. 3 . procedure SelectMenu(winname, item, subitem: string); // winname - имя окна, item - имя пункта меню, subitem - имя подпункта var winhandle, menuhandle, submenuhandle, i, j:integer; itemname, subitemname:pchar; begin winhandle:=FindWindow(nil, pchar(winname)); menuhandle:=GetMenu(winhandle); getmem(itemname,255); getmem(subitemname,255); for i:=0 to getmenuitemcount(menuhandle)-1 do begin getmenustring(menuhandle, i, itemname, 255, MF_BYPOSITION); if string(itemname)=item then begin submenuhandle:=getsubmenu(menuhandle,i); for j:=0 to getmenuitemcount(submenuhandle)-1 do begin GetMenuString(submenuhandle, j, subitemname, 255, MF_BYPOSITION); if string(subitemname)=subitem then PostMessage(winhandle, WM_COMMAND, makelong(getmenuitemid(submenuhandle,j),0),0); end; end; end; freemem(itemname); freemem(subitemname); end; Использовать по названию: SelectMenu(WindowName, 'Конвертация', 'Автоматический режим'); т.е кликнуть "Конвертация" и в нем "Автоматический режим" 4. SendMessage - WM_Char/Wm_text, если знаешь хендлы, либо Keybd_Event для общего случая. |