Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выловить окончание работы плеера [D5, D6, XP]


Андрей_1 ©   (2009-04-09 12:40:00) 

Для запуска внешней програмы использую такую функцию:
function TForm1.ExecuteFile(const FileName, Params, DefaultDir: string;
ShowCmd: Integer): THandle;
var
fn:String;
zFileName, zParams, zDir: array[0..79] of Char;
begin
Result := 1;
fn:='Файл не найден';
 if ShellExecute(Application.MainForm.Handle,nil,
 StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
StrPCopy(zDir, DefaultDir), ShowCmd) < 32 then
Application.MessageBox(PChar(fn),'Заголовок окна', MB_OK);
end;

Вызов функции

procedure TForm1.Timer4Timer(Sender: TObject);
begin
ExecuteFile('D:\Реклама\VIDEO_TS\Vts_01_1.vob', '', 'C:\2', SW_NORMAL);
Timer4.Enabled:=False;
end;

Запускается реклама через KMPlayer.exe.
После окончания рекламы KMPlayer.exe закрывается.
Как выловить момент окончания рекламы или закрытия KMPlayer.exe и выдать сообщение.


Вариант   (2009-04-09 14:00:00) [1]


> Андрей_1 ©   (09.04.09 13:37) [4]

Один из примеров в коде для CreateProcess есть и в указанной ссылке
> Сергей М. ©   (09.04.09 13:08) [1]


Сергей М.   (2009-04-09 13:46:00) [2]


> как использовать?


Т.е. справку по этим ф-циям ты уже проштудировал и нишиша там не понял, так это надо понимать ?


Андрей_1   (2009-04-09 13:37:00) [3]

А как использовать?
ShellExecuteEx и WaitForSingleObject ( или WaitForMultipleObjects,MsgWaitForMultipleObjects)


Вариант   (2009-04-09 13:34:00) [4]


> Андрей_1 ©   (09.04.09 13:20) [2]
> Если так, то выход только через Timer?
> Включать Timer и каждую секунду проверять наличие окна KMPlayer?
>


Есть и другие варианты, например
ShellExecuteEx и WaitForSingleObject ( или WaitForMultipleObjects,MsgWaitForMultipleObjects)


Андрей_1   (2009-04-09 13:20:00) [5]

Если так, то выход только через Timer?
Включать Timer и каждую секунду проверять наличие окна KMPlayer?


Сергей М.   (2009-04-09 13:08:00) [6]


> Как выловить момент окончания рекламы


Никак, если плейер не предоставляет соответствующего механизма нотификации.


> или закрытия KMPlayer.exe


http://www.delphirus.com/modules.php?name=News&file=article&sid=32


Наверх

Титульная страница Поиск, карта сайта Написать письмо