Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка на полноэкранность ... WinAmp & Delphi 
:(
    Опции темы
sergio1982
Дата 26.8.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.7.2006

Репутация: нет
Всего: нет



Доброго времени суток Ув. коллеги!!!

Мучаюсь вот вопросом: Как можна проверить с Delphi программы, в каком режиме запущен проигрователь WinAmp, т.е. имею ввиду обычный или полноэкранный.

Заранее благодарен!!!
PM MAIL   Вверх
Тьма
Дата 26.8.2006, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 22.1.2005
Где: Украина, Винница

Репутация: нет
Всего: 4



тоесть полноэкранный? визуализация что ли?




--------------------
Vir magni ingenii                 
PM MAIL ICQ   Вверх
RideX
Дата 26.8.2006, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 94
Регистрация: 8.9.2004

Репутация: 2
Всего: 7



sergio1982, действительно непонятно, Winamp же не разворачивается во весь экран.. Он либо сворачивается в панель, либо в нормальном состоянии. Ниже образец + определение режима визуализации, если ты это имел ввиду, на примере MilkDrop:
Код

implementation

{$R *.dfm}

var
  vizModeAttach: Boolean;

function EnumProc(hWndChild: hWnd; Param: LongInt): Boolean; stdcall;
var
  szMessage: PChar;
  lpClassName : array[0..1024]  of Char;
  lpParentName: array[0..1024]  of Char;
begin
  GetClassName(GetParent(hWndChild), lpParentName, 1024);
  GetClassName(hWndChild, lpClassName, 1024);
  if Pos('MilkDrop', lpClassName) > 0 then begin
    if vizModeAttach = True then
      szMessage := 'Visualization in attach mode'
    else szMessage := 'Visualization in detach mode';
    MessageBox(0, szMessage, 'Info', MB_ICONINFORMATION);
  end;

  EnumProc := True;
end;

procedure ShowWndState(hWnd: HWND);
var
  WndStyle: integer;
  szMessage: PChar;
begin
  if hWnd = 0 then Exit;
  WndStyle := GetWindowLong(hWnd, GWL_STYLE);
  if (WndStyle and WS_VISIBLE) = WS_VISIBLE then
    szMessage := 'Winamp in normal state'
  else szMessage := 'Winamp in minimized state';
  MessageBox(Application.Handle, szMessage, 'Info', MB_ICONINFORMATION);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  hWndParent: HWND;
begin
  // в режиме desktop
  hWndParent := FindWindow('MilkDrop', 'MilkDrop');
  if hWndParent <> 0 then begin
    ShowWndState(hWndParent);
    MessageBox(Handle, 'Visualization in desktop mode', 'Info', MB_ICONINFORMATION);
    Exit;
  end;

  // в отдельном окне
  vizModeAttach := False;
  hWndParent := FindWindow('BaseWindow_RootWnd', 'MilkDrop');
  ShowWndState(hWndParent);
  if hWndParent = 0 then begin
    // во встроенном окне
    vizModeAttach := True;
    hWndParent := FindWindow('BaseWindow_RootWnd', 'Player Window');
    ShowWndState(hWndParent);
    if hWndParent = 0 then begin
      MessageBox(Handle, 'Winamp not found', nil, MB_ICONERROR);
      Exit;
    end;
  end;

  EnumChildWindows(hWndParent, @EnumProc, 0);
end;

end.


Это сообщение отредактировал(а) RideX - 26.8.2006, 22:12
PM   Вверх
kts
Дата 26.8.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 1.6.2006

Репутация: нет
Всего: нет



Я имел ввиду, что, например, есть у нас песня... (mp3) .... играем ее в нормальном режиме. Все как бы чудно... Тут мы загружаем авишку - клипппп... Я имитирую нажатие Alt+Enter и ВинАмп разворачивается в полноэкранный режим...

Вопрос в том, что бы проверить, в любой момент - в каком состоянии ВинАмп, т.е. либо на поный экран, либо свернут в обычное окно ...

Если есть мысли по этому поводу ... Буду рад smile... 
Очень нужно ... 
PM MAIL   Вверх
Тьма
Дата 27.8.2006, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 22.1.2005
Где: Украина, Винница

Репутация: нет
Всего: 4



лови ссылку
http://forum.vingrad.ru/index.php?showtopic=97740&hl=


используй GetWindowPlacement

Это сообщение отредактировал(а) Тьма - 27.8.2006, 10:01


--------------------
Vir magni ingenii                 
PM MAIL ICQ   Вверх
sergio1982
Дата 27.8.2006, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.7.2006

Репутация: нет
Всего: нет



Цитата

используй GetWindowPlacement

Тут как то запунанно получается ...
Смотрите - запустил я Винамп ... в программе в обработчике по таймеру прописал
Код

var
 WA_Handle: HWND;
 WP : WINDOWPLACEMENT;
begin
 WA_Handle:=FindWindow('Winamp v1.x', nil);
 If WA_Handle=0 Then Exit;

 WP.length := sizeof(WINDOWPLACEMENT);
 GetWindowPlacement(WA_Handle,@WP);
if (WP.flags=WPF_RESTORETOMAXIMIZED)then
  Memo1.Lines.Add('FullScreen')
 else
  Memo1.Lines.Add('Not full screen')


Делаю по Винампу Альт+Ентер ... после чего в мемо одни Not full screen ...
Нимагу понять .. в чем трабла..
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1003 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.