Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.08.2012, 22:26
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание Нужно менять параметры в чужом окне...

Ребята всем добрый вечер - помогите разобраться..
надо получить доступ к параметрам компонента ShockwaveFlash в чужом окне...дело в том что Хендл окна и компонента я получил - но как можно используя хендл - получить доступ к параметрам компонента
а точнее надо получить доступ к процедуре PLAY и STOP

Код:
ShockwaveFlash1.PLAY;
ShockwaveFlash1.STOP;

как это можно реализовать??
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #2  
Старый 14.08.2012, 22:39
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Через сообщения.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 14.08.2012, 23:04
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

А поподробнее - какое сообщение отправить к компоненту?
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #4  
Старый 15.08.2012, 02:15
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

SendMessage, PostMessage.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 15.08.2012, 07:29
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

...да я это знаю - но с какими параметрами? - какие параметры отвечают за PLAY и STOP?
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #6  
Старый 15.08.2012, 07:31
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Свои константы для сообщений определяешь, при отлове, сверяешься с ними, если WM_SOOBSHENIE_PLAY то запускаешь на проигрывание (я так понимаю оба приложения самописные?).
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #7  
Старый 15.08.2012, 20:44
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

нет программа где надо сделать изменения - не моя - но написали его тоже на Delphi...
__________________
Нет ничего не возможного. Вопрос только во времени...

Последний раз редактировалось Electronic_Arts, 15.08.2012 в 20:52.
Ответить с цитированием
  #8  
Старый 15.08.2012, 20:48
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Есть один метод, но он довольно таки хитрожопый.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #9  
Старый 15.08.2012, 20:56
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
По умолчанию

тут дело на самом деле жудковатый - потому что у компонента отключена параметр которая отвечает за показ меню при правом клике на нем

- через редактор ресурсов изменил параметры
Код:
Menu = False
    EmbedMovie = False
на
Код:
Menu = True
    EmbedMovie = True

но не прокатило - по моему программа еще и при запуске - отключает эти функции...так что надо написать то что поможет остановить видео и продолжит
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #10  
Старый 17.08.2012, 19:57
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

...не у кого нету идей по поводу моей задачи?
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #11  
Старый 18.08.2012, 01:13
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

...вот что я сделал

Код:
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  
Старый 18.08.2012, 03:21
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Первое, зачем дублировать код?
Цитата:
Сообщение от Electronic_Arts
Код:
z:= findwindowsex(h, 0, 'MacromediaFlashPlayerActiveX', nil);
if findwindowsex(h, 0, 'MacromediaFlashPlayerActiveX', nil) <> 0 then
Второе, разговор шёл о чужом окне. Здесь поиск идёт на форме. Зачем?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #13  
Старый 18.08.2012, 03:53
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от angvelem
Второе, разговор шёл о чужом окне. Здесь поиск идёт на форме. Зачем?
Видимо 'TForm4' это и есть имя класса окна чужого приложения.

Цитата:
Сообщение от Electronic_Arts
нет программа где надо сделать изменения - не моя - но написали его тоже на Delphi...
И как я понимаю исходников чужого приложения нет?

Похоже что в том чужом приложении используются компоненты F-IN-BOX
Ответить с цитированием
  #14  
Старый 18.08.2012, 13:44
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
По умолчанию

Цитата:
Сообщение от angvelem
Первое, зачем дублировать код?

...упс - ссори

Цитата:
Сообщение от angvelem
Второе, разговор шёл о чужом окне. Здесь поиск идёт на форме. Зачем?
poli-smen прав это и есть имя класса окна чужого приложения - я же говорил что чужую прогу тоже на Delphi написали...

Цитата:
Сообщение от poli-smen
И как я понимаю исходников чужого приложения нет?
Похоже что в том чужом приложении используются компоненты F-IN-BOX
Исходников - конечно нету...эта не моя программа - если бы были исходники сам бы давно разобрался что к чему...
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #15  
Старый 18.08.2012, 22:15
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Electronic_Arts
дело в том что ID получает -1 значит оно не видит меню компонента MacromediaFlashPlayerActiveX...или я что то не так делаю??
В таком случае нужно искать меню от z, а не h. Но и это ничего не даст, справка же чётко сообщает:
Цитата:
If the window is a child window, the return value is undefined.
Если окно дочернее, результат неопределён.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter