WinApi запуск приложения из программы
-
2 августа 2011 г. 5:36
Моя задача сделать так, чтобы из моего приложения запускался Word и его окно располагалось бы в правой части экрана.
Я пишу так
AnsiString s = "C:\\Program Files\\Microsoft Office\\Office12\\WINWORD;
::ShellExecute(0, NULL, s.c_str(), NULL, NULL, SW_RESTORE);
if(GetLastError == 0) {
HWND h = GetNextWindow(h, GW_HWNDNEXT);
SetWindowPos(h, 0, 500, 10, 300, 800, SWP_SHOWWINDOW);
}но Word запускается на весь экран
- Перемещено Abolmasov DmitryMicrosoft Community Contributor 7 сентября 2011 г. 12:33 (От:Языки программирования)
Все ответы
-
2 августа 2011 г. 7:44
Т.е. Word запускает в максимизированном состоянии? Попробуйте поиграться с флагом запуска в ShellExecute. Попробуйте SW_SHOWNORMAL или SW_SHOWDEFAULT.
Для связи [mail]- Предложено в качестве ответа Abolmasov DmitryMicrosoft Community Contributor 4 августа 2011 г. 5:18
-
4 августа 2011 г. 9:52
Пробовал) Вообщем, получилось запустить окно приложения на половину экрана, только не получилось это сделать с вордом. Adobe Acrobat, блокнот - открываются так как задано флагом в ShellExecute. А ворд игнорирует флаг и запускается на весь экран
вот код
HWND H=Handle; ShellExecute(Handle, NULL, "t4.doc", NULL, NULL, SW_HIDE); Sleep(1500); char Pch[128]; int i=0; do { H = GetNextWindow(H,GW_HWNDPREV); GetWindowText(H,Pch,128); if(AnsiString(Pch).Pos("t4")) break; } while(H); if(H) SetWindowPos(H, 0, 600, 10, 400, 800, SWP_SHOWWINDOW);
тему можно закрывать- Помечено в качестве ответа Abolmasov DmitryMicrosoft Community Contributor 4 августа 2011 г. 10:17

