![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Ребята всем добрый вечер - помогите разобраться..
надо получить доступ к параметрам компонента ShockwaveFlash в чужом окне...дело в том что Хендл окна и компонента я получил - но как можно используя хендл - получить доступ к параметрам компонента а точнее надо получить доступ к процедуре PLAY и STOP Код:
ShockwaveFlash1.PLAY; ShockwaveFlash1.STOP; как это можно реализовать?? |
|
#2
|
||||
|
||||
|
Через сообщения.
|
|
#3
|
||||
|
||||
|
А поподробнее - какое сообщение отправить к компоненту?
|
|
#4
|
||||
|
||||
|
SendMessage, PostMessage.
|
|
#5
|
||||
|
||||
|
...да я это знаю - но с какими параметрами? - какие параметры отвечают за PLAY и STOP?
|
|
#6
|
||||
|
||||
|
Свои константы для сообщений определяешь, при отлове, сверяешься с ними, если WM_SOOBSHENIE_PLAY то запускаешь на проигрывание (я так понимаю оба приложения самописные?).
|
|
#7
|
||||
|
||||
|
нет программа где надо сделать изменения - не моя - но написали его тоже на Delphi...
Последний раз редактировалось Electronic_Arts, 15.08.2012 в 20:52. |
|
#8
|
||||
|
||||
|
Есть один метод, но он довольно таки хитрожопый.
|
|
#9
|
||||
|
||||
|
тут дело на самом деле жудковатый - потому что у компонента отключена параметр которая отвечает за показ меню при правом клике на нем
- через редактор ресурсов изменил параметры Код:
Menu = False
EmbedMovie = FalseКод:
Menu = True
EmbedMovie = Trueно не прокатило - по моему программа еще и при запуске - отключает эти функции...так что надо написать то что поможет остановить видео и продолжит |
|
#10
|
||||
|
||||
|
...не у кого нету идей по поводу моей задачи?
|
|
#11
|
||||
|
||||
|
...вот что я сделал
Код:
var
h, z : hwnd;
findmenu: hmenu;
id:integer;
begin
h:= findwindows('TForm4', nil);
z:= findwindowsex(h, 0, 'MacromediaFlashPlayerActiveX', nil);
if findwindowsex(h, 0, 'MacromediaFlashPlayerActiveX', nil) <> 0 then
begin
windows.setforegroundwindow(h);
findmenu:= getmenu(z);
id:= getmenuitemcount(findmenu); // -1
...
...
...
end;дело в том что ID получает -1 значит оно не видит меню компонента MacromediaFlashPlayerActiveX...или я что то не так делаю?? |
|
#12
|
||||
|
||||
|
Первое, зачем дублировать код?
Цитата:
|
|
#13
|
||||
|
||||
|
Цитата:
Цитата:
Похоже что в том чужом приложении используются компоненты F-IN-BOX |
|
#14
|
||||
|
||||
|
Цитата:
...упс - ссори Цитата:
Цитата:
|
|
#15
|
||||
|
||||
|
Цитата:
Цитата:
|