Здравствуйте! В общем у меня следующая проблема.. Необходимо средствами winapi активировать какой-либо элемент меню приложения MS Office, к примеру, в MS Powerpoint. Причем, элемент меню появляется в следствие установленного приложения, функциональности которого нет в объектной модели MS Office. Акселератора для требуемого мной элемента меню нет.
Задача сводится к тому, чтобы сперва отправить приложению alt+p — разворачивается меню, и далее имитировать нажатие на клавишу С.
Есть следующий экспериментальный кусок кода:
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
CreateProcess(NULL, _T("\"c:\\Program Files\\Microsoft Office\\OFFICE11\\POWERPNT.EXE\" \"c:\\temp\\Docs\\1_1.ppt\""),
NULL,NULL,0,0,NULL,NULL,&si,&pi);
WaitForInputIdle( pi.hProcess, INFINITE );
GUITHREADINFO gi;
gi.cbSize = sizeof(GUITHREADINFO);
GetGUIThreadInfo(pi.dwThreadId,&gi);
while( SendMessage(gi.hwndActive,WM_SYSCHAR, 112, 0x60000001) ) ; //Всё нормально, нужное мне меню разворачивается
А вот дальше как только не пытался , так и не получается сымитировать нажатие "С".
Что интересно, в MS Office нет ассоциированного с главным окном меню, все хитро сделано. Замучал бедный spy++, короче, прошу помощи, господа программисты