![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Олечка85 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.6.2006 Где: Berlin Репутация: нет Всего: нет |
Дорогие эксперты!
Подскажите, please, как открыть файл вида *.pps и проследить, когда он закроется! Пробовала сделать через ShellExecute, но тогда не могу проследить, закрылся ли Поверпойнт (мне нужно проследить кол-во нажатий клавиш во время просмотра презентации) Пробовала сделать через CreateProcess, но там нужно указать тип программы, которой открывать файл, а с Просмотром-Презентацией так не получается (либо открывается сам Поверпойнт, либо просмотровая прога, но она запрашивает имя презентации, а не открывает то, что надо, сразу) Знаю, есть ещё вариант с WinExec, но там тоже надо указывать тип проги, так что мне тоже не подходит. Прочитала всё по этой теме тут, и ещё кое-где, но что-то ничего нету... ![]() А! Ещё пробовала через ОЛЕ-объект, выдаётся ошибка "The PowerPoint Frame does not exist"... Раньше с такого типа вещами не работала, та что не знаю, что сие значит... ![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Попробуйте ShelExecuteEx + WaitForSingleObject Второе позволяет подождать пока объект (программа не закроется). ShelExecuteEx - дает дополнительную информацию о потоке. Добавлено @ 00:46
А это уже из другой области, здесь надо Хук ставить, на все нажатия клавиш, затем их считать и отослать сообщение о нужном количестве сообщений. Правда для этого в программе понадобится открыть второй поток, поскольку один приостоновит свою работу выполняя WaitForSingleObject, и тем самым не даст обработать полученное сообщение. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Олечка85 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.6.2006 Где: Berlin Репутация: нет Всего: нет |
Попробовала ![]() Написала так:
Не нашла, какие параметры ставить в WaitForSingleObject в этом случае, попробовала разные... В общем, система перезагрузилась. ![]() Это сообщение отредактировал(а) Олечка85 - 25.7.2006, 10:46 |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
вот так получилось
![]()
Это сообщение отредактировал(а) alexeis1 - 25.7.2006, 01:55 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
но есть один нюанс... (с)
![]()
так что в данном случае, наверное, лучше использовать FindExecutable и CreateProcess. ключ командной строки PowerPoint'а для "показа" - "/s". |
|||
|
||||
Олечка85 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.6.2006 Где: Berlin Репутация: нет Всего: нет |
У меня было наподобие этого, но поробовала и твой вариант. Результат тот же - сообщение "Готово" высвечивается не после того, как презентация закроется, а после того. как ОТКРОЕТСЯ, т.е. как процесс воспринимается... открытие файла? Добавлено @ 12:02 Попробовала вот так:
Презентация не запускается совсем, сразу сообщение о том, что она просмотрена... |
|||
|
||||
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Cтранно, у меня все работает - видимо дело в настройках офиса. Для запуска придется указать еще и путь к powerpoint
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
Олечка85 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.6.2006 Где: Berlin Репутация: нет Всего: нет |
Та же штука. Сообщение появляется сразу после открытия поверпойнта. Пробовала открывать не POWERPNT.exe, а сразу PPTVIEW.exe, получается лучше, т.к. мне надо на просмотр, но... после показа одной презентации требуют выбрать следующую и получается, что этот PPTVIEW.exe надо выключать вручную ![]() Добавлено @ 13:49 А где можно найти инфу об этих буковках, мне кажется, для PPTVIEW.exe нужна какая-то другая... ![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
А если powerpoint был перед этим закрыт? Добавлено @ 13:54
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\POWERPNT.EXE\shell\Show Анологично HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\PPTVIEW.exe\shell\Show -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Олечка85 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.6.2006 Где: Berlin Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |